Skip to Content
CraftBot Docs v1 — internal preview
Inbox & ConversationsConversation states

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

StatusMeaning
botA bot recipe is currently driving the conversation. No human agent is engaged. Appears in the Bot view for supervisors.
openA human conversation. Either assigned to an agent, or unassigned and waiting in the team queue.
pendingOpen but parked — a flow node entered a wait state, or an agent set the conversation to “waiting on user”.
resolvedThe agent closed the chat (or a Close node fired). Hidden from the active inbox tabs; visible under Resolved.
closedSame 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-stateWhenVisual
Waiting on userThe 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 meThe 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.

Conversation list with state and department tags on each card

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

  • botopen — 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.
  • openpending — agent picked “Set waiting on user” / “Set waiting on me” from the Close Chat menu, or a flow node entered an explicit wait.
  • pendingopen — the wait completes (customer replies, or the wait timer fires).
  • openresolved — 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.

Last updated on