DocsWidget Embed Code

Widget Embed Code

Complete code snippets for embedding Veloquence on your website. Copy, paste, and go live.

You rarely need to write any of this by hand. The agent's Share tab generates the snippet from your settings, and Copy prompt for AI editor turns it into a full instruction set for Claude Code, Cursor, or a similar tool working in your website repository — including where to insert it for your framework and how to verify it worked. The reference below is for hand-editing and troubleshooting.

Side Panel

The side panel opens from a tab on the right or left edge of the page into a full-height panel docked to that edge, with room for a live avatar. On wide screens the page makes room for it (set pushContent: falseto overlay instead); the panel's width is also set as --veloquence-push-right (or --veloquence-push-left) on the page root, so fixed headers can follow with right: var(--veloquence-push-right, 0px). The collapse button in the panel header folds it back to the tab. During a call, slides and media the agent shows open large beside the panel, and that header button (or the one on the call controls) minimizes the call to a small video tile in the corner: the agent keeps talking, presenting and pointing at your page. On phones it opens full screen.

Side Panelhtml
<script>
  window.VeloquenceWidgetConfig = {
    token: "YOUR_SHARE_TOKEN",
    mode: "panel",
    theme: "system",
    buttonColor: "#D4AF37",
    position: "bottom-right",
    width: 400
  };
</script>
<script src="https://[your-subdomain].veloquence.ai/embed/veloquence-widget.js" defer></script>

Inline Embed

The inline embed renders the chat interface directly inside a container element on your page, making it part of your page layout.

Inline Embedhtml
<div id="veloquence-embed" style="width: 100%; height: 600px;"></div>
<script>
  window.VeloquenceWidgetConfig = {
    token: "YOUR_SHARE_TOKEN",
    mode: "inline",
    theme: "system",
    container: "#veloquence-embed"
  };
</script>
<script src="https://[your-subdomain].veloquence.ai/embed/veloquence-widget.js" defer></script>

Iframe Embed

Use a standard iframe if you need full isolation from your page styles and scripts, or if your platform doesn't support custom JavaScript.

Iframe Embedhtml
<iframe
  src="https://[your-subdomain].veloquence.ai/s/YOUR_SHARE_TOKEN"
  width="400"
  height="650"
  frameborder="0"
  allow="microphone; autoplay; encrypted-media; picture-in-picture; fullscreen"
  style="border: none; border-radius: 12px;"
></iframe>
You must include allow="microphone" in the iframe attributes for voice-enabled agents. Without it, the browser will block microphone access inside the iframe.

Configuration Options

OptionTypeDefaultDescription
tokenstring(required)Your agent's share token
mode"popup" | "panel" | "inline""popup"Widget display mode ("panel" is the full-height side panel)
theme"light" | "dark" | "system" | "custom""system"Color theme for the widget
buttonColorstring"#D4AF37"Launcher button color (popup and side panel)
position"bottom-right" | "bottom-left""bottom-right"Launcher corner; a side panel docks to that edge (popup and side panel)
widthnumber400Widget width in pixels
heightnumber650Widget height in pixels (popup only; a side panel is full height)
pushContentbooleantrueSide panel only: make room for the open panel on wide screens instead of covering the page edge. The width is set as --veloquence-push-right / --veloquence-push-left on the page root for fixed headers
containerstring—CSS selector for the target element (inline mode only)
zIndexnumber9999Stacking order — raise it if a sticky header or cookie banner covers the widget
spaHostbooleanfalseSet true on single-page apps so the host router owns navigation
apiBasestring(widget origin)Veloquence API origin — only needed when the API is on a different host
Name and email collection is nota widget option. It is an agent setting, configured under Share → Link → Visitor experience, so it applies consistently to the share link and every embed. Values placed in the snippet are ignored.