Skip to main content

embed block

Renders a sandboxed iframe. Use it for third-party widgets where the canonical UI lives on a vendor’s domain — calendar booking, form intake, status pages, payment widgets.

When to use it

  • Calendar booking: Calendly / Cal.com / SavvyCal.
  • External form: Typeform / Tally.
  • Vendor status: Statuspage / Better Uptime / Cronitor.
  • Documentation: an embedded Mintlify / Notion page.
For a static link, use links. For a form you control, use input_capture — that one integrates with the chat-seeding flow; embed does not.

Shape

Iframe sandbox

The iframe is rendered with sandbox="allow-scripts allow-same-origin allow-forms allow-popups". This means:
  • ✅ JavaScript runs (forms, widgets, single-page apps).
  • ✅ Cross-origin requests to the iframe’s own domain are allowed.
  • ✅ Forms can submit.
  • ✅ The embedded page can open popups (e.g. Stripe Checkout).
  • ❌ No allow-top-navigation — the embedded page can’t redirect your agent page.
  • ❌ No microphone / camera access.
If your vendor needs additional sandbox permissions (rare), open an issue — we widen the allowlist conservatively.

Tips

  • Test in a private window first. Some vendors break in third-party-cookie-blocked contexts.
  • The vendor’s branding is visible to your visitors. If that’s a problem, use input_capture + a custom flow instead.
  • Tall embeds (calendars, document viewers) work better at position: sidebar so the chat panel remains accessible above the fold.
  • url is required and must be a non-empty full URL; saves with a missing or empty URL are rejected.