Skip to content

Handoff Inbox

The Handoff Inbox is where human agents pick up conversations that were escalated from the chatbot — either because the contact selected a Handoff node in a Conversation Menu, because a Conversation Flow’s escalation branch was hit, or because the dispatcher could not resolve the contact’s request. The inbox updates in real time over Server-Sent Events.

Handoff Inbox showing rows for each session with phone, assigned agent, time elapsed and last-message preview, plus the Me / Unassigned / All filter chips

  • Route: /communications/handoff-inbox
  • Menu Path: Communications → Handoff Inbox
  • Primary audience: Support agents and managers responding to escalated conversations.
PermissionDescription
communications.handoff_inbox (Read)View the inbox and open a session detail
communications.handoff_inbox (Write)Claim, reply to and resolve sessions
ColumnDefault VisibleDescription
Phone / ContactYesPhone number of the contact and the matched Business Partner if any
Assigned AgentYesThe agent that has claimed the session, or “Unassigned”
Time Since EscalationYesHow long the session has been waiting in the inbox
Last Message PreviewYesThe most recent message in the conversation
ChipDescription
MeSessions where the assigned agent is you
UnassignedSessions that nobody has claimed yet
AllEvery session currently in the inbox

Sessions surface in the inbox in the WITH_AGENT state. Other states (such as RESOLVED or EXPIRED) are filtered out of the inbox view and visible on the Active Sessions admin page.

ActionDescriptionAvailability
ViewOpen the session detail page with the full transcript and reply formAlways
ClaimAssign the session to yourselfAvailable on Unassigned rows
ActionDescription
ReplySend a WhatsApp message to the contact from the active session
ResolveMark the session as resolved and close it. The contact can re-engage to start a new session.

The detail page subscribes to a Server-Sent Events stream so new contact messages appear in the transcript in real time without a manual refresh.

graph LR
    CONTACT[Contact sends WhatsApp message] --> COMM[Communications dispatcher]
    COMM --> SSE[SSE stream]
    SSE --> AGENT[Agent's open inbox / detail page]
    AGENT -->|Reply| COMM
    COMM -->|Outbound WhatsApp| CONTACT

The inbox listing and the open session detail both subscribe to the dispatcher’s event stream. New escalations appear at the top of the inbox without reload; the open detail page shows the contact’s new message immediately.

  • A session can only be claimed by one agent at a time. A second agent who tries to claim an already-claimed session sees an inline error and the row is refreshed to show the current assignment.
  • Resolving a session is final — re-engaging the contact creates a new session.
  • A session that times out without a reply transitions automatically to EXPIRED and drops out of the inbox.
  • The reply form sends through the same WhatsApp account that received the original message; agents do not choose a sender.
  1. Open Communications → Handoff Inbox.
  2. Filter by Unassigned to see sessions waiting for an agent.
  3. Click Claim on a row to assign it to yourself, then View to open the detail page.
  4. Read the transcript, type a reply and send. Use Resolve when the contact’s issue is handled.
  • Active Sessions — admin view of every non-terminal session, including ones that are not yet in the handoff inbox
  • Conversation Logs — historical view of every conversation, including resolved sessions
  • Conversation Menus — configure which Handoff nodes route contacts to this inbox