Configuration
Configuration is split in two places, deliberately: the script tag only says which widget instance and which widget type to load. Everything about how it looks and behaves is set in your dashboard and fetched at page load — so changing your brand color or AI provider never means editing embed code on your site again.
Script tag attributes
These are the only two attributes the widget reads.
| Attribute | Default | Description |
|---|---|---|
| data-widget-idrequired | — | The specific widget's identifier, shown in your dashboard. The widget type is resolved from this ID server-side — there's no separate attribute for it. |
Dashboard settings
Set once in your dashboard under a widget's Settings tab — applies immediately, no redeploy needed. Grouped below the same way the Settings tab is: Basics, Appearance, Notifications, Integrations, and Advanced.
Basics
Which widget this is and which AI answers for it.
| Setting | Default | Applies to | Description |
|---|---|---|---|
| name | — | All widgets | The internal label for this widget in your dashboard — visitors never see it. Useful once you have more than one widget, e.g. "Homepage bot" vs "Pricing page bot". |
| ai_provider | gemini | All widgets | Which AI provider handles requests: gemini, openai, or anthropic. |
| api_key | — | All widgets | Your provider API key. Encrypted at rest with AES-256-GCM before it's stored — write-only from the dashboard, never returned or shown again. |
Appearance
How the widget looks and where/when it shows up.
| Setting | Default | Applies to | Description |
|---|---|---|---|
| brand_color | #111111 | All widgets | Hex color used for the widget button and accents. The default look is black and white. |
| widget_theme | classic | All widgets | Chrome preset for the chat panel: "classic", "minimal", or "dark". Your brand color, font, and corner radius still apply on top. Included on plans that list "Custom icon & widget themes" on the pricing page. |
| button_text | Chat with us | All widgets | Label shown on the launcher button and chat header. |
| font_family | Inter | All widgets | Font family applied inside the widget panel. |
| border_radius | 12 | All widgets | Corner radius in pixels for the widget panel and button. |
| icon_url | — | All widgets — plans that include a custom icon | Custom launcher icon (PNG/JPG/GIF/WEBP, under 1MB) replacing the default chat bubble, so the button reads as yours at a glance. |
| widget_position | bottom-right | All widgets | bottom-right, bottom-left, or inline. |
| proactive_delay_seconds | — (off) | All widgets, floating placements only | Auto-opens the widget after a visitor has been on the page this many seconds, instead of waiting for a click. Opens once per visitor per page-view; leave blank to keep it click-only. |
Integrations
Connecting the widget to other systems you already run.
| Setting | Default | Applies to | Description |
|---|---|---|---|
| woocommerce_site_url | — | Support Bot only — plans that include store lookup | Your store's URL, paired with woocommerce_consumer_key and woocommerce_consumer_secret (generated under WooCommerce → Settings → Advanced → REST API with Read permissions). Lets the bot answer real order-status and stock questions from live data. Order lookups only return after the order number is matched to the visitor's email. |
Behavior
What the bot says, what it avoids, and when it brings in a person. Set on the Behavior tab.
| Setting | Default | Applies to | Description |
|---|---|---|---|
| welcome_message | — | Support Bot | The first message visitors see. Leave empty for the built-in greeting. |
| suggested_questions | — | Support Bot | Up to 6 short questions shown as tap-to-ask buttons under the greeting. |
| tone | — | Support Bot | Tone of voice for answers, for example friendly or formal. |
| blocked_topics | — | Support Bot | Topics the bot must decline to discuss. The bot is instructed with these; as with any AI, treat it as a strong guideline rather than a guarantee. |
| handoff_message | — | Support Bot | What the visitor sees when the bot passes them to your team. |
| collect_contact | on | Support Bot | Show the name-and-email form when a person is needed. |
| show_sources | on | Support Bot | Show links to the pages the answer came from. |
| business_hours / away_message | — (always online) | Support Bot | Days, hours and time zone your team is available. Outside them the visitor sees the away message instead of an offer to connect. |
| widget_title, widget_subtitle, avatar_url, launcher_style, widget_size | — | Support Bot | The header text, avatar image (https), launcher as icon or text button, and panel size (compact, normal, large). |
| retention_days | keep forever | Support Bot | Automatically delete conversations older than 30, 90, 180 or 365 days. Captured contacts and tickets are not deleted. |
Tickets, channels and extras
What happens after the bot can't help, and where else it can answer.
| Setting | Default | Applies to | Description |
|---|---|---|---|
| notification_email / slack_webhook_url / crm_webhook_url | — | Support Bot | Where hand-off alerts go: an email address, a Slack incoming webhook, and any URL that accepts a JSON POST (Zapier, Make, your CRM). |
| Integrations tab | — | Support Bot | Send each new ticket to Zendesk, Freshdesk, HubSpot, Jira, Linear, Trello, Asana, ClickUp, monday, Notion, Airtable, GitHub, PagerDuty, Teams, Discord, Telegram, Twilio, Mailchimp or MailerLite. Freshdesk, Jira, HubSpot and Linear are tested with real accounts; the others are in beta. Zendesk works only for older accounts, because Zendesk is removing API tokens. Credentials are encrypted. Tickets go one way, to the tool. |
| Channels tab | — | Support Bot | Connect Telegram (bot token from @BotFather) or SMS/WhatsApp (your own Twilio account), and get the iframe snippet, hosted chat link and QR code. |
| help_center_enabled | off | Support Bot | Publishes a searchable help page at /help/<widget id> from your typed articles, taught answers and imported pages. Uploaded files are never published. |
| speech_enabled | off | Support Bot | Adds a microphone and read-aloud button to the chat, using the visitor's browser. Hidden where the browser doesn't support it. |
| Ticket automation | off | Support Bot | Under Tickets: rules that set priority, assign or tag new tickets by keyword; a reply-time goal (1 to 168 hours) that flags overdue tickets and emails you; auto-close of solved tickets after 3 to 30 days; and a weekly summary email. |
Advanced
Prompt behavior and access control.
| Setting | Default | Applies to | Description |
|---|---|---|---|
| system_prompt | — | All widgets | Extra instructions sent to the AI on every request — your business context, tone, or extraction rules. |
| widget_language | auto | All widgets | "auto" detects and mirrors each visitor's own language; a specific code (e.g. "es") pins every AI reply to that language instead. |
| allowed_domain | — | All widgets | Restrict which domain the widget will load on. |
| knowledge_base | — | Support Bot only | Text, URL, and file sources the bot answers from, managed on the widget's Knowledge Base tab (not the Settings tab). |
No per-page overrides yet
allowed_domain). If you need different branding on different sites, create separate widgets — each has its own settings.