Widgets, Visitor Chat, and the Inbox
The widget system is the public front door of the product, while the inbox is the staff operating console. This page explains how to create widgets, embed them safely, configure the no-code builder, and run conversations from the admin panel.
1) Widget Manager
Use Chat > Widgets to create and manage multiple widgets inside one workspace. Each widget has its own public key, allowed domains, department routing, business unit label, and theme configuration.
<script src="https://your-app.example/widget/loader.js?key=widget_public_key"></script>
2) Builder Sections
The widget builder stores richer presentation settings in the widget
theme JSON while keeping compatibility with scalar fields such as
launcher label, welcome message, AI toggle, and retrieval settings.
| Builder section | What it controls |
|---|---|
| branding | Logo, primary colors, text colors, and the visual tone of the widget shell. |
| launcher | Placement, button style, button text, and icon style for the launcher. |
| avatar | Bot or agent image plus fallback initials. |
| forms | Pre-chat fields, post-chat lead capture, labels, required flags, consent copy. |
| behavior | Popup or inline mode, locale defaults, auto-translate behavior, department routing. |
| offline | Offline copy, email-capture messaging, and fallback routing behavior. |
| auto_open | Delay-based open, scroll threshold, and first-visit-only behavior. |
| quick_replies | Ordered quick action buttons shown to visitors. |
| custom_css | Workspace-defined CSS scoped to that widget. |
3) Visitor Flow
Visitors do not need a customer account. Every visitor receives a session token,
and the public widget APIs reuse that token to recover open conversations.
Messages are stored with sender types of visitor, agent,
ai, or system.
- Widget bootstrap validates the public key and allowed domain.
- A visitor session is created or reused.
- Pre-chat lead capture can be required before the first public message.
- Typing, attachments, and polling updates work without customer login.
- CSAT feedback and post-chat lead capture can be requested after resolution.
GET /widget/loader.js?key={public_key}
POST /api/widget/bootstrap
POST /api/widget/messages
GET /api/widget/conversations/{conversation}/poll
POST /api/widget/conversations/{conversation}/typing
POST /api/widget/conversations/{conversation}/feedback
4) Domain Security and Offline Mode
Widget security depends on per-widget allowed domains, not on hiding the script URL. If the request origin does not match an allowed domain, bootstrap and messaging calls are rejected.
- Add every production domain explicitly.
- Keep staging domains separate from live domains.
- Use dedicated widgets when business units need different routing.
- Visitors can leave contact details even when the team is offline.
- Offline submissions can create leads and trigger webhooks.
- The offline block can be localized and branded per widget.
5) Inbox Operations
The inbox supports a full human helpdesk workflow on top of public chat. Agents can reply, change status, update priority, assign conversations, add internal notes, sync tags, archive threads, request AI summaries, and generate reply suggestions.
| Inbox capability | Use case |
|---|---|
| Status and priority | Track open, pending, resolved, closed, and urgency changes. |
| Assignment and departments | Route work to the correct team or person. |
| Notes and tags | Internal-only collaboration and manual classification. |
| Saved views and filters | Quickly jump to urgent, archived, or role-specific queues. |
| AI copilot tools | Summaries and suggestions for faster handling. |
6) Multilingual and RTL
Widgets can expose translated copy and switch text direction at runtime. Locale detection uses widget defaults plus request context, and the front-end loader applies the returned language and direction metadata to the widget shell.
7) Launch Checklist
- Confirm allowed domains are correct for each widget.
- Test at least one real conversation from the target website.
- Verify the correct department and assignee receive the first message.
- Test attachments, CSAT, and post-chat lead capture if enabled.
- Check the widget in both desktop and mobile layouts before public launch.