Setup
API
Create an embed:token and embed_url once. Store the embed_url; list, get, and update responses do not return it.
Scope types:
Manage embeds:
Dashboard
- Go to Project → Inbox Embeds
- Create an access token with a name and scope
- Choose the default UI language for the embedded inbox
- Copy the embed URL or iframe snippet
Embed code
Scopes
Control which conversations are visible:Filter by assignee
Optionally setassigned_user_id on the token to only show conversations assigned to a specific team member. The token will only return conversations with an active assignment to that user.
Security
Allowed origins
Whitelist domains that can embed the inbox. Supports wildcards (*.example.com). Leave empty to allow any origin.
Allowed origins are enforced via both CORS validation on API requests and Content-Security-Policy: frame-ancestors on the iframe page.
Token expiration
Optionally set an expiration date on the token. Expired tokens return a 401 error.Query parameters
Pre-set filters and theme by passing query parameters to the embed URL. These apply as initial state when the iframe loads.Filters
Example — open the inbox pre-filtered to unread handoff conversations:
Theme
Set the default theme when creating the token:system, light, or dark.
Override the theme via the mode parameter:
Language
Set the default UI language when creating or updating the token:
Override the token default for a specific iframe URL with
language or lang:
Feature differences
Disabled in embedded inbox
- Assignments
- Starting new conversations
- Browser notifications
- Contact notes (hidden entirely)
Available in embedded inbox
- Status, WhatsApp number, and search filters
- Send text, media, and interactive messages
- Workflow handoff (Handoff button works)
- Contact display name editing
- Real-time WebSocket updates

