Skip to content
mango·agentby Mangosteen Studio
Feature · Built

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.

Any teammate can claim a live chat from their phone. Walkthrough: Answer visitors from your phone

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_handoff is on.
Play the flow: visitor on the left, a teammate's phone on the right.

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.

The handoff sequence, step by step.

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.