Embeddable widgets
Put your AI support and feedback collection on any website with two tiny, zero-dependency scripts - one line each, sandboxed in a shadow DOM.
Your support doesn't have to stop at the login screen. Three small embeddable
scripts bring it to your own website: an AI chat widget, a
feedback widget, and an inline contact form. Each
is a single <script> tag, has zero runtime dependencies, and renders inside
a shadow DOM so your site's styles stay untouched.
AI chat widget (widget.js)
A lightweight chat bubble that brings your workspace's AI to anonymous
visitors. Copy the snippet from Admin → Chat widget and paste it before the
closing </body> on any page:
<script src="https://<your-app-host>/widget.js" data-key="pk_…" async></script>Optional attributes:
| Attribute | Purpose |
|---|---|
data-color | Accent color of the bubble and header. |
data-api-base | Backend base URL (defaults to the script's origin + /api/v1). |
data-agui-base | Chat (AG-UI) base URL fallback. |
What visitors get:
- Knowledge-grounded answers from your published knowledge base and active announcements.
- Ticket creation - if enabled, a visitor can file a case, optionally after leaving an email address, and gets a public tracking link to follow it.
- A deliberately restricted toolset: widget visitors can never look up anyone's cases.
Cases filed through the widget land in the normal agent queues, tagged with the widget channel and the visitor's email, and are subject to auto-triage and SLA policies like any other case.
The widget is locked down by design: an origin allow-list (only the domains you list can load it), a rotating public key, short-lived guest sessions, and rate limiting. Configure allowed origins, theme color, welcome message, and whether visitors may create cases under Admin → Chat widget.
Feedback widget (feedback-widget.js)
A second one-line script collects star-and-comment reviews from any website. Copy it from Feedback → Settings:
<script src="https://<your-app-host>/feedback-widget.js" data-fb-key="pk_fb_…" async></script>Optional attributes:
| Attribute | Purpose |
|---|---|
data-color | Accent color (default #2563eb). |
data-position | br (bottom-right, default) or bl (bottom-left). |
data-api-base | Backend base URL (defaults to the script's origin + /api/v1). |
Reviews collected through the widget flow into the same Feedback inbox and the same AI improvement report as in-app feedback. The public submission is protected by a honeypot field and rate limiting.
Public knowledge base & ticket tracking
Two more opt-in public surfaces round out the on-site experience:
- Public knowledge base - expose your published articles read-only at
/kb/<key>, so the chat widget can link anonymous visitors straight to a full article. Toggle it under Admin → Chat widget. - Guest ticket tracking - a case filed by a guest gets an unguessable
tracking link (
/track/<token>) showing its status and public replies; when the visitor left an email, the link is emailed to them automatically.
Good to know
- Tiny & self-contained. Each script is roughly 5 kB gzipped with no dependencies and no iframe of someone else's brand.
- Style-safe. Everything renders inside a shadow root, so host-page CSS can't leak in or out.
- One queue. Conversations and reviews from your site land in the same workspace as everything else - no separate silo to manage.
Who can do what
| Action | Member | Agent | Admin | Owner |
|---|---|---|---|---|
| Configure the chat widget (origins, key, behavior) | ✗ | ✗ | ✓ | ✓ |
| Configure the feedback widget & public link | ✗ | ✗ | ✓ | ✓ |
| Use the widgets (as a website visitor) | - | - | - | - |
Feedback & reviews
Collect star-and-comment reviews from a public link, the embeddable widget, signed-in members, or pasted-in Google reviews - then let the AI keep a running "key improvements" report up to date.
Contact forms & leads
Build lead-capture forms with a custom field editor, embed them inline on any page, and work the submissions in a dedicated leads inbox.