Escalation Rules
These are the actual conditions that move a conversation out of ai_active — not general advice, but what the system checks. If a trigger isn't listed here, it doesn't exist yet.
Keyword or AI-judgement trigger (website widget)
Configured per agent as a Human Handoff AI Action (see Configuration). A visitor's message fires it when:
- •It contains one of the action's comma-separated Trigger keywords — a whole-word match for single-word triggers, a substring match anywhere in the message for multi-word phrases.
- •The AI decides on its own, based on the action's "When to use" description, that the request matches — it can fire the action even without an exact keyword hit.
If the visitor hasn't given contact details yet, this shows the lead-capture form first and holds the handoff until they submit it. If details already exist, the conversation moves to human_requested immediately.
Built-in trigger on WhatsApp, Messenger and Instagram
No configuration needed — every conversation on these three channels carries the same instruction. The AI is told to signal a handoff when:
- •The visitor asks a question it cannot answer from available information.
- •The visitor explicitly asks to speak with a person.
It also assigns a priority: high only if the visitor seems distressed or the situation is urgent, normal otherwise. Because there's no popup form on these channels, a lead is captured automatically at this point — using the visitor's phone number and known name — so the reason isn't lost even though nothing prompted for contact info.
Zoho Desk triggers
Covered in full on the Configuration page — four selectable conditions decide when a Zoho Desk ticket is created, and creating a ticket always pushes the conversation into the handoff queue (waiting_for_agent), regardless of which condition fired. One of the four ("Customer requests a human") additionally runs a phrase-detector against every website-widget message, independent of any AI Action you may have configured.
What is not a trigger today
sentiment, sentiment_score, primary_emotion), but nothing currently reads those fields to trigger a handoff automatically. There's also no dedicated "Talk to a human" button in the chat widget itself — handoff always goes through one of the mechanisms above.SLA: what happens once a conversation is waiting
A handoff doesn't get a deadline just for existing — sla_due_at is only set in two places:
- •When an agent claims a WhatsApp conversation from the Inbox, it gets a 4-hour deadline from the moment of claim (if it doesn't already have one).
- •When a Zoho Desk ticket is created for a conversation's lead, it gets the same 4-hour deadline immediately, before anyone has claimed it.
Claiming an Email, Instagram or Messenger conversation does not set a deadline on its own — those channels only get one if a Zoho Desk ticket already set it earlier.
A scheduled job (whatsapp:escalate-sla — despite the name, it isn't WhatsApp-specific, it checks sla_due_at and handoff_status on any conversation) runs every minute. Any conversation still in human_requested, waiting_for_agent or human_active whose deadline has passed gets:
- •
sla_breached_atset to the current time. - •Its
prioritybumped tourgent.
Was this page helpful?
