Skip to Content

Widget Configuration API Reference

Complete reference for all configuration options available in the Nexus Chat Widget. Use the search to find specific options, or browse the tree structure below.

experienceIdstring

Core configuration

apiUrlstring
accessTokenstringoptional

Optional access token for authentication

theme"light" | "dark"optional

Global theme

typographyobjectoptional

Global typography settings These provide base values that can be overridden by component-specific settings

embeddedbooleanoptional

Whether the widget is embedded in the page (default: false)

useShadowDOMbooleanoptional

Enable Shadow DOM for complete CSS isolation. When true, the widget renders inside a Shadow DOM boundary, providing: - Complete bidirectional CSS isolation - No selector conflicts with host page - Protection from hostile CSS overrides Trade-offs: - Some third-party tools may not work (analytics that query DOM) - Inherited CSS properties (color, font-family) still cascade in

Default: false
disableTabSyncbooleanoptional

Disable cross-tab synchronization. When false (the default), the widget synchronizes session, messages, and state across multiple browser tabs using BroadcastChannel API with localStorage fallback. Set to true when: - Different pages serve different purposes (multi-context applications) - Testing widget behavior in isolation - Users may have different accounts open in different tabs - Privacy requirements prevent state sharing between tabs

Default: false
buttonobjectoptional

Chat button configuration

windowobjectoptional

Chat window/viewport configuration

bubblesobjectoptional

Message bubbles configuration

inputInputConfigoptional

Input area configuration

messagesobjectoptional

Messages/content

disclaimerobjectoptional

Disclaimer configuration

brandingobjectoptional

Branding configuration

featuresobjectoptional

Features configuration

eventsobjectoptional

Event rendering configuration

scrollbarScrollbarConfigoptional

Scrollbar styling configuration for the message container. Allows customization of scrollbar appearance (width, colors, border-radius) and auto-hide behavior. When not provided, browser default scrollbar is used.

Examples: scrollbar: { width: "8px", thumbColor: "#888", trackColor: "#f1f1f1", autoHide: true }
advancedobjectoptional

Advanced settings

For detailed explanations and examples, see the Configuration Guide.

WidgetConfig.experienceId

Core configuration

WidgetConfig.apiUrl

WidgetConfig.accessToken

Optional access token for authentication

WidgetConfig.theme

Global theme

WidgetConfig.typography

Global typography settings These provide base values that can be overridden by component-specific settings

WidgetConfig.typography.baseFontSize

Base font size for the entire widget This sets the root font size from which all relative sizes are calculated

Default: "base" (16px)

"base" (16px)"14px""1rem"

WidgetConfig.embedded

Whether the widget is embedded in the page (default: false)

WidgetConfig.useShadowDOM

Enable Shadow DOM for complete CSS isolation. When true, the widget renders inside a Shadow DOM boundary, providing: - Complete bidirectional CSS isolation - No selector conflicts with host page - Protection from hostile CSS overrides Trade-offs: - Some third-party tools may not work (analytics that query DOM) - Inherited CSS properties (color, font-family) still cascade in

Default: false

WidgetConfig.disableTabSync

Disable cross-tab synchronization. When false (the default), the widget synchronizes session, messages, and state across multiple browser tabs using BroadcastChannel API with localStorage fallback. Set to true when: - Different pages serve different purposes (multi-context applications) - Testing widget behavior in isolation - Users may have different accounts open in different tabs - Privacy requirements prevent state sharing between tabs

Default: false

WidgetConfig.button

Chat button configuration

WidgetConfig.button.position

WidgetConfig.button.text

WidgetConfig.button.backgroundColor

WidgetConfig.button.textColor

WidgetConfig.button.hoverBackgroundColor

WidgetConfig.button.borderRadius

WidgetConfig.button.size

WidgetConfig.button.iconUrl

Custom icon

WidgetConfig.window

Chat window/viewport configuration

WidgetConfig.window.width

WidgetConfig.window.height

WidgetConfig.window.backgroundColor

WidgetConfig.window.borderRadius

WidgetConfig.window.boxShadow

WidgetConfig.window.topAccentColor

Top accent bar

WidgetConfig.window.topAccentHeight

Height of top accent bar (default: "4px")

WidgetConfig.window.sizing

Window sizing options

WidgetConfig.window.sizing.allowResize

Allow user to resize the window

WidgetConfig.window.sizing.modes

WidgetConfig.window.sizing.defaultMode

Default mode name

WidgetConfig.window.sizing.showToggle

Show the size toggle button

WidgetConfig.window.sizing.rememberSize

Remember user's size preference

WidgetConfig.window.sizing.disableAutoMobile

Disable automatic mobile mode switching (default: false)

WidgetConfig.window.header

Header specific

WidgetConfig.window.header.show

WidgetConfig.window.header.backgroundColor

WidgetConfig.window.header.textColor

WidgetConfig.window.header.fontFamily

Font family for header text

WidgetConfig.window.header.fontSize

Font size for header title text

Default: undefined (inherits base font size)

"lg""18px"

WidgetConfig.window.header.iconColor

Color for header icons (close, menu, size toggle)

WidgetConfig.window.header.title

WidgetConfig.window.header.showCloseButton

WidgetConfig.window.header.showSizeToggle

Show size toggle in header

WidgetConfig.window.header.padding

Header padding (default: "12px")

WidgetConfig.window.header.border

Header bottom border shorthand Set to "none" to remove border entirely

"1px solid #e5e7eb""none"

WidgetConfig.window.header.borderColor

Header bottom border color

"#e5e7eb""transparent"

WidgetConfig.window.header.borderWidth

Header bottom border width

Default: "1px"

"2px""0"

WidgetConfig.bubbles

Message bubbles configuration

WidgetConfig.bubbles.defaultMaxWidth

For messages with avatars, this width is adjusted using calc() to account for avatar space

WidgetConfig.bubbles.defaultAvatar

Default avatar styling for all message bubbles Can be overridden by role-specific avatar configs

WidgetConfig.bubbles.defaultAvatar.enabled

Whether to show the avatar

Default: true

WidgetConfig.bubbles.defaultAvatar.url

Avatar image URL If not provided, falls back to default avatar icon

"https://api.dicebear.com/7.x/avataaars/svg?seed=agent"

WidgetConfig.bubbles.defaultAvatar.size

Avatar size Presets: "xs" (20px), "sm" (24px), "md" (32px), "lg" (40px), "xl" (48px) Or provide custom CSS value: "40px", "2.5rem", etc.

WidgetConfig.bubbles.defaultAvatar.borderRadius

Avatar border radius Presets: "circle" (fully rounded), "rounded" (8px), "square" (0px) Or provide custom CSS value: "50%", "12px", etc.

WidgetConfig.bubbles.defaultAvatar.border

Avatar border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.bubbles.defaultAvatar.borderWidth

Avatar border width (granular)

"2px"

WidgetConfig.bubbles.defaultAvatar.borderColor

Avatar border color (granular)

"#10b981"

WidgetConfig.bubbles.defaultAvatar.borderStyle

Avatar border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.bubbles.defaultAvatar.margin

Avatar margin (spacing around avatar)

Default: "0 12px 0 0" (message bubbles)

"0 12px 0 0"

WidgetConfig.bubbles.user

User messages

WidgetConfig.bubbles.user.backgroundColor

WidgetConfig.bubbles.user.backgroundColorHover

Background color on hover (optional, defaults to brightness filter)

WidgetConfig.bubbles.user.enableHoverEffect

Enable/disable hover effect (default: true)

WidgetConfig.bubbles.user.textColor

WidgetConfig.bubbles.user.fontFamily

Font family for user message text

WidgetConfig.bubbles.user.fontSize

Font size for user message text

Default: undefined (inherits base font size)

"base""15px"

WidgetConfig.bubbles.user.borderRadius

WidgetConfig.bubbles.user.border

Full border shorthand (e.g., "1px solid #ccc")

WidgetConfig.bubbles.user.borderWidth

Border width (e.g., "1px", "2px")

WidgetConfig.bubbles.user.borderColor

Border color

WidgetConfig.bubbles.user.borderStyle

Border style (e.g., "solid", "dashed", "dotted")

WidgetConfig.bubbles.user.alignment

WidgetConfig.bubbles.user.maxWidth

WidgetConfig.bubbles.user.padding

Padding inside message bubble (CSS shorthand, default: "8px 16px")

WidgetConfig.bubbles.assistant

Assistant messages

WidgetConfig.bubbles.assistant.backgroundColor

WidgetConfig.bubbles.assistant.backgroundColorHover

Background color on hover (optional, defaults to brightness filter)

WidgetConfig.bubbles.assistant.enableHoverEffect

Enable/disable hover effect (default: true)

WidgetConfig.bubbles.assistant.textColor

WidgetConfig.bubbles.assistant.fontFamily

Font family for assistant message text

WidgetConfig.bubbles.assistant.fontSize

Font size for assistant message text

Default: undefined (inherits base font size)

"base""15px"

WidgetConfig.bubbles.assistant.borderRadius

WidgetConfig.bubbles.assistant.border

Full border shorthand (e.g., "1px solid #ccc")

WidgetConfig.bubbles.assistant.borderWidth

Border width (e.g., "1px", "2px")

WidgetConfig.bubbles.assistant.borderColor

Border color

WidgetConfig.bubbles.assistant.borderStyle

Border style (e.g., "solid", "dashed", "dotted")

WidgetConfig.bubbles.assistant.showAvatar

WidgetConfig.bubbles.assistant.avatarUrl

WidgetConfig.bubbles.assistant.avatar

WidgetConfig.bubbles.assistant.avatar.enabled

Whether to show the avatar

Default: true

WidgetConfig.bubbles.assistant.avatar.url

Avatar image URL If not provided, falls back to default avatar icon

"https://api.dicebear.com/7.x/avataaars/svg?seed=agent"

WidgetConfig.bubbles.assistant.avatar.size

Avatar size Presets: "xs" (20px), "sm" (24px), "md" (32px), "lg" (40px), "xl" (48px) Or provide custom CSS value: "40px", "2.5rem", etc.

WidgetConfig.bubbles.assistant.avatar.borderRadius

Avatar border radius Presets: "circle" (fully rounded), "rounded" (8px), "square" (0px) Or provide custom CSS value: "50%", "12px", etc.

WidgetConfig.bubbles.assistant.avatar.border

Avatar border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.bubbles.assistant.avatar.borderWidth

Avatar border width (granular)

"2px"

WidgetConfig.bubbles.assistant.avatar.borderColor

Avatar border color (granular)

"#10b981"

WidgetConfig.bubbles.assistant.avatar.borderStyle

Avatar border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.bubbles.assistant.avatar.margin

Avatar margin (spacing around avatar)

Default: "0 12px 0 0" (message bubbles)

"0 12px 0 0"

WidgetConfig.bubbles.assistant.maxWidth

WidgetConfig.bubbles.assistant.padding

Padding inside message bubble (CSS shorthand, default: "8px 16px")

WidgetConfig.bubbles.agent

Live agent messages

WidgetConfig.bubbles.agent.backgroundColor

WidgetConfig.bubbles.agent.backgroundColorHover

Background color on hover (optional, defaults to brightness filter)

WidgetConfig.bubbles.agent.enableHoverEffect

Enable/disable hover effect (default: true)

WidgetConfig.bubbles.agent.textColor

WidgetConfig.bubbles.agent.fontFamily

Font family for agent message text

WidgetConfig.bubbles.agent.fontSize

Font size for agent message text

Default: undefined (inherits base font size)

"base""15px"

WidgetConfig.bubbles.agent.borderRadius

WidgetConfig.bubbles.agent.border

Full border shorthand (e.g., "1px solid #ccc")

WidgetConfig.bubbles.agent.borderWidth

Border width (e.g., "1px", "2px")

WidgetConfig.bubbles.agent.borderColor

Border color

WidgetConfig.bubbles.agent.borderStyle

Border style (e.g., "solid", "dashed", "dotted")

WidgetConfig.bubbles.agent.showAvatar

WidgetConfig.bubbles.agent.avatarUrl

WidgetConfig.bubbles.agent.avatar

WidgetConfig.bubbles.agent.avatar.enabled

Whether to show the avatar

Default: true

WidgetConfig.bubbles.agent.avatar.url

Avatar image URL If not provided, falls back to default avatar icon

"https://api.dicebear.com/7.x/avataaars/svg?seed=agent"

WidgetConfig.bubbles.agent.avatar.size

Avatar size Presets: "xs" (20px), "sm" (24px), "md" (32px), "lg" (40px), "xl" (48px) Or provide custom CSS value: "40px", "2.5rem", etc.

WidgetConfig.bubbles.agent.avatar.borderRadius

Avatar border radius Presets: "circle" (fully rounded), "rounded" (8px), "square" (0px) Or provide custom CSS value: "50%", "12px", etc.

WidgetConfig.bubbles.agent.avatar.border

Avatar border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.bubbles.agent.avatar.borderWidth

Avatar border width (granular)

"2px"

WidgetConfig.bubbles.agent.avatar.borderColor

Avatar border color (granular)

"#10b981"

WidgetConfig.bubbles.agent.avatar.borderStyle

Avatar border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.bubbles.agent.avatar.margin

Avatar margin (spacing around avatar)

Default: "0 12px 0 0" (message bubbles)

"0 12px 0 0"

WidgetConfig.bubbles.agent.showAgentBadge

Show a badge indicating live agent

WidgetConfig.bubbles.agent.badgeText

Custom text for the badge (default: "Live Agent")

WidgetConfig.bubbles.agent.badgeColor

Badge background color

WidgetConfig.bubbles.agent.maxWidth

WidgetConfig.bubbles.agent.padding

Padding inside message bubble (CSS shorthand, default: "8px 16px")

WidgetConfig.bubbles.spacing

Shared bubble settings

WidgetConfig.bubbles.animation

WidgetConfig.bubbles.showTimestamps

WidgetConfig.input

Input area configuration

WidgetConfig.input.placeholder

Placeholder text for input field

WidgetConfig.input.placeholderColor

Color for placeholder text (default: browser default)

WidgetConfig.input.placeholderFontStyle

Font style for placeholder ("normal" | "italic" | "oblique")

WidgetConfig.input.backgroundColor

Background color for input area

WidgetConfig.input.textColor

Text color for input field

WidgetConfig.input.border

Full border shorthand (e.g., "2px solid #D5D6D9") Takes precedence over individual border properties when set

"1px solid #ccc""2px solid #D5D6D9""none"

WidgetConfig.input.borderColor

Border color for input area

WidgetConfig.input.borderRadius

Border radius for input area

WidgetConfig.input.borderWidth

Border width (default: "1px")

WidgetConfig.input.fontFamily

Font family for input text (default: system fonts)

WidgetConfig.input.fontSize

Font size for input text

Default: undefined (inherits base font size)

"base""14px"

WidgetConfig.input.sendButton

Send button configuration Groups all send button styling properties

WidgetConfig.input.sendButton.color

Base color for the send button (used for background in filled mode, text in text mode)

"#3B82F6"

WidgetConfig.input.sendButton.text

Custom text label for the send button (replaces default icon)

"Send"

WidgetConfig.input.sendButton.fontFamily

Font family for send button text

"Arial, sans-serif"

WidgetConfig.input.sendButton.fontSize

Font size for send button text

"base""14px"

WidgetConfig.input.sendButton.fontWeight

Font weight for send button text

"semibold"

WidgetConfig.input.sendButton.padding

Padding inside the send button

"8px 16px"

WidgetConfig.input.sendButton.style

Button appearance mode - "filled": Solid background with contrasting text (default) - "text": Transparent background with colored text

Default: "filled"

WidgetConfig.input.sendButton.backgroundColor

Background color (overrides color for filled mode, allows transparent)

"#3B82F6""transparent"

WidgetConfig.input.sendButton.border

Border for send button

"1px solid #ccc""none"

WidgetConfig.input.sendButton.borderRadius

Border radius for send button Falls back to input.borderRadius if not specified

"8px""50%"

WidgetConfig.input.sendButton.textColor

Text/icon color for send button

"#ffffff"

WidgetConfig.input.sendButton.disabledOpacity

Opacity when button is disabled

Default: "0.5"

WidgetConfig.input.sendButton.disabledTextColor

Text/icon color when button is disabled

"rgba(0, 0, 0, 0.3)"

WidgetConfig.input.sendButtonColor

WidgetConfig.input.micButtonColor

Color for microphone button (not yet implemented)

WidgetConfig.input.sendButtonText

WidgetConfig.input.sendButtonFontFamily

WidgetConfig.input.sendButtonFontSize

Font size for send button text (when sendButtonText is set)

"base""14px""1.5rem"

WidgetConfig.input.sendButtonFontWeight

Font weight for send button text (when sendButtonText is set)

"bold""semibold"

WidgetConfig.input.maxRows

Maximum number of rows for auto-expanding textarea (default: 2)

WidgetConfig.input.maxHeight

Maximum height as CSS value (e.g., "120px", "10vh") - takes precedence over maxRows

WidgetConfig.input.minRows

Minimum number of rows for textarea (default: 1)

WidgetConfig.input.padding

Padding inside textarea (default: "8px 12px")

WidgetConfig.input.gap

Gap between textarea and buttons (default: "8px")

WidgetConfig.input.sendButtonPadding

WidgetConfig.input.sendButtonStyle

WidgetConfig.input.sendButtonBackgroundColor

WidgetConfig.input.sendButtonBorder

WidgetConfig.input.sendButtonTextColor

WidgetConfig.input.sendButtonDisabledOpacity

WidgetConfig.input.sendButtonDisabledTextColor

WidgetConfig.input.integratedButton

Whether button appears inside input border (default: false)

WidgetConfig.input.topBorder

Configuration for the border above the input area. - Set to `false` to hide the border - Set to `true` or omit to show the default border (maintains current behavior) - Set to object for full customization

Default: true

WidgetConfig.input.topBorder.show

Whether to show the border

Default: true

WidgetConfig.input.topBorder.color

Custom border color (CSS color value)

Default: Theme-based gray (#e5e7eb in light mode, #374151 in dark mode)

WidgetConfig.input.topBorder.width

Border width (CSS width value)

Default: "1px"

WidgetConfig.input.autofocusOnLoad

Whether to autofocus the input field when the widget first loads.

Default: false

WidgetConfig.input.autofocusAfterResponse

Whether to autofocus the input field after receiving a bot response. Useful to disable on demo pages with multiple widgets to prevent focus conflicts.

Default: true

WidgetConfig.messages

Messages/content

WidgetConfig.messages.welcomeMessage

WidgetConfig.messages.welcomeMessageDisplay

Display mode for welcome message (default: "static")

WidgetConfig.messages.welcomeMessageShowAvatar

Show avatar on welcome message bubble (default: true, only applies when welcomeMessageDisplay is "bubble")

WidgetConfig.messages.welcomeMessagePersistent

Whether welcome message persists through conversation (default: false)

WidgetConfig.messages.welcomeActions

Actions for welcome message (only displayed in bubble mode)

WidgetConfig.messages.welcomeActions.position

Only bottom supported in Phase 1

WidgetConfig.messages.welcomeActions.alignment

Horizontal alignment

WidgetConfig.messages.welcomeActions.spacing

Gap between buttons (CSS value)

WidgetConfig.messages.welcomeActions.actions

Array of actions

WidgetConfig.messages.welcomeActions.actions.id

Unique identifier for this action

WidgetConfig.messages.welcomeActions.actions.label

Display text

WidgetConfig.messages.welcomeActions.actions.icon

Optional icon

WidgetConfig.messages.welcomeActions.actions.icon.type

WidgetConfig.messages.welcomeActions.actions.icon.content

SVG string, URL, or emoji character

WidgetConfig.messages.welcomeActions.actions.action

Action to perform

WidgetConfig.messages.welcomeActions.actions.style

Visual styling

WidgetConfig.messages.welcomeActions.actions.style.size

WidgetConfig.messages.welcomeActions.actions.style.backgroundColor

WidgetConfig.messages.welcomeActions.actions.style.disabledBackgroundColor

WidgetConfig.messages.welcomeActions.actions.style.iconColor

WidgetConfig.messages.welcomeActions.actions.style.textColor

WidgetConfig.messages.welcomeActions.actions.style.hoverBackgroundColor

WidgetConfig.messages.welcomeActions.actions.style.borderRadius

WidgetConfig.messages.welcomeActions.actions.style.border

Action button border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.messages.welcomeActions.actions.style.borderWidth

Action button border width (granular)

"2px"

WidgetConfig.messages.welcomeActions.actions.style.borderColor

Action button border color (granular)

"#10b981"

WidgetConfig.messages.welcomeActions.actions.style.borderStyle

Action button border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.messages.welcomeActions.actions.behavior

Behavior flags

WidgetConfig.messages.welcomeActions.actions.behavior.oneTimeUse

Disable after first click

WidgetConfig.messages.welcomeActions.actions.behavior.disableAllOnClick

Disable all buttons in group when this one is clicked (requires oneTimeUse)

WidgetConfig.messages.welcomeActions.actions.behavior.expiresAfterTurns

Auto-disable after N more turns

WidgetConfig.messages.welcomeActions.actions.behavior.disabled

Manually disabled

WidgetConfig.messages.welcomeActions.actions.behavior.disabledReason

Why disabled (for tooltip)

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior

Post-click confirmation

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.removeOnClick

Remove all action buttons after this action is clicked

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.confirmationMessage

Confirmation message to display after action click

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.confirmationMessageFormat

Format of the confirmation message (default: "markdown")

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.confirmationMessageAlignment

Alignment of confirmation message (default: "center")

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.confirmationMessageColor

Text color for confirmation message (CSS color value)

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.confirmationIcon

Icon to display with confirmation message

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.confirmationIcon.type

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.confirmationIcon.content

SVG string, URL, or emoji character

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.showIcon

Whether to show the icon (default: true if confirmationIcon provided)

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.showSystemEvent

Show a system event in the chat history (default: false)

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.systemEventMessage

Custom message for the system event (defaults to action-specific message)

WidgetConfig.messages.welcomeActions.actions.behavior.postClickBehavior.systemEventType

Type of system event to show (default: "info")

WidgetConfig.messages.welcomeActions.actions.visibility

Display options

WidgetConfig.messages.welcomeActions.actions.visibility.showLabel

Show text label

WidgetConfig.messages.welcomeActions.actions.visibility.showIcon

Show icon

WidgetConfig.messages.welcomeActions.actions.visibility.showTooltip

Show tooltip on hover

WidgetConfig.messages.welcomeActions.actions.visibility.tooltipText

Custom tooltip text

WidgetConfig.messages.errorMessage

WidgetConfig.messages.offlineMessage

WidgetConfig.messages.sessionExpiredMessage

Message shown when session has expired due to inactivity

Default: "This conversation has ended due to inactivity. Please start a new conversation."

WidgetConfig.messages.typingIndicatorText

WidgetConfig.messages.loadingAnimation

Style of loading animation

WidgetConfig.messages.loadingAnimationColor

Color for loading animation

WidgetConfig.messages.links

Link styling configuration Applies to all links in markdown content across all message types

WidgetConfig.messages.links.color

Link text color (CSS color value)

"#0066cc""rgb(0, 102, 204)"

WidgetConfig.messages.links.hoverColor

Link hover state color (CSS color value) Defaults to the same color as `color` if not specified

"#0052a3"

WidgetConfig.messages.links.underline

Whether to underline links

Default: true

WidgetConfig.messages.links.openInNewTab

Whether links should open in a new tab

Default: true

WidgetConfig.messages.links.fontWeight

Font weight for link text Uses named presets that map to standard CSS font-weight values

Default: undefined (inherits from parent styles)

"bold""normal"

WidgetConfig.messages.links.fontSize

Font size for link text Uses named presets or custom CSS values

Default: undefined (inherits base font size)

"sm""16px""1.25rem"

WidgetConfig.messages.markdown

Markdown rendering configuration

WidgetConfig.messages.markdown.applyTypographySizes

Apply semantic typography sizes to markdown elements (headings, code) When true: h1 uses xl, h2 uses lg, h3 uses base, h4-h6 use sm, code uses sm When false: all elements inherit the bubble's fontSize configuration

Default: false

WidgetConfig.messages.autoscroll

Whether to automatically scroll to the bottom when new messages are added. Useful to disable on demo pages with multiple widgets to prevent unexpected scrolling.

Default: true

WidgetConfig.disclaimer

Disclaimer configuration

WidgetConfig.disclaimer.content

Markdown content for disclaimer

WidgetConfig.disclaimer.contentFormat

Format of disclaimer content

WidgetConfig.disclaimer.displayMode

Display mode for the disclaimer. - "footer": Fixed at bottom of widget (default, current behavior) - "modal": Blocking overlay requiring acceptance (when required: true) - "event": Scrollable event at top of message stream

Default: "footer"

WidgetConfig.disclaimer.collapsible

Footer mode options (existing)

WidgetConfig.disclaimer.defaultExpanded

Whether to start expanded (default: false)

WidgetConfig.disclaimer.backgroundColor

Background color for disclaimer section

WidgetConfig.disclaimer.textColor

Text color for disclaimer

WidgetConfig.disclaimer.borderColor

Border color

WidgetConfig.disclaimer.acceptButton

Show accept/acknowledge button

WidgetConfig.disclaimer.acceptButtonText

Custom text for accept button

WidgetConfig.disclaimer.required

When true, displays a blocking modal that requires acceptance before interaction. Acceptance is persisted per-experience in localStorage.

Default: false

WidgetConfig.disclaimer.requiredTitle

Title displayed at the top of the blocking modal. Only applies when required is true.

Default: "Disclaimer"

WidgetConfig.disclaimer.requiredAcceptButtonText

Text for the accept button in the blocking modal. Only applies when required is true.

Default: "I Accept"

WidgetConfig.disclaimer.eventRequiresAcceptance

When displayMode is "event" and this is true, input is disabled until the disclaimer is accepted. Similar to required modal but inline.

Default: false

WidgetConfig.branding

Branding configuration

WidgetConfig.branding.show

WidgetConfig.branding.text

WidgetConfig.branding.logoUrl

WidgetConfig.branding.position

WidgetConfig.features

Features configuration

WidgetConfig.features.voice

WidgetConfig.features.voice.enabled

Whether voice input feature is available (default: false)

WidgetConfig.features.voice.language

Language code (e.g., 'en-US', 'es-ES')

WidgetConfig.features.voice.continuous

Keep listening until stopped

WidgetConfig.features.voice.interimResults

Show results as user speaks

WidgetConfig.features.voice.maxAlternatives

Number of alternative transcriptions

WidgetConfig.features.tts

WidgetConfig.features.tts.enabled

Whether TTS feature is available

WidgetConfig.features.tts.defaultOn

Whether TTS is on by default

WidgetConfig.features.emoji

WidgetConfig.features.copyButton

WidgetConfig.features.copyButton.enabled

Required to enable the copy button

WidgetConfig.features.copyButton.position

Position relative to message (default: "inline")

WidgetConfig.features.copyButton.showLabel

Whether to show "Copy" text (default: true)

WidgetConfig.features.copyButton.showIcon

Whether to show icon (default: true)

WidgetConfig.features.copyButton.style

Button style (default: "default")

WidgetConfig.features.copyButton.size

Button size (default: "small")

WidgetConfig.features.copyButton.className

Custom styling

WidgetConfig.features.copyButton.iconColor

Custom icon color

WidgetConfig.features.copyButton.textColor

Custom text color

WidgetConfig.features.copyButton.backgroundColor

Custom background color

WidgetConfig.features.copyButton.hoverBackgroundColor

Custom hover background

WidgetConfig.features.copyButton.copyIcon

Custom icons (SVG strings or URLs)

WidgetConfig.features.copyButton.copiedIcon

Custom success icon

WidgetConfig.features.copyButton.copiedDuration

Behavior

WidgetConfig.features.copyButton.tooltipText

Custom tooltip text (default: "Copy message")

WidgetConfig.features.copyButton.copiedText

Custom success text (default: "Copied")

WidgetConfig.features.feedback

WidgetConfig.features.feedback.enabled

Whether feedback feature is enabled

WidgetConfig.features.feedback.position

Position of feedback buttons relative to message

WidgetConfig.features.feedback.style

Style of feedback buttons

WidgetConfig.features.feedback.showOnAssistantMessages

Whether to show feedback on assistant messages (default: true)

WidgetConfig.features.feedback.showOnAgentMessages

Whether to show feedback on agent messages (default: true)

WidgetConfig.features.feedback.requireComment

Whether to require a comment with negative feedback

WidgetConfig.features.feedback.commentPrompt

Custom prompt text for feedback comment

WidgetConfig.features.feedback.buttons

Visual customization

WidgetConfig.features.feedback.buttons.size

Button size

WidgetConfig.features.feedback.buttons.spacing

Spacing between buttons (CSS value)

WidgetConfig.features.feedback.buttons.showLabels

Whether to show text labels with icons

WidgetConfig.features.feedback.buttons.animation

Animation when hovering/clicking

WidgetConfig.features.feedback.buttons.positive

Colors for different states

WidgetConfig.features.feedback.buttons.positive.icon

Custom icon HTML/SVG or emoji (default: thumbs up)

WidgetConfig.features.feedback.buttons.positive.label

Custom label text (default: "Helpful")

WidgetConfig.features.feedback.buttons.positive.color

Icon/text color when not selected

WidgetConfig.features.feedback.buttons.positive.activeColor

Color when selected

WidgetConfig.features.feedback.buttons.positive.hoverColor

Color on hover

WidgetConfig.features.feedback.buttons.positive.backgroundColor

Background color when not selected

WidgetConfig.features.feedback.buttons.positive.activeBackgroundColor

Background when selected

WidgetConfig.features.feedback.buttons.negative

WidgetConfig.features.feedback.buttons.negative.icon

Custom icon HTML/SVG or emoji (default: thumbs down)

WidgetConfig.features.feedback.buttons.negative.label

Custom label text (default: "Not helpful")

WidgetConfig.features.feedback.buttons.negative.color

Icon/text color when not selected

WidgetConfig.features.feedback.buttons.negative.activeColor

Color when selected

WidgetConfig.features.feedback.buttons.negative.hoverColor

Color on hover

WidgetConfig.features.feedback.buttons.negative.backgroundColor

Background color when not selected

WidgetConfig.features.feedback.buttons.negative.activeBackgroundColor

Background when selected

WidgetConfig.features.feedback.buttons.starCount

For star rating style

WidgetConfig.features.feedback.buttons.starColor

Color of unselected stars

WidgetConfig.features.feedback.buttons.starActiveColor

Color of selected stars

WidgetConfig.features.feedback.buttons.emojis

For emoji style

WidgetConfig.features.feedback.behavior

Behavior customization

WidgetConfig.features.feedback.behavior.allowChange

Allow users to change their feedback (default: true)

WidgetConfig.features.feedback.behavior.showConfirmation

Show confirmation message after feedback (default: true)

WidgetConfig.features.feedback.behavior.confirmationMessage

Custom confirmation message

WidgetConfig.features.feedback.behavior.confirmationDuration

How long to show confirmation (ms)

WidgetConfig.features.feedback.behavior.persistFeedback

Remember feedback across sessions (default: false)

WidgetConfig.features.feedback.api

API customization

WidgetConfig.features.feedback.api.endpoint

Custom endpoint for feedback (defaults to /feedback)

WidgetConfig.features.feedback.api.includeContext

Include conversation context with feedback

WidgetConfig.features.feedback.api.additionalData

Additional data to send with feedback

WidgetConfig.features.format

WidgetConfig.features.clearConversation

Clear Conversation menu option configuration

WidgetConfig.features.clearConversation.enabled

Whether to show the "Clear Conversation" menu option

Default: true

WidgetConfig.features.clearConversation.label

Custom label text for the menu option

Default: "Clear Conversation"

WidgetConfig.events

Event rendering configuration

WidgetConfig.events.default

Default styling configuration for all events Can be overridden by individual event type configurations

WidgetConfig.events.default.fontSize

Font size for event text (preset or custom CSS value)

WidgetConfig.events.default.fontFamily

Font family for event text

WidgetConfig.events.default.fontStyle

Font style for event text (normal, italic, oblique)

WidgetConfig.events.default.textColor

Text color for event content

WidgetConfig.events.default.backgroundColor

Background color for event container

WidgetConfig.events.default.borderRadius

Border radius for event container

WidgetConfig.events.default.padding

Padding inside event container (CSS shorthand)

WidgetConfig.events.default.avatar

Default avatar styling for all events

WidgetConfig.events.default.avatar.enabled

Whether to show the avatar

Default: true

WidgetConfig.events.default.avatar.url

Avatar image URL If not provided, falls back to default avatar icon

"https://api.dicebear.com/7.x/avataaars/svg?seed=agent"

WidgetConfig.events.default.avatar.size

Avatar size Presets: "xs" (20px), "sm" (24px), "md" (32px), "lg" (40px), "xl" (48px) Or provide custom CSS value: "40px", "2.5rem", etc.

WidgetConfig.events.default.avatar.borderRadius

Avatar border radius Presets: "circle" (fully rounded), "rounded" (8px), "square" (0px) Or provide custom CSS value: "50%", "12px", etc.

WidgetConfig.events.default.avatar.border

Avatar border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.events.default.avatar.borderWidth

Avatar border width (granular)

"2px"

WidgetConfig.events.default.avatar.borderColor

Avatar border color (granular)

"#10b981"

WidgetConfig.events.default.avatar.borderStyle

Avatar border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.events.default.avatar.margin

Avatar margin (spacing around avatar)

Default: "0 12px 0 0" (message bubbles)

"0 12px 0 0"

WidgetConfig.events.sessionStart

WidgetConfig.events.sessionStart.fontSize

Font size for event text (preset or custom CSS value)

WidgetConfig.events.sessionStart.fontFamily

Font family for event text

WidgetConfig.events.sessionStart.fontStyle

Font style for event text (normal, italic, oblique)

WidgetConfig.events.sessionStart.textColor

Text color for event content

WidgetConfig.events.sessionStart.backgroundColor

Background color for event container

WidgetConfig.events.sessionStart.borderRadius

Border radius for event container

WidgetConfig.events.sessionStart.padding

Padding inside event container (CSS shorthand)

WidgetConfig.events.sessionStart.avatar

Default avatar styling for all events

WidgetConfig.events.sessionStart.avatar.enabled

Whether to show the avatar

Default: true

WidgetConfig.events.sessionStart.avatar.url

Avatar image URL If not provided, falls back to default avatar icon

"https://api.dicebear.com/7.x/avataaars/svg?seed=agent"

WidgetConfig.events.sessionStart.avatar.size

Avatar size Presets: "xs" (20px), "sm" (24px), "md" (32px), "lg" (40px), "xl" (48px) Or provide custom CSS value: "40px", "2.5rem", etc.

WidgetConfig.events.sessionStart.avatar.borderRadius

Avatar border radius Presets: "circle" (fully rounded), "rounded" (8px), "square" (0px) Or provide custom CSS value: "50%", "12px", etc.

WidgetConfig.events.sessionStart.avatar.border

Avatar border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.events.sessionStart.avatar.borderWidth

Avatar border width (granular)

"2px"

WidgetConfig.events.sessionStart.avatar.borderColor

Avatar border color (granular)

"#10b981"

WidgetConfig.events.sessionStart.avatar.borderStyle

Avatar border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.events.sessionStart.avatar.margin

Avatar margin (spacing around avatar)

Default: "0 12px 0 0" (message bubbles)

"0 12px 0 0"

WidgetConfig.events.sessionStart.enabled

Whether to show session start events (default: true)

WidgetConfig.events.sessionStart.showBadge

Whether to show the badge/pill indicator (default: true)

WidgetConfig.events.sessionStart.showTimestamp

Whether to show the timestamp (default: false)

WidgetConfig.events.sessionStart.layout

Layout mode (default: "vertical")

WidgetConfig.events.sessionStart.message

Custom message to display

WidgetConfig.events.sessionStart.messageFormat

Format of the message (default: "text")

WidgetConfig.events.sessionStart.badgeColor

Custom badge background color

WidgetConfig.events.sessionStart.badgeTextColor

Custom badge text color

WidgetConfig.events.sessionStart.badgeText

Custom badge text (default: "Session Started")

WidgetConfig.events.sessionStart.iconColor

Custom icon color

WidgetConfig.events.sessionEnd

WidgetConfig.events.sessionEnd.fontSize

Font size for event text (preset or custom CSS value)

WidgetConfig.events.sessionEnd.fontFamily

Font family for event text

WidgetConfig.events.sessionEnd.fontStyle

Font style for event text (normal, italic, oblique)

WidgetConfig.events.sessionEnd.textColor

Text color for event content

WidgetConfig.events.sessionEnd.backgroundColor

Background color for event container

WidgetConfig.events.sessionEnd.borderRadius

Border radius for event container

WidgetConfig.events.sessionEnd.padding

Padding inside event container (CSS shorthand)

WidgetConfig.events.sessionEnd.avatar

Default avatar styling for all events

WidgetConfig.events.sessionEnd.avatar.enabled

Whether to show the avatar

Default: true

WidgetConfig.events.sessionEnd.avatar.url

Avatar image URL If not provided, falls back to default avatar icon

"https://api.dicebear.com/7.x/avataaars/svg?seed=agent"

WidgetConfig.events.sessionEnd.avatar.size

Avatar size Presets: "xs" (20px), "sm" (24px), "md" (32px), "lg" (40px), "xl" (48px) Or provide custom CSS value: "40px", "2.5rem", etc.

WidgetConfig.events.sessionEnd.avatar.borderRadius

Avatar border radius Presets: "circle" (fully rounded), "rounded" (8px), "square" (0px) Or provide custom CSS value: "50%", "12px", etc.

WidgetConfig.events.sessionEnd.avatar.border

Avatar border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.events.sessionEnd.avatar.borderWidth

Avatar border width (granular)

"2px"

WidgetConfig.events.sessionEnd.avatar.borderColor

Avatar border color (granular)

"#10b981"

WidgetConfig.events.sessionEnd.avatar.borderStyle

Avatar border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.events.sessionEnd.avatar.margin

Avatar margin (spacing around avatar)

Default: "0 12px 0 0" (message bubbles)

"0 12px 0 0"

WidgetConfig.events.sessionEnd.enabled

Whether to show session end events (default: true)

WidgetConfig.events.sessionEnd.showBadge

Whether to show the badge/pill indicator (default: true)

WidgetConfig.events.sessionEnd.showTimestamp

Whether to show the timestamp (default: false)

WidgetConfig.events.sessionEnd.showDuration

Whether to show session duration (default: true)

WidgetConfig.events.sessionEnd.layout

Layout mode (default: "vertical")

WidgetConfig.events.sessionEnd.message

Custom message to display

WidgetConfig.events.sessionEnd.messageFormat

Format of the message (default: "text")

WidgetConfig.events.sessionEnd.badgeColor

Custom badge background color

WidgetConfig.events.sessionEnd.badgeTextColor

Custom badge text color

WidgetConfig.events.sessionEnd.iconColor

Custom icon color

WidgetConfig.events.agentHandover

WidgetConfig.events.agentHandover.fontSize

Font size for event text (preset or custom CSS value)

WidgetConfig.events.agentHandover.fontFamily

Font family for event text

WidgetConfig.events.agentHandover.fontStyle

Font style for event text (normal, italic, oblique)

WidgetConfig.events.agentHandover.textColor

Text color for event content

WidgetConfig.events.agentHandover.backgroundColor

Background color for event container

WidgetConfig.events.agentHandover.borderRadius

Border radius for event container

WidgetConfig.events.agentHandover.padding

Padding inside event container (CSS shorthand)

WidgetConfig.events.agentHandover.avatar

Avatar styling for agent handover events Overrides events.default.avatar if specified

WidgetConfig.events.agentHandover.avatar.enabled

Whether to show the avatar

Default: true

WidgetConfig.events.agentHandover.avatar.url

Avatar image URL If not provided, falls back to default avatar icon

"https://api.dicebear.com/7.x/avataaars/svg?seed=agent"

WidgetConfig.events.agentHandover.avatar.size

Avatar size Presets: "xs" (20px), "sm" (24px), "md" (32px), "lg" (40px), "xl" (48px) Or provide custom CSS value: "40px", "2.5rem", etc.

WidgetConfig.events.agentHandover.avatar.borderRadius

Avatar border radius Presets: "circle" (fully rounded), "rounded" (8px), "square" (0px) Or provide custom CSS value: "50%", "12px", etc.

WidgetConfig.events.agentHandover.avatar.border

Avatar border (shorthand)

"2px solid #e5e7eb"

WidgetConfig.events.agentHandover.avatar.borderWidth

Avatar border width (granular)

"2px"

WidgetConfig.events.agentHandover.avatar.borderColor

Avatar border color (granular)

"#10b981"

WidgetConfig.events.agentHandover.avatar.borderStyle

Avatar border style (granular)

"solid", "dashed", "dotted"

WidgetConfig.events.agentHandover.avatar.margin

Avatar margin (spacing around avatar)

Default: "0 12px 0 0" (message bubbles)

"0 12px 0 0"

WidgetConfig.events.agentHandover.enabled

Whether to show agent handover events (default: true)

WidgetConfig.events.agentHandover.showCard

Whether to show the card layout (default: true)

WidgetConfig.events.agentHandover.showAvatar

WidgetConfig.events.agentHandover.showTimestamp

Whether to show the timestamp (default: false)

WidgetConfig.events.agentHandover.layout

Layout mode (default: "vertical")

WidgetConfig.events.agentHandover.message

Custom message to display (overrides event message)

WidgetConfig.events.agentHandover.messageFormat

Format of the message (default: "text")

WidgetConfig.events.agentHandover.cardBackgroundColor

Custom card background color

WidgetConfig.events.agentHandover.cardBorderColor

Custom card border color

WidgetConfig.events.agentHandover.cardTextColor

Custom card text color

WidgetConfig.events.typing

WidgetConfig.events.typing.enabled

Whether to show typing indicators (default: true)

WidgetConfig.events.typing.text

Custom typing text (default: "{role} is typing")

WidgetConfig.events.system

WidgetConfig.events.system.enabled

Whether to show system messages (default: true)

WidgetConfig.events.system.showIcon

Whether to show icons (default: true)

WidgetConfig.events.disclaimer

WidgetConfig.events.disclaimer.enabled

Whether to show disclaimer events (default: true)

WidgetConfig.events.disclaimer.showIcon

Whether to show icon (default: true)

WidgetConfig.events.disclaimer.iconColor

Custom icon color

WidgetConfig.events.disclaimer.backgroundColor

Custom background color (use "transparent" or "none" to remove)

WidgetConfig.events.disclaimer.textColor

Custom text color

WidgetConfig.events.disclaimer.borderColor

Custom border color (use "transparent" or "none" to remove)

WidgetConfig.events.disclaimer.borderRadius

Custom border radius

WidgetConfig.events.disclaimer.padding

Custom padding

WidgetConfig.events.disclaimer.fontSize

Custom font size

WidgetConfig.events.disclaimer.acceptButtonBackgroundColor

Accept button styling

WidgetConfig.events.disclaimer.acceptButtonTextColor

Custom accept button text color

WidgetConfig.events.disclaimer.acceptButtonBorderRadius

Custom accept button border radius

WidgetConfig.events.disclaimer.acceptButtonPadding

Custom accept button padding

WidgetConfig.events.disclaimer.acceptButtonFontSize

Custom accept button font size

WidgetConfig.events.disclaimer.showAcknowledged

Acknowledged indicator styling

WidgetConfig.events.disclaimer.acknowledgedText

Custom text for acknowledged indicator (default: "Acknowledged")

WidgetConfig.events.disclaimer.acknowledgedTextColor

Custom color for acknowledged text

WidgetConfig.scrollbar

Scrollbar styling configuration for the message container. Allows customization of scrollbar appearance (width, colors, border-radius) and auto-hide behavior. When not provided, browser default scrollbar is used.

scrollbar: { width: "8px", thumbColor: "#888", trackColor: "#f1f1f1", autoHide: true }

WidgetConfig.scrollbar.width

Width of the scrollbar. Can be a pixel value (e.g., "8px") or "thin". Maps to custom scrollbar size across all browsers.

Default: Browser default

WidgetConfig.scrollbar.trackColor

Background color of the scrollbar track. Works consistently across all browsers.

Default: Browser default

WidgetConfig.scrollbar.thumbColor

Color of the scrollbar thumb. Works consistently across all browsers.

Default: Browser default

WidgetConfig.scrollbar.thumbHoverColor

Color of the scrollbar thumb on hover. Works consistently across all browsers.

Default: thumbColor or browser default

WidgetConfig.scrollbar.borderRadius

Border radius of the scrollbar thumb and track. Works consistently across all browsers.

Default: Browser default

WidgetConfig.scrollbar.autoHide

Enable auto-hide scrollbar behavior. When enabled, scrollbar automatically hides after a period of inactivity and reappears on scroll or hover. Works consistently across all browsers via JavaScript implementation.

Default: false

WidgetConfig.scrollbar.autoHideDelay

Delay in milliseconds before auto-hiding the scrollbar. Only applies when autoHide is enabled.

Default: 1000

WidgetConfig.advanced

Advanced settings

WidgetConfig.advanced.widgetId

WidgetConfig.advanced.userId

Optional user identifier to associate with the session. Accepts flexible formats: UUID, email address, numeric ID, or custom string (max 255 characters). Normalized to lowercase for storage and comparison.

"user

WidgetConfig.advanced.sessionId

Optional session ID to initialize the widget with an existing session. Must be a valid UUID v4 format. Use this to resume a session across page reloads or coordinate multiple widgets.

"550e8400-e29b-41d4-a716-446655440000"

WidgetConfig.advanced.metadata

WidgetConfig.advanced.headers

Custom HTTP headers to include in all API requests. These headers are passed through to the backend API endpoints (query, feedback, TTS synthesis). Built-in headers (Content-Type, Authorization) cannot be overridden. If you provide headers with these names, the built-in values will take precedence. Use cases: - Passing correlation IDs for distributed tracing - Including custom authentication tokens for proxy infrastructure - Adding customer-specific identifiers

headers: { "X-Correlation-ID": "abc-123", "X-Customer-ID": "customer-456" }

WidgetConfig.advanced.credentials

Credentials mode for fetch API requests. Controls whether cookies and HTTP authentication are sent with cross-origin requests. - "omit": Never send credentials - "same-origin": Only send credentials for same-origin requests (browser default) - "include": Always send credentials, including cross-origin When using "include", the server must respond with: - `Access-Control-Allow-Credentials: true` - `Access-Control-Allow-Origin` set to a specific origin (not `*`)

Default: undefined (browser default: "same-origin")

advanced: { credentials: "include", // Send cookies with cross-origin requests }

WidgetConfig.advanced.readOnly

WidgetConfig.advanced.readOnlyIndicator

Configuration for the readonly mode indicator badge. Used both for initial config and runtime updates via setReadOnly().

WidgetConfig.advanced.readOnlyIndicator.show

Whether to show the indicator badge. Default: false

WidgetConfig.advanced.readOnlyIndicator.text

Text to display in the indicator. Default: "Unavailable"

WidgetConfig.advanced.readOnlyIndicator.backgroundColor

Background color of the indicator badge

WidgetConfig.advanced.readOnlyIndicator.textColor

Text color of the indicator badge

WidgetConfig.advanced.initialEvents

WidgetConfig.advanced.persistStore

Whether to persist the store across widget instances. When true (the default), the store is managed as a singleton by the ChatStoreManager, meaning multiple widget instances with the same experienceId share state and conversation history persists across page navigations. When false, a new isolated store is created for each widget instance. The store is not shared and is reset when the widget is destroyed. Set to false when: - Running tests that need isolated widget state - Multiple independent widgets on the same page need separate conversations - Privacy requirements prevent any state persistence - Building demo/preview widgets where state should not persist Note: When persistStore is false, the disableTabSync option has no effect because isolated stores do not use the tab synchronization infrastructure.

Default: true (undefined is treated as true)

WidgetConfig.advanced.storeKey

Custom key for the persistent store. When using persistent stores, this key identifies the store instance. Useful when you need multiple distinct persistent stores.

Default: experienceId

WidgetConfig.advanced.maxStoredEvents

Maximum number of chat events to store in localStorage for cross-tab synchronization and session persistence. Older events are automatically pruned when this limit is exceeded.

Default: 500

WidgetConfig.advanced.messageInterceptor

Message interceptor function for custom routing Called before each message is sent to Nexus backend

WidgetConfig.advanced.interceptorTimeout

Timeout for message interceptor in milliseconds

Default: 30000 (30 seconds)

WidgetConfig.advanced.messageTimeout

Timeout for all message operations (including backend requests) in milliseconds

Default: 60000 (60 seconds)

WidgetConfig.advanced.customProtocolHandlers

Custom handlers for links with custom protocols in AI responses. ## Supported Protocols Any protocol not in the standard list (http:, https:, mailto:, tel:) is treated as a custom protocol and will: 1. Have navigation prevented (won't open about:blank) 2. Emit a `linkClick` event with parsed protocol and params 3. Invoke the matching handler if registered ## Markdown Syntax AI responses can include action links: ```markdown [Speak to an Agent](action:escalate-to-agent) [Contact Support](livechat:department=billing&priority=high) [Show tutorial](walkme:flowId=12345) ``` ## Parameter Parsing - Key-value: `protocol:key=value&key2=value2` -> `{ key: "value", key2: "value2" }` - Simple value: `protocol:value` -> `{ value: "value" }`

advanced: { customProtocolHandlers: { // Live agent escalation "action:": (params, event) => { if (params.value === "escalate-to-agent") { myLiveAgentSDK.escalate({ sessionId: event.sessionId, context: "user-requested" }); } }, // Parameterized live chat "livechat:": (params, event) => { myLiveAgentSDK.open({ department: params.department, priority: params.priority || "normal" }); }, // WalkMe integration "walkme:": (params) => { if (window.WalkMeAPI && params.flowId) { window.WalkMeAPI.startFlowById(parseInt(params.flowId)); } } } }

WidgetConfig.advanced.analytics

Analytics configuration for tracking user interactions.

WidgetConfig.advanced.analytics.trackLinkClicks

Track link clicks in AI responses. When enabled, link click events are sent to the backend for analytics. Enabled by default - set to false to disable.

Default: true