Configuration

Hosted app configuration is the published settings the embed loads with a publishable key. Chat is embed-only. There are no public chat URLs. Message bodies are never part of configuration and must not be sent through MCP.

Local / BYO vs hosted config

  • Local / BYO adapter: you can pass optional config props or rely on widget defaults.
  • Hosted config: create an app, edit a draft, publish a revision, then pass appId + publishable key. BYO plans still use hosted config for toggles while messages stay on your backend.

What the client loads

Published config includes app id, name, revision, and:

  • allowDirect
  • allowGroups
  • allowAttachments
  • allowMemberManage
  • requireAuthorToken (default false)
  • emptyState (empty inbox only; search misses have their own copy)
  • allowedOrigins (default * for first run; set exact origins for live)
  • branding (optional title, primaryColor, logoUrl)

Body max 4,000 and groups max 20 are package limits, not free-form config strings. See limits.

Draft, publish, fetch

Edit drafts in the dashboard or via secret-key / MCP APIs, then publish. Live clients keep the last published revision until you publish again. See Configuration revisions.

Live bsw_live_pub_ config fetch needs BYO ($9.99) or Hosted ($19.99). Publishing alone does not grant live entitlements.

Branding

Optional branding.title can override the heading the widget shows. primaryColor sets the accent. When it is set, it writes --bsw-ch-accent inline and overrides the theme accent. Optional logoUrl renders beside the title when present in published config.

Theme

Visual theme is a component prop, not a published app field. theme is "light" | "dark". Omit it and the inbox stays the light cream default, with no data-theme attribute. v1 does not follow prefers-color-scheme or the system theme. theme="dark" sets data-theme="dark".

Hosts may set these CSS custom properties on the embed root (.bsw-ch): --bsw-ch-bg, --bsw-ch-panel, --bsw-ch-fg, --bsw-ch-muted, --bsw-ch-line, --bsw-ch-accent, --bsw-ch-accent-fg, --bsw-ch-radius. These overrides are the supported API. Do not fight .bsw-* classes. With theme="dark", target .bsw-ch[data-theme="dark"] so your values win over the dark defaults. Launcher offsets --bsw-ch-launcher-right and --bsw-ch-launcher-bottom are layout, not skin.

Related: Revisions · Apps · Origins · React component · API overview