Conversation states
Every conversation has a primary status and, while open, a sub-state chip in the thread header that tells the agent who the ball is with.
Primary statuses
| Status | Meaning |
|---|---|
bot | A bot recipe is currently driving the conversation. No human agent is engaged. Appears in the Bot view for supervisors. |
open | A human conversation. Either assigned to an agent, or unassigned and waiting in the team queue. |
pending | Open but parked — a flow node entered a wait state, or an agent set the conversation to “waiting on user”. |
resolved | The agent closed the chat (or a Close node fired). Hidden from the active inbox tabs; visible under Resolved. |
closed | Same lifecycle endpoint as resolved — produced by force-close actions from supervisors and by bot-driven termination. Resolved and Closed share the Resolved sub-tab and the agent-side “this conversation is closed” footer. |
The Bot view sub-tabs also expose abandoned — used when the bot session timed out or never reached a terminal node.
resolved and closed conversations remain searchable in Contacts and in historical analytics, and the customer can re-open them by sending a new inbound message (a new conversation row is created).
Sub-states (open chats)
While a conversation is in open or pending status, the thread header shows one of two sub-state chips, derived from the message history:
| Sub-state | When | Visual |
|---|---|---|
| Waiting on user | The agent (or the bot) sent the last message; the ball is with the customer. | Blue chip on the right side of the thread header. |
| Waiting on me | The customer sent the last message; an agent needs to reply. | Red chip on the right side of the thread header. |
The sub-state is derived live from the message stream — it is not stored as a column. Setting the state manually (via the Close Chat split-button menu) posts a system event that flips the indicator.

Status pill in the thread header
When a conversation is open in the middle pane, a coloured status pill sits at the far left of the header strip:
- Active conversation — green pill with a pulsing dot. The default for an agent-handled conversation.
- Bot handling — azure pill. A bot recipe owns the conversation.
- In queue — gold pill, pulsing dot. Unassigned and waiting to be picked.
- Pending — gold pill, no pulse. Parked.
- Closed — grey pill. Composer is replaced by a “This conversation is resolved / closed. Reopen to continue messaging.” banner.
How statuses change
bot→open— a Transfer node fires, or a supervisor uses Force Transfer on a bot-handled chat. Lands in the configured team queue or with a specific agent.open→pending— agent picked “Set waiting on user” / “Set waiting on me” from the Close Chat menu, or a flow node entered an explicit wait.pending→open— the wait completes (customer replies, or the wait timer fires).open→resolved— agent clicked Close Chat, or a supervisor used Force Close. A Close node in a bot recipe also lands here.
SLA timers
Each team has configurable first-response and resolution SLA windows (see Admin → SLA rules). Conversations within the warning window get an orange tint; breaches get a red border on the conversation card, an Overdue tag, and float to the top of the list. Supervisors can filter on SLA breach in the supervisor dashboard.