Skip to content

← All notes

What shipping an AI ticket system taught me about human handoff

· 6 min read


The multi-agent architecture was the part everyone expected to be hard: classifying tickets, routing them, resolving the ones a machine can resolve. It mostly worked the way the diagrams said it would. The part nobody had a diagram for was the moment a conversation needs to move from the machine to a person.

Handoff is a product decision, not an error state

Early on, we treated escalation as a failure branch — the thing that happens when the agent gives up. That framing produces a bad system: it hands off too late, after the customer has already repeated themselves twice. The fix was treating handoff as a first-class outcome, with its own success criteria: did the person receive the full context, and did the customer have to say anything twice?

A good handoff is invisible to the customer and effortless for the agent receiving it. Everything else is implementation detail.

Voice makes all of it harder

In a ticket queue, a handoff can take a minute and nobody notices. On a live call, the machine has to decide mid-sentence whether to keep talking — and a wrong decision is audible. The thresholds that worked for text were useless for voice. We ended up with separate, more conservative escalation logic for calls, and the willingness to hand off early turned out to be what made people trust the automated path at all.

The lesson I’d carry to any customer-facing AI system: measure the handoffs as carefully as the resolutions. The resolutions are what the demo shows; the handoffs are what the customers remember.