Chat
Put an AI chat widget on your site and build the conversation workflows behind it.
Complete reference for the Chat section: the AI chat widget you embed on your website, the appearance customizer, sandbox test widgets, and the visual workflow builder.
The section is hidden from agents and supervisors.
For the fast path, use the Quick Start.
Section map#
| Sidebar page | Path | What it is |
|---|---|---|
| Widgets | /chat-widgets/widgets | Live chat widgets you have deployed |
| Test Widgets | /chat-widgets/test-widgets | Sandbox clones for safe experiments |
| Workflows | /workflows | The conversation flows widgets execute |
/chat-widgets redirects to /chat-widgets/widgets. The Chat group owns both URL trees, which is why Workflows lives here rather than in its own section.
Widgets#
Toolbar: a search box (Search widgets...), a status filter (All Status / Active / Inactive), Refresh, and Create Widget.
Creating a widget
Create Chat Widget has four fields:
| Field | Notes |
|---|---|
| Widget Name | Required, up to 60 characters. Internal. |
| Allowed Domains (comma-separated) | Domains or full URLs permitted to load the widget. Accepts example.com, https://example.com/, www.example.com. |
| Workflow (Optional) | Defaults to No Workflow. |
| Knowledge Base (Optional) | Defaults to No Knowledge Base. Attach one. |
Allowed Domains is the single most common cause of "the widget doesn't appear". It is an exact-host allowlist: example.com and www.example.com are different entries, and both need listing if both serve your site.
Attaching a Knowledge Base is what makes the widget answer from your business, with inline citations, rather than from general knowledge. A widget without one is not broken, but it is a much weaker product.
The widget card
Each card shows the widget name, its ID with a copy button, its active state, and six actions:
| Action | Opens |
|---|---|
| Appearance | The appearance customizer |
| Code | Widget Configuration, containing the install snippet |
| Config | Advanced Configuration — appearance, behavior, and LLM settings |
| Survey | Post-chat survey configuration |
| Edit | Edit Chat Widget — the same four creation fields |
| Delete | A confirmation |
Installing the widget
Code opens Widget Configuration. Under Integration Code is a <script> block. Copy it and paste it into your site's HTML, immediately before the closing </body> tag.
The snippet is a self-executing function that pushes your widget id and the API and socket URLs onto a global queue, then loads the widget UI bundle followed by the widget runtime. It is asynchronous, requires no build step, and works in any CMS or theme that lets you insert raw HTML.
The dialog also shows Widget Settings (status and widget id) and the Allowed Domains currently in force — check them here when debugging. Copy Widget ID copies the id only, not the whole snippet, so use the code block itself for the install.
Advanced Configuration at the bottom of the dialog opens the deeper per-widget settings for appearance, behavior, and LLM configuration.
The widget is a standalone bundle, not part of the dashboard's React app. If you are a developer editing the widget source in the repo, it has to be rebuilt separately.
The appearance customizer#
Reached from Appearance on a widget card. A live preview sits beside the controls, and View Full Screen expands it.
The header shows the active theme, or Custom (unsaved) when you have edits with no theme, plus an Unsaved changes indicator.
Save, Save As, Publish — the distinction that matters
| Button | What it does |
|---|---|
| Save | Stores your changes. Does not affect the live widget. |
| Save As | Saves the current settings as a named, reusable theme with a Theme Name and Description. |
| Publish | Pushes the saved appearance to the live widget your visitors see. |
| Reset | Discards local edits. |
You can iterate with Save as much as you like without changing anything publicly. Nothing your visitors see changes until you Publish.
Switching theme with unsaved edits prompts Unsaved Changes — You have unsaved changes. Discard them to switch themes, or go back to save first. — with Go Back and Discard & Switch.
Setting groups
| Group | Contains |
|---|---|
| Themes | Preset starting points |
| Chat Interface Style | A complete look for the chat window — bubbles, input field, background. Your colour choices below still override individual elements on top of the preset. |
| Colors | Primary Color, Secondary Color, Message Text Color |
| Shape & Layout | Border Radius, Widget Position (all four corners), Theme Mode (light, dark, auto) |
| Logo | Upload Logo or Or Logo URL |
| Advanced Styling | Background Darkness, Message Opacity, Message Font Size, Font Family |
| Suggested Question Buttons | Button Radius, Button Color, Button Text Color |
| Input Field | Background Color, Text Color, Border Color |
| Header Gradient | Gradient From, Gradient To |
| Custom CSS | Overrides using .chatflow-* selectors |
| Floating Button | The launcher: Style Preset, Animation, Avatar Icon, Border Radius, Background Color, Text Color, Glow Color, Show Border, Greeting Text |
| Widget Text | Title, Subtitle, Welcome Message, Greeting Text, Placeholder Text, Widget Status |
Widget Text is where the words your visitors read live, and it is worth more attention than the colours. A Welcome Message that names what the assistant can actually do outperforms a generic greeting.
Test Widgets#
A test widget is a clone of a live widget that you can experiment on without touching real traffic. Create one before making meaningful changes to a widget customers are using.
Create Test Widget asks for a Source Widget, then what to bring across under Include in Test Widget:
| Option | Behaviour |
|---|---|
| Workflow | Clones the workflow into a separate test copy |
| Knowledge Base | References the same knowledge base — not a copy |
| Prompt Overrides | Copies prompt override settings |
| Appearance | Copies theme, colours, and styling |
Note the asymmetry: the workflow is cloned, so editing the test copy is safe. The knowledge base is shared by reference, so editing that content does affect the live widget.
Test widget cards carry a TEST pill and add Reset Session, which clears the conversation so you can start from the first message again. This is the fastest way to test a workflow's opening branch repeatedly.
Deleting a test widget also deletes its cloned workflow.
Workflows#
A workflow is a defined conversation: a graph of nodes the widget walks through. Use one when the conversation has to do something in a particular order — qualify, book, look up, escalate. For open-ended question answering, a knowledge base alone is usually better.
The list shows production workflows with a count of each, plus test drafts nested under their production parent. Show only items with test drafts filters to work in progress.
Creating one
New Workflow opens Create New Workflow — Choose how you'd like to get started:
- Start from Scratch — Build a custom workflow tailored to your specific needs with complete control.
- Choose a Template — Select from pre-built workflow templates to get started quickly.
Templates
Filterable by category: All, General, Support, Sales, E-commerce, Booking, Marketing.
| Template | Category |
|---|---|
| Blank Canvas | General |
| Customer Support | Support |
| FAQ Bot | Support |
| Feedback Collection | Support |
| Technical Support | Support |
| Welcome & Routing | Support |
| Out of Office | Support |
| Lead Qualification | Sales |
| Product Inquiry | Sales |
| Product Recommendation | E-commerce |
| Order Tracking | E-commerce |
| Newsletter Signup | Marketing |
| User Onboarding | Marketing |
Starting from a template and deleting what you do not need is consistently faster than building from Blank Canvas.
The builder
Drag nodes from the Components panel onto the canvas and connect them. Show Advanced Components reveals the rest; advanced nodes are marked PRO.
Categories are Core Flow Control, Communication, AI & Processing, Data & Storage, Integration & APIs, Advanced Features, Analytics & Tracking, Security & Validation, Custom & Extensions, and Industry Solutions.
The nodes you will use most:
| Node | What it does |
|---|---|
| Start | Workflow entry point |
| End | Workflow termination point |
| Message | Send text messages |
| Button Message | Messages with action buttons |
| Image Message | Send images |
| Condition | Branch based on conditions |
| LLM Process | AI-powered responses |
| Local Data Call | Query data from data collections |
| API Call | Make HTTP requests |
| Shopify | Shopify store integration |
| Human Handoff | Transfer to human agent |
Advanced nodes include Switch (multiple condition branches), Loop (repeat actions), Carousel (display multiple items), Video Message, Form Message (collect user input), Webhook (trigger external services), Email, Schedule, and JavaScript.
Human Handoff is the node most workflows are missing. Without it, a conversation the AI cannot resolve has nowhere to go. It hands the conversation to a person with the full transcript attached — see Support.
Execution modes
Two toggles in the builder header:
- Agentic or Graph. Graph follows your node connections strictly. Agentic gives the model latitude within the flow.
- Auto-start: On / Off — whether the workflow begins on its own when a visitor opens the widget.
Saving, publishing, activating
| Button | What it does |
|---|---|
| Save | Saves the current workflow. On a new workflow the button reads Create. |
| Publish | Promotes the current state to production |
| Activate / Deactivate | Whether this workflow runs for live traffic |
| Run | Tests the workflow in place |
| New | Starts a fresh workflow |
Status pills show whether you are looking at a Test Draft or Production, and whether it is Active or Inactive.
Save, publish, and activate are three separate steps. A saved workflow that is published but not activated will not run. If a workflow appears to be ignored, check all three, and then check that the widget's Edit dialog actually has that workflow selected in the Workflow field.
Test drafts
Saving a test workflow from the builder creates a test draft under its production parent. From the list you can Edit it, Promote it to production, or discard it. This is the safe way to change a workflow serving live traffic.
Chat and voice together#
Setting Link to Chat Widget on a call widget enables voice calling inside your web chatbot — a visitor can escalate from typing to talking without leaving the page. That field is on the call widget, not the chat widget: see AI Calls.
Languages#
Chat supports 50+ languages. This is a different figure from the 16 voice languages available to call widgets, and the two lists are not the same. Do not assume a language available in chat is available in voice, or the reverse.
Troubleshooting#
| Symptom | Usual cause |
|---|---|
| Widget does not appear on the site | The host is not in Allowed Domains. www. and bare domains are separate entries. |
| Widget appears but answers generically | No knowledge base attached, or it is empty. Check Knowledge → Overview for document counts. |
| Appearance changes not visible to visitors | You saved but did not Publish. |
| Theme reverts when switching themes | You switched with unsaved edits and chose Discard & Switch. |
| Workflow is ignored | Not activated, not published, or not selected in the widget's Edit dialog. |
| Workflow gets stuck | No path to an End node, or a Condition with no matching branch. |
| Conversation with an unhappy visitor dead-ends | The workflow has no Human Handoff node. |
| Editing a test widget changed the live one | The knowledge base is shared by reference, not cloned. Only the workflow is cloned. |
| Cannot see the Chat section | Your role is agent or supervisor. |
Related#
- Chat quick start
- Knowledge — what the widget answers from
- Support — where handed-over conversations land
- Audience — visitor tracking, data collections, calendars
- Insights — Widget Analytics, Survey Responses
- FloGPT for Shopify — the storefront widget and Shopify tools