SettingsChat Widget
Settings

Configure the chat widget

Configure the web chat widget appearance, allowed domains, proactive messaging, and tracking so it installs cleanly on your site and emits reliable analytics.

Overview

Configure the Chat Widget settings to control how the embeddable widget looks, where it can load, when it proactively appears, and how its events are tracked.

Prerequisites

You need:

  • Access to your website codebase or tag manager to add the embed snippet before the closing </body> tag.
  • DNS or hosting access to confirm the exact domains where the widget should load (for example, app.acme.com, www.acme.com).
  • Tenant admin or workspace admin permissions to change Settings → Chat Widget.

If you do not add your production domains to Allowed domains, the widget does not load even if the embed snippet is present.

Chat widget appearance fields

Use the Chat Widget Configuration section to control how the widget looks on your site.

themestring
Required

Visual theme for the widget. Choose Light for light backgrounds or Dark for darker pages and better contrast.

positionstring
Required

Screen corner where the launcher button appears. Options: Bottom right, Bottom left, Top right, Top left.

widgetColorstring
Required

Hex color that controls the launcher button, primary buttons, and key accents in the widget. Use a brand-safe color to match your site.

greetingMessagestring
Required

Text shown when the widget opens for the first time, above the message composer. Use it to set expectations, for example, "Ask anything about your account."

avatarUrlstring

Optional image URL used for the assistant avatar in the conversation view. Use a square image hosted over HTTPS for best rendering.

headerIconUrlstring

Optional icon URL shown in the header next to the widget title or wordmark. Use a transparent PNG or SVG for best results.

headerWordmarkUrlstring

Optional logo or wordmark URL used in the header. This typically displays your brand name or logotype.

Preview how the widget looks on both light and dark pages. If your site has multiple themes, pick the theme and widget color that maintains contrast in the most common environment.

Save widget configuration

Use the Save widget configuration button to apply appearance changes to new widget loads.

Adjust visual settings

  • Open Settings → Chat Widget → Configuration.
  • In Chat Widget Configuration, set Theme, Position, Widget color, and Greeting message.
  • Optionally add Avatar URL, Header icon URL, and Header wordmark URL.

Preview on your site

  • Open a page that already has the chat widget embed snippet installed.
  • Hard refresh the page to bypass cached assets.
  • Open the widget and confirm the new colors, images, and greeting message render as expected.

Save your changes

  • Return to Settings → Chat Widget → Configuration.
  • Click Save widget configuration.
  • Confirm the saved indicator appears and changes persist after a page refresh.

Allowed domains

Allowed domains restrict where the widget can initialize and connect to your tenant.

If the current page domain is not in Allowed domains, the widget fails to load or connect even if the embed snippet exists. Always add production and staging domains before testing.

Allowed domain fields

domainstring
Required

Hostname where the widget is allowed to run, for example, app.acme.com or help.acme.io. Do not include protocol or path.

workspacestring
Required

Workspace associated with conversations that start from this domain. Each domain routes to exactly one workspace, but you can change it at any time.

statusstring

Read-only active indicator showing whether the most recent health checks and loads for this domain succeeded.

Manage allowed domains

Use the domain input, workspace dropdown, and domain list controls to manage access.

Add an allowed domain

  • Go to Settings → Chat Widget → Configuration → Allowed domains.
  • Enter the domain in the add-domain field, for example www.acme.com.
  • Select the Workspace that should receive new conversations from this domain.
  • Click Add domain and confirm the new row appears in the list with an active status.

Change a domain workspace

  • Locate the domain in the list.
  • Use the workspace dropdown in that row to select the new workspace.
  • Confirm that new conversations from that domain now appear in the updated workspace.

Remove a domain

  • Find the domain you want to deauthorize.
  • Click the Remove or delete icon in the domain row.
  • Confirm the removal. The widget no longer initializes on that domain after you deploy and reload the page.

Generate embed token and install the widget

The Embed code section lets you generate a widget token and copy the installation snippet for your site.

widgetTokenstring
Required

Unique token that identifies your tenant and configuration. The dashboard generates this when you click Generate token.

Use one widget token per tenant. If you regenerate the token, update the embed snippet everywhere it is installed.

Generate or locate your widget token

  • Open Settings → Chat Widget → Configuration → Embed code.
  • Click Generate token if you do not see a token yet.
  • Note the displayed token and confirm the embed snippet reflects it.

Copy the embed snippet

  • In the Embed code panel, copy the provided snippet using the Copy button.
  • The snippet is pre-configured with your widgetToken and tenant endpoint.

Paste before the closing body tag

  • Open your website layout or template in your code editor or CMS.
  • Paste the snippet immediately before the closing </body> tag on pages where the widget should appear.
  • Save and deploy your changes.
<!-- Example: chat widget embed snippet -->
<script>
  (function () {
    window.chatWidget = window.chatWidget || {};
    window.chatWidget.widgetToken = "YOUR_WIDGET_TOKEN";
  })();
</script>
<script src="YOUR_WIDGET_SCRIPT_URL" async></script>

The authoritative embed snippet is always the one shown in the Embed code panel, so copy it directly from there instead of retyping from this example.

Publish and verify

  • Open your site in a browser at a domain included in Allowed domains.
  • Confirm the launcher button appears in the configured position.
  • Click the launcher and verify the greeting message and branding match your configuration.
  • Repeat for any additional environments (staging, preview) after adding those domains.

Proactive messaging configuration

Proactive messaging automatically opens the widget and shows a message when the visitor matches configured triggers.

Proactive messaging fields

proactiveEnabledboolean

Master toggle that enables or disables proactive messaging. When disabled, no automatic prompts appear, even if triggers are configured.

proactiveMessageTemplatestring

Text template for the proactive message shown when a trigger fires. Write a short, clear invitation to start a conversation.

timeDelaySecondsinteger

Minimum number of seconds after page load before the proactive message can appear.

scrollPercentageinteger

Scroll depth (0–100) required before the proactive message can appear. Use higher values when you only want to engage engaged readers.

idleTimeSecondsinteger

Number of seconds without mouse or keyboard activity required to trigger the message.

exitIntentboolean

Enable detection of exit-intent, such as the cursor moving rapidly toward the browser chrome, to trigger a proactive prompt.

customEventsarray

List of custom event rules. Each rule specifies a type (Hover, Click, or Focus) and a CSS selector that identifies the element that should trigger a proactive message.

showOncePerSessionboolean

Prevent the same visitor from seeing the proactive message more than once per browser session, regardless of how many triggers fire.

Combine a generous time delay with Show only once per session to avoid overwhelming visitors. For example, wait 30–45 seconds and only show the prompt once.

Configure a proactive message

Enable proactive messaging

  • Go to Settings → Chat Widget → Configuration → Proactive Messaging.
  • Turn on the Enable proactive messaging toggle.
  • Enter a concise Message template, for example, "Need help finding the right plan? Chat with us."

Set trigger conditions

  • Configure one or more triggers:
    • Time delay: choose a delay such as 30 seconds.
    • Scroll percentage: set 50 or 60 to target engaged readers.
    • Idle time: specify a threshold like 20 seconds.
    • Exit intent: enable to catch users as they move to close or leave the page.
  • If you use custom events, define rules such as:
    • Type Click with selector .pricing-cta-button
    • Type Hover with selector #contact-support-link
// Example: custom event target element
<button class="pricing-cta-button">
  Talk to sales
</button>

Limit frequency

  • Enable Show only once per session to avoid repeated prompts.
  • Save the configuration to ensure the session rules apply.

Test triggers

  • Open a page with the embed snippet in a new incognito window.
  • Interact with the page to meet your trigger conditions (for example, scroll past 60 percent).
  • Confirm the widget opens with your proactive message and only appears once per session.
  • Repeat for custom event elements and exit-intent behavior.

General troubleshooting

Use these checks if the widget does not show up or behaves unexpectedly.

Widget not appearing at all

  • Confirm you installed the embed snippet before the closing </body> tag on the page you are testing.
  • Verify the snippet uses a valid widgetToken from Settings → Chat Widget → Configuration → Embed code.
  • Check the browser console for network errors loading widget.js or CORS issues.

Widget blocked on certain domains

  • Go to Settings → Chat Widget → Configuration → Allowed domains.
  • Confirm the exact hostname you are testing (for example, staging.acme.com) appears in the list.
  • Add the domain and assign the correct workspace if it is missing, then reload the page.
  • If you recently updated DNS, allow time for propagation before re-testing.

Appearance changes not reflected

  • Ensure you clicked Save widget configuration after editing appearance or proactive messaging settings.
  • Hard refresh your browser (Shift + reload) or clear cache to bypass stale assets.
  • If you use a CDN, purge the cache for the page or script where the widget loads.