Human handoff & phone takeover
When a visitor asks for a person, raises an always-human topic, or the agent can't help, the conversation goes to the team inbox. A push reaches every online member with access to the project, and the first to tap Assign to me takes it.
What triggers a handoff#
- The visitor explicitly asks for a person.
- The question matches one of the project's always-human topics, such as security, enterprise pricing or billing problems.
- Retrieval confidence is too low to answer.
- A hot-lead signal, when
hot_lead_handoffis on.
The team inbox#
The inbox lists open conversations per project with their status (AI, waiting, claimed, closed) and a wait timer. On claim, the teammate sees the transcript, an AI summary, the lead fields and any screenshots, then replies live over WebSocket.
- Assign to me: the first claim wins, and everyone else sees it taken.
- Hand back to AI is a button. The AI can also resume after N minutes of silence (off by default).
- Reassign with a note to a teammate who has access to the project, plus internal notes the visitor never sees.
- Saved replies and AI-suggested drafts for the person answering.
Phone takeover with PWA + push#
The inbox installs as a Progressive Web App. Firebase Cloud Messaging delivers handoff pushes to every online member with project access, and tapping the push opens the conversation, ready to claim. Delivery is tracked per device and failures show in admin, not only in logs.
Honest when nobody is around#
If nobody claims the conversation within unclaimed_after_minutes (5 by default), the agent tells the visitor, asks for an email if it doesn't have one, and the conversation goes to the review queue. The visitor is never told someone is coming unless a handoff was actually requested.