DEV Community

Volanea
Volanea

Posted on

Letting a human take over a thread an agent started

The worst support experience is an agent replying over a human, or a human replying while the agent is mid-draft. Both happen because nothing in the system owns the conversation at any given moment.

Ownership is a state machine

A conversation is agent-owned, human-owned, or paused. Only one actor may send at a time. A takeover is an explicit transition with a timestamp and an operator id, not a flag somebody toggles in an admin panel while the agent is already generating.

Check ownership immediately before sending

Optimistic concurrency: read the owner, compose, then send only if the owner is still the same. If a human claimed the thread while the agent was writing, discard the draft instead of sending it. This one check removes the double-reply failure entirely.

Hand back deliberately

When the human is done, the handback should re-arm the agent with context — the messages sent while it was paused — otherwise the agent answers the customer's first message again with stale assumptions.

The detail worth copying

Write a timeline entry for every ownership change. When a customer complains about a contradictory answer, the timeline shows who said what and when, which is the difference between a fix and an argument.

Volanea stores per-inbox thread state server side, so ownership is a fact both the agent and the human read before sending.

Top comments (0)