Skip to main content
An overview of the visitor-facing features built into the chat widget. For features covered in depth elsewhere, this page links out rather than repeating them: live agent takeover is in Human Handoff, the in-widget help center is in Help Center, meeting scheduling is in Meeting Booking, and AI-triggered actions are in Custom AI Actions.

File attachments

Visitors can attach a file to a message using the paperclip button in the composer. Limits:
  • Max size: 10 MB per file
  • Allowed types: images (PNG, JPG, GIF, WebP), PDF, TXT, CSV, and ZIP/Office documents
Uploaded files are validated by content (magic bytes), not just file extension. Each workspace has a daily upload budget to cap total storage growth from unauthenticated visitor uploads.

CSAT rating

When a conversation closes and the visitor engaged with it, a satisfaction-rating card appears: five emoji ratings (1–5) plus an optional comment. The rating is sent as soon as the visitor picks it, so an abandoned comment still counts.

Email transcript

Once a conversation is closed, visitors see an “Email me a transcript” button. Clicking it opens an inline email field; submitting sends the full conversation transcript to that address.

Conversation history

Returning visitors can open a history view listing their past conversations with the workspace, including a “closed” badge for finished ones. Selecting one restores it as the active conversation (read-only if it’s closed); a “Start new” option begins a fresh conversation.

Message reactions

Visitors can react to individual assistant messages with a thumbs up or thumbs down, optionally adding a comment.

Emoji picker

The composer includes a zero-dependency emoji picker: a search box, a curated category grid, and a “recently used” tab backed by localStorage. Selecting an emoji inserts it at the caret and returns focus to the composer.

Message delivery status

Sent messages show a delivery indicator: sending, sent, delivered, or failed (with a retry option on failure).

Typing indicators

The widget shows a typing indicator both when the AI is composing a response and when a live agent is typing during a human handoff.

Notifications and mute

When the widget is minimized or the visitor’s tab isn’t focused, new messages trigger:
  • An unread badge on the launcher bubble (capped at “9+”)
  • A browser tab title flash (“(New message) …”) that stops once the visitor returns
  • An optional notification sound, workspace-configurable, with a 3-second cooldown between plays
Visitors can mute the sound with a speaker toggle, shown only when the workspace has sound notifications enabled. The mute preference persists per widget.

Dark mode

The widget can follow the visitor’s OS-level color scheme (prefers-color-scheme) or be forced to a fixed light/dark theme — see Customization.

Fullscreen

If enabled for the workspace, visitors can expand the widget to a fullscreen panel using a maximize button in the header. The expanded state persists across a page session and traps keyboard focus (Tab) inside the panel while active; Escape exits fullscreen before minimizing the widget.

Languages

The widget ships with 15 locales: Arabic, German, English, Spanish, French, Hindi, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, Russian, Turkish, and Simplified Chinese. Arabic renders right-to-left automatically.
Non-English widget UI translations are a Pro plan feature — Free-plan workspaces always show the English widget regardless of visitor locale. See Billing & Plans.

Accessibility

The widget uses an aria-live region to announce new messages, handoff state changes, and typing status to screen readers. Interactive controls (mute toggle, maximize/minimize, dismiss buttons, emoji picker) carry aria-label/aria-pressed attributes, and the emoji picker and fullscreen panel support full keyboard navigation.