Iframe advisor

New package
Mockup: this portal is a static preview. No authentication, no live data, nothing is saved.

What this is

Drop-in surfaces that render what the model believes

The advisor is a single iframe. It reads the modelled profile of whoever is on the page and presents what we believe, then updates as that belief changes. No SDK, no build step, and nothing to maintain when the models change. What it shows depends entirely on who is looking at it.

Two surfaces, two audiences

Same insight stream, deliberately different presentation

SurfaceWho sees itWhat it recommendsWhere it goes
Traveller viewPlain language, no jargon Your customer, on your public site A packaged trip they can act on Any public page
Team viewNumeric confidence and evidence Agents, advisors, commercial staff The next best action, in commercial language Behind authentication only
The team embed is rejected if the embedding origin is a public host page, so it cannot be pasted onto your website by accident.

Live preview

These are the real embeds, running in an iframe

Mockup: the preview uses synthetic profile data. The team view is driven live on the public demo page.

Embed code

Two snippets, two places

Traveller view — public pages

<iframe
  src="https://advisor.travelspy.io/embed/traveller?ws=ws_live_9f21c480"
  title="Plan your trip"
  width="100%" height="620"
  style="border:0;border-radius:16px"
  loading="lazy"
  referrerpolicy="strict-origin-when-cross-origin"
  sandbox="allow-scripts allow-same-origin allow-forms"
></iframe>

Team view — authenticated consoles only

<iframe
  src="https://advisor.travelspy.io/embed/team?ws=ws_live_9f21c480&t={SESSION_TOKEN}"
  title="Traveller insight"
  width="100%" height="780"
  style="border:0;border-radius:16px"
  referrerpolicy="strict-origin-when-cross-origin"
  sandbox="allow-scripts allow-same-origin"
></iframe>

Mint the session token server-side. The team embed refuses to render on an unregistered or public origin.

Configuration

Query parameters on the embed URL

ParameterValue
wsWorkspace ID, requiredws_live_9f21c480
themelight or darklight
accentHex, no hash163300
localeen-GB
currencyGBP
handoffWhere a qualified lead goescrm

Events posted to the parent

Listen with window.addEventListener('message')

window.addEventListener('message', function (e) {
  if (e.origin !== 'https://advisor.travelspy.io') return;
  // advisor.opened | advisor.step | advisor.package_ready | advisor.handoff
  console.log(e.data.type, e.data.payload);
});

Always check e.origin before trusting a message.

Performance

Last 30 days across all embeds

Opened31.4k
Completed18.2k
Package shown15.4k
Handed off6.6k
Booked2.8k