The production widget is AI-first. Embed and SDK configuration customize the
experience; they do not select a widget version or change how a conversation
starts. Live-support handoff remains available from the AI conversation.
Script Tag Attributes
Full Example
Programmatic Configuration
For full control, create a widget instance with the JavaScript API:When using the programmatic API, do not include
data-assistant-id on the script tag. The script’s auto-initialization runs only when that attribute is present.Authentication Modes
Anonymous
Authenticated
Auto
Appearance
Brand Color
The primary color controls the chat bubble, header, send button, and accent elements.Position
Behavior
The production composer supports text messages, quick replies, forms, and live support handoff. Attachments, browser voice input, and plugin-rendered widget UI are fast-follow capabilities. Legacy or SDK configuration fields for those features do not make their controls available in the production v2 composer.Suggested Messages
Display clickable chips when the chat panel opens to guide visitors:Popup Messages
Show floating teaser bubbles above the launcher button to draw visitors in — distinct from Suggested Messages, which appear inside the chat panel. Clicking a bubble opens the chat; visitors can dismiss bubbles, and dismissals are remembered per visitor. The easiest way to configure popup messages is in the dashboard under Widget → Styles → Popup messages — set up to 3 messages and a delay, and they apply everywhere the widget is installed without touching your embed code. You can also configure them programmatically:Configuration passed in code takes priority over dashboard settings on that
page. If
popupMessages is not set, the bubbles fall back to showing your
suggestedMessages list.Auto-Open
Automatically open the chat panel after a delay (in milliseconds):Session Persistence
Sessions persist across page loads by default, so visitors do not lose their conversation when navigating your site:Metadata
Attach custom key-value pairs to every conversation for filtering and analytics:Lead Capture
Lead capture collects visitor information (name, email, phone) before or during a conversation. Configure it in your assistant’s settings:- Open your assistant’s Settings page
- Navigate to the Widget tab
- Toggle Lead Capture on
- Choose which fields to collect
- Save your changes
Rollout
Rollout controls where and for whom the launcher appears, so you can test on a real page before going live for everyone. Set it on your assistant’s Embed page, under Rollout. There are three modes:Everyone (default)
Everyone (default)
The widget is live for all visitors on every page where the embed code is installed.
Specific pages
Specific pages
The launcher only appears on URL paths you list — one glob per line, each starting with
/. Use * to match anything:/products/* matches /products/shoes and /products/shoes/blue. This is a client-side rule — it decides whether the launcher mounts based on the page URL.Test link only
Test link only
The widget is hidden from everyone except people who open your secret test link. The Embed page generates a URL like
https://your-site.com/any-page?ic_test=<token> — open any installed page with that ?ic_test=… and the widget appears for that browser tab (it’s remembered as you navigate the site). Everyone else sees nothing.This is enforced on the server too: without the correct token, a chat session can’t be created. Use Regenerate to rotate the token — the previous link stops working immediately.Rollout controls launcher visibility. It does not select a v1/v2 renderer,
change the AI-first conversation behavior, or throttle traffic by percentage.
The secret test token is never exposed in the widget’s public configuration.
Next Steps
SDK Reference
Full JavaScript API documentation for programmatic widget control.
Installation
Framework-specific installation guides.