> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vorel.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Routing and escalation

> When the agent hands off, who gets told, where the alert goes, and how it stops paging once someone answers.

An escalation is the agent deciding a human should take this. Routing decides which human, and
alerting decides how they find out.

## When the agent hands off

Handoff fires on:

* **Rules you set.** Topics, phrases or intents that must always reach a person.
* **Your vertical pack's defaults.** Clinics escalate compliance questions, restaurants escalate
  negotiation.
* **The customer asking.** A request for a human is always honoured.
* **Guardrails.** A blocked or badly graded reply can route to a human instead. See
  [Guardrails](/agent/guardrails).
* **Low confidence.** The agent not finding an answer it trusts.

The agent tells the customer what is happening rather than going quiet.

## Who it goes to

Escalations can be assigned automatically:

**By category.** Map a [category](/inbox/categories) to a teammate, so refund requests always reach
the person who handles refunds. Category routing can also add extra alert destinations for that
category on top of your normal ones.

**By trigger rule.** A [rule](/automation/triggers) can assign, prioritise, label or snooze a
conversation on an event.

<Note>
  Automatic assignment never overwrites a human decision. If someone already owns a conversation, the
  routing rule leaves it alone. The current owner is re-read immediately before the write, so a rule
  firing at the same moment a colleague claims a thread cannot take it away from them.
</Note>

Category routing is additive to your existing escalation rules rather than a replacement for them.
Turning it on does not silently change where anything already goes.

## Where alerts go

Configure destinations under **Settings, then Handoff**. Available destinations:

| Destination                      | Notes                                                                                     |
| -------------------------------- | ----------------------------------------------------------------------------------------- |
| In-app notification              | Always available                                                                          |
| Email                            | To named teammates                                                                        |
| [Telegram](/assistants/telegram) | A DM or a group, with an Acknowledge button                                               |
| [WhatsApp](/assistants/whatsapp) | One to one to a linked staff number. Groups are not possible on the WhatsApp Business API |
| Slack                            | Post into your connected workspace, with a channel picker                                 |
| Microsoft Teams                  | Post into a channel                                                                       |
| Webhook                          | Your own endpoint. See [Webhooks](/integrations/webhooks)                                 |

You can use several at once. Each destination is dispatched independently, so an outage on one does
not suppress the others.

## Alert quality

Alerting that pages too much gets muted, and a muted pager is worse than no pager. Several
behaviours exist to keep alerts worth reading:

* **One message per escalation, not one per reminder.** Follow-up reminders edit the existing alert
  in place rather than posting a new card each time.
* **It stops once a human answers.** Acknowledging, resolving or returning a conversation to the
  agent edits the live alert down to a single line and stops the chain.
* **Reminders are configurable.** Interval, maximum count and minimum spacing, so an escalation
  behaves like a pager rather than a metronome.
* **Bursts coalesce.** A flood of alerts to the same destination folds into one message with a
  climbing count instead of dozens of separate ones.
* **Quiet hours.** A per-person window that silences pushes. It never silences the in-app
  notification, and never silences a group destination, so nothing is actually lost. Urgent
  escalations can override.

## Acknowledging

An escalation alert on Telegram carries an Acknowledge button. Pressing it is authorised by who
pressed it, not by which chat it was in, so being in the group is not enough to act on an alert.

Escalations can also be acknowledged from the inbox, or from an [MCP client](/assistants/mcp).

## SLA

Escalations have their own response clocks, separate from the conversation-level SLA policies. See
[SLA](/inbox/sla).

## Returning to the agent

A human can hand a conversation back once they are done. The agent picks up with the full context of
what the human said.
