Inbox
Real-time conversation management — view, reply, assign, and collaborate on customer conversations.
Overview
The Inbox is the primary workspace for agents. It shows all active and recent conversations across your workspace, with real-time updates powered by SignalR. When a visitor sends a message, it appears instantly in the inbox — no polling, no refresh required.
Conversation Tabs
The inbox is organized into three tabs that filter conversations by assignment status:
| Tab | Shows |
|---|---|
| All | Every open conversation in the workspace, regardless of assignment. Useful for supervisors and small teams. |
| Mine | Only conversations assigned to you. This is the default view for agents handling their queue. |
| Unassigned | Conversations that haven't been claimed by any agent. New conversations from visitors land here until an agent picks them up. |
Live Updates
The inbox uses a persistent SignalR connection to receive events in real-time. The following events update the UI instantly:
- New message: The conversation moves to the top of the list, the preview text updates, and an unread indicator appears.
- New conversation: Appears in the Unassigned tab immediately.
- Assignment change: Conversations move between tabs as they're assigned or unassigned.
- Status change: When a conversation is resolved or reopened, the list refreshes.
- Presence: The online/offline dot next to visitor names reflects their current connection status.
Conversation Selection
Click any conversation in the list to open it in the main panel. The layout is split: the conversation list on the left (resizable), the message thread in the center, and a details sidebar on the right showing visitor info, identity data, and conversation metadata.
Keyboard shortcuts for power users:
↑/↓— Navigate between conversationsEnter— Open selected conversationEscape— Deselect / close details panel
Message Thread
The message thread shows the full history of a conversation in chronological order. Messages include:
- Visitor messages: Shown on the left with a gray bubble.
- Agent replies: Shown on the right with a colored bubble (using your primary brand color).
- System events: Assignment changes, status transitions, and ticket links shown as centered, muted text.
- Timestamps: Relative time on each message, with exact datetime on hover.
Messages are paginated — scroll up to load older messages. The widget supports text messages with basic formatting (links are auto-detected and made clickable).
Replying
The reply composer sits below the message thread. Type your message and press Enter to send (or Shift+Enter for a new line). Replies are delivered to the visitor in real-time via the widget.
Features of the composer:
- Canned responses: Type
/to trigger the shortcut menu. Select a canned response to insert it. See Settings for how to manage canned responses. - Auto-resize: The input grows vertically as you type longer messages.
- Send on Enter: Configurable — some teams prefer Ctrl+Enter for send.
Internal Notes
Switch to the "Note" tab in the composer to leave internal notes that are only visible to agents. Notes are useful for:
- Documenting context for a handoff to another agent.
- Recording troubleshooting steps taken.
- Flagging conversations for follow-up.
Internal notes appear in the message thread with a distinct yellow background and a "Note" label. They are never visible to the visitor in the widget.
Typing Indicators
When a visitor is typing in the widget, agents see a real-time typing indicator ("Visitor is typing...") below the message thread. Similarly, when an agent is composing a reply, the visitor sees a typing indicator in the widget.
Technical details:
- Typing events are debounced — sent at most once every 3 seconds while keys are pressed.
- The indicator auto-dismisses after 5 seconds of inactivity (no new typing events).
- Typing indicators are transmitted over SignalR and are not persisted.
Conversation Actions
From the conversation view, agents can:
- Assign: Claim the conversation for yourself, or assign it to another agent.
- Resolve: Mark the conversation as resolved. This removes it from the active inbox and records a
resolved_attimestamp. - Convert to ticket: Create a formal ticket from the conversation for tracking purposes. See Tickets.
- View visitor details: The right sidebar shows identity info (if verified), browser, OS, current page URL, and conversation history.