The escalate_to_human skill
What the skill does
The escalate_to_human skill is a tool the AI can call during a conversation. It is on by default for workspaces on Growth and above.
When the AI calls it, one of two things happens.
A teammate can take the chat. Live chat is on for the workspace, the owner's plan includes live chat, and nothing says nobody is reachable. Then:
- The conversation is marked escalated and the AI pauses for that conversation only.
- The AI tells the visitor, in its own words, that a teammate will join shortly.
- The conversation appears in the Help Desk inbox with the full message history. Open inbox tabs get a real-time alert and a sound.
- The workspace owner gets an in-app notification with the reason the AI gave.
- The
conversation.escalatedwebhook fires if you subscribe to it.
While the AI is paused, new visitor messages are saved to the conversation but get no AI reply. In the website widget the visitor sees "A teammate will reply here shortly."
Nobody can take the chat. Live chat is off, the plan doesn't include it, or AskVault can tell nobody is reachable. Then the conversation is not marked escalated and the AI keeps answering. It tells the visitor nobody can join right now. In the website widget it also shows a short form so the visitor can leave contact details, which are saved as a lead.
Live chat is off for every new workspace by default. To turn it on, open Channels > Web widget and switch on Let visitors talk to a human. Live chat is included on the Growth plan and above; on lower plans the switch is locked and names the plan you need. Until it is on, every handoff takes the second path.
When the skill fires
The AI decides. Its instructions tell it to hand off only for a real support need a person can solve:
- The visitor explicitly asks for a person.
- The visitor has an account, billing or technical problem the AI can't resolve from your knowledge base.
It is told not to escalate small talk, trivia, off-topic questions, or questions about which AI model it runs on.
There is no editable trigger phrase list, frustration threshold or low-confidence counter for this skill. You can switch the skill off on the Skills page. On the Workflows page you can add a condition that limits when the AI is offered the skill at all, for example only during business hours.
How "reachable" is decided
AskVault checks three signals, in this order:
- Someone has the Help Desk open. Then a handoff is always offered.
- Office hours. If you set office hours in the Help Desk and it is outside them, the handoff is declined.
- Agent status. If your team uses the away/available status and nobody is available, the handoff is declined.
If none of these gives an answer, for example a team that never set office hours or a status, the handoff goes ahead.
A declined handoff leaves an internal note on the conversation and fires the conversation.escalation_missed webhook, once per conversation.
The "Talk to a human" button in the widget
Visitors can also ask for a person themselves. When live chat is on, the website widget shows a Talk to a human button after the first exchange.
Clicking it marks the conversation escalated and shows "Connecting you to a support agent..." while the visitor waits. When a teammate takes the conversation in the inbox, the widget header switches to that teammate's name and the visitor sees that they joined.
If nobody takes it within 2 minutes, the widget says "No agents are available right now" and shows the contact form. The AI answers again from the next message.
Two gaps to know about today:
- A button click does not alert open inbox tabs in real time. The conversation shows up on the inbox's next refresh, within 10 seconds, without a sound.
- On the hosted chat page (your
/c/link), the button doesn't work today. Visitors there can't reach a human through it.
When nobody can join (website widget)
Rolling out, not yet switched on: when a visitor clicks Talk to a human and nobody can join (outside your office hours, or no teammate available), the widget shows a short email form under the message. The email, plus any name or phone the visitor adds, is saved on that conversation, so it appears in the inbox visitor panel, and an internal note on the thread records it. Visitors your site has signed in with setUser (including an email) aren't asked; that email is used. An email already on the conversation is never replaced by the form.
Who picks it up
Escalated conversations land unassigned. Any teammate can open one and take it over, which assigns it to them.
The Help Desk Auto-assignment setting (balanced or round-robin) does not run when the AI or a visitor starts a handoff. It assigns waiting conversations only when an agent resolves a conversation and has room for another, or when a teammate escalates a conversation from the dashboard.
Rolling out, not yet switched on: if auto-assignment gives an AI handoff to a teammate who doesn't pick it up within 2 minutes (no reply, no note, no other action on it), the conversation goes back to the unassigned queue so anyone on the team can take it. It stays escalated. The teammate gets one notification in the Help Desk bell (no email), and the conversation's activity shows that it was returned to the queue. A conversation a teammate took over, or one someone assigned by hand, is never returned.
There is no routing by tag, team, channel or time of day.
What the agent sees
The agent sees the full conversation: every visitor message and AI reply, with timestamps, plus the visitor's contact details if they were captured or verified.
The reason the AI gave for handing off goes into the owner's in-app notification and the conversation.escalated webhook. It is not shown in the conversation itself.
Resuming the AI
After the agent finishes:
- Resolve the conversation. This ends the live session and turns the AI back on, so the visitor's next message gets an AI answer.
- Resume AI. The teammate who took over clicks it to hand the conversation back to the AI without resolving it.
Per-channel behaviour
Agent replies typed in the inbox reach the visitor on these channels:
- Website widget. Replies appear in the visitor's chat window.
- WhatsApp, Telegram and Intercom. Replies are sent through the channel.
Messenger and Instagram are not available yet. When they launch, inbox replies will reach the customer there too.
On SMS, Slack, Discord and email, replies typed in the inbox are not sent back. The inbox marks them "not delivered". Reach the customer through the contact details on the conversation.
On voice calls, the skill does not transfer the call. If you set a transfer number on the voice channel, callers can press 0 at any time to be connected to it.
Limits and pricing
The skill and the "Talk to a human" button need Growth or above. Growth+
The AI reply that hands off is metered like any other AI answer. Replies your teammates type in the inbox don't use message credits.
Common pitfalls
The AI offers a form instead of a person. Live chat is off for the workspace, or nobody was reachable (outside office hours, or every agent set to away). This is the expected behaviour in that case.
Escalations pile up unattended. Nothing pushes an escalation to an agent who doesn't have the Help Desk open. Subscribe a webhook to conversation.escalated on the Webhooks page and point it at a Slack or Discord incoming-webhook URL to get a channel alert.
Agent replies don't reach the customer. Check the channel. SMS, Slack, Discord and email conversations can't receive inbox replies today.
FAQ
Can the bot escalate to email instead of live chat?
No. Escalations land in the Help Desk inbox. For an alert elsewhere, subscribe a webhook to conversation.escalated.
Does the customer know they've been transferred to a human?
Yes. The AI is instructed to tell the visitor that a teammate will join and that it is stepping back. In the widget, the header switches to the agent's name when they take over.
How fast does the customer get a human?
It depends on your team. AskVault does not route or page anyone, so the visitor waits until someone with the Help Desk open takes the conversation. In the widget, the visitor waits up to 2 minutes before being offered the contact form.
Does the bot pause completely after escalation?
Yes, for that conversation, when the handoff goes through. It stays paused until an agent resolves the conversation or clicks Resume AI. Other conversations are not affected.
What if nobody picks the conversation up?
Rolling out: if no teammate claims or replies to an AI handoff within two minutes, the bot steps back in. It tells the customer once that the team isn't available right now and that their message has been passed on, then keeps helping. On the website widget it asks for an email if it doesn't already have one; on WhatsApp, Telegram and Intercom it says a teammate will reply in the same chat. The conversation stays in your inbox as an unanswered handoff, with an internal note, so you can still pick it up. On SMS, Slack, Discord and email the bot resumes but can't send that notice.
A workspace where nobody has ever answered a chat (no office hours, no agent status set, no conversation ever claimed or replied to) isn't promised a human at all: the bot collects the customer's contact details instead, the same way it does outside office hours.