Configuring the Kai widget
This page explains every current Widget control, the two embed modes, allowed-origin behavior, and the visitor-facing footer.
What can I customize?
Customize how the widget looks and behaves from the Widget page. Configuration changes save after an 800 ms debounce, then the dashboard attempts to sync them to CDN/KV. A banner distinguishes a full sync from a database save whose live sync was skipped or failed.
The widget configuration is separate from the knowledge base. Appearance changes affect the user interface, while knowledge base changes affect the answers.
Which appearance settings are available?
| Setting | Description |
|---|---|
| Primary color | Main widget accent, selected with a color control or hex text input. |
| Secondary color | Supporting accent, selected with a color control or hex text input. |
| Position | Bottom right or Bottom left placement for floating mode. |
Use appearance settings to make the widget feel native to your website while keeping the conversation interface easy to find.
Which messaging settings are available?
| Setting | Description |
|---|---|
| Welcome message | Greeting shown when the chat panel opens for the first time. |
| Input placeholder | Hint text in the message input field. |
Write messaging in the same voice as your website. Clear placeholder text helps visitors understand what they can ask.
Which visibility and feature controls are available?
| Control | Effect |
|---|---|
| Hide widget / Show widget | Changes whether installed widgets are visible on allowed domains. |
| Voice enabled | Allows visitors to speak questions aloud with a microphone. |
| Hide branding | Removes the Powered by Kai Roses footer. Available only on Growth and Scale. |
Free includes voice but has a shared 30-minute billing-period allowance and a 5-minute cap on each voice conversation. Growth and Scale have no per-conversation cap and can continue into paid voice overage after their included minutes.
How do allowed domains work?
Under Domains & features, add every origin where the embed should load. Add domain accepts a hostname or origin and normalizes it:
- Regular hostnames default to HTTPS.
localhostand127.0.0.1default to HTTP.- Ports are preserved and must match the page origin.
- Duplicate origins are rejected.
Each existing row has Remove; the final entry cannot be removed from the UI. The dashboard's own preview origins are authorized separately, so preview works without adding hiimkai.ai.
Which embed mode should I use?
- Floating loads a launcher bubble in the configured corner and opens a chat panel when selected. Its generated snippet is one async script.
- Inline embeds the iframe into a page container. Enter a Target selector such as
#cl-widget; the generated snippet creates the container and passes that selector throughdata-target.
Select the mode before Copy install snippet, because the copied text always matches the current choice. See Installing the widget for placement examples.
How do I preview the widget?
Select Preview to open the selected site's chat in a dashboard modal. The preview authorizes microphone access and uses a preview session ID.
Use it to check colors, messaging, voice, and branding before copying the install snippet. Domain authorization is bypassed only for approved dashboard origins; it does not bypass the allowed-origin check on your own site.
What is Resolved config?
Resolved config is a read-only JSON summary of the site ID and name, colors, position, messaging, feature flags, visibility, allowed domains, and the first 300 characters of the knowledge-base summary. It is useful for confirming what the dashboard is about to publish, but it is not an editor.