Hand off to a human

The assistant recognises it should stop, marks the conversation for a person, and your team picks it up from the dashboard.

Goal

“I want to talk to a person” (or repeated failures) → the model calls handoff { reason } → handoff.started → the assistant stops answering; the conversation shows handoff in the dashboard.

Pieces

  • Agent → Behaviour: Hand off to Kletso inbox (anything but Never enables the tool), Hand off when request, frustration, payment_issue, low_confidence.
  • Prompt: the built-in guidance already tells the model to hand off on request; add domain rules (“hand off for refunds above ₹10,000”).
  • Dashboard → Conversations: filter status Handoff.

What happens

  1. The model calls handoff. The runtime sets the conversation status to handoff, emits handoff.started { target: "inbox" } and conversation.updated, and posts the model’s closing text.
  2. Further user messages are recorded but no agent turn runs.
  3. Your team reads the transcript and context in the conversation inspector.

Verify

  • Preview “talk to a human” → handoff.started in the inspector; the status chip turns to handoff.
  • Send another message → it appears as a user message with no reply.

Current limits

  • Handing the conversation back to the assistant, and Slack or Teams destinations, are planned. Today the practical pattern is: your team answers through your own channel, and the user starts a new conversation for the assistant.

Last updated 2026-09-28 · Report an issue with this page