Human Handoff
Human handoff moves a conversation from the AI agent to a person on your team. It isn't a separate ticketing system bolted on top — it's a status field on the conversation itself (handoff_status), and your team's Inbox, the AI's own behavior, and the SLA tracker all read from that one field. A conversation moves through up to six states over its lifecycle, and which channel it's on — website widget, WhatsApp, Messenger, Instagram, or a Zoho Desk ticket — changes what can trigger a handoff and where your team actually sees it.
The handoff lifecycle
AI Active — the default state
handoff_status is ai_active (or null on older rows, treated the same way). The AI answers on its own — nothing has asked for a person yet.Something triggers a handoff
human_requested or waiting_for_agent — either way, the AI stops replying and it sits in the queue until someone claims it. See Escalation Rules for the actual list of triggers.An agent claims it → Human Active
handoff_status becomes human_active, assigned_user_id is set to that agent, and handoff_assigned_at is recorded.Agent resolves it
handoff_status becomes resolved and handoff_resolved_at is recorded. Nothing else happens automatically — the conversation just stays resolved and the AI does not pick it back up on its own.AI Resumed — optional, agent-initiated
human_active or resolved, an agent can click Resume AI. handoff_status becomes ai_resumed and the conversation's status flips back to active, so the AI answers again the next time the visitor writes in.| Status | handoff_status value | What it means |
|---|---|---|
| AI Active | ai_active | Default. The AI is answering; this is also the state after Resume AI. |
| Human Requested | human_requested | A keyword, an AI decision, or the Zoho Desk phrase-match triggered a handoff. Not yet claimed. |
| Waiting for Agent | waiting_for_agent | A Zoho Desk support ticket was created for this conversation before it had been marked as handed off. Not yet claimed. |
| Human Active | human_active | An agent has claimed the conversation and is replying directly. |
| Resolved | resolved | An agent marked the conversation resolved. |
| AI Resumed | ai_resumed | An agent handed the conversation back to the AI. |
What actually triggers a handoff
Four separate mechanisms can start a handoff, and which ones are active depends on the channel. Website widget conversations rely on a configured AI Action; WhatsApp, Messenger and Instagram also carry a built-in trigger that needs no configuration at all.
- •A visitor's message matches the Trigger keywords on a Human Handoff AI Action, or the AI itself decides to fire that action mid-reply (website widget only).
- •The built-in "can't answer / visitor asked for a person" signal that every WhatsApp, Messenger and Instagram conversation carries automatically.
- •A Zoho Desk integration set to trigger on "Customer requests a human" wording.
- •A Zoho Desk support ticket being created for the conversation, for any reason.
What the agent sees when they take over
- •The full message transcript — AI replies, the visitor's messages, and any previous agent replies, including WhatsApp voice-note transcriptions and images.
- •Contact details captured so far: name, phone, email, detected language.
- •A linked Zoho CRM record's owner, stage, status and notes, if the lead has synced to Zoho CRM.
handoff_summary column, but nothing populates it. Agents read the transcript directly. See Conversation Context for the full picture.Where handoff actually happens, per channel
/inbox — the only page with SLA badges and cross-conversation sorting by breach. Email, Instagram and Messenger each have their own inbox tab inside that channel's page under Chatbot → Deploy, with the same Claim / Resolve / Resume AI buttons but no dedicated SLA-focused view. The website widget itself has no inbox — handing off there just means an AI Action fires, or a Zoho Desk ticket gets created.Configuring it
There's no single Human Handoff settings page. What you configure depends on the channel — see Configuration for the specifics of each one.
Was this page helpful?
