KlicForge Docs
Channels

Escalate to human

Let an agent hand a conversation to a human operator when it cannot help, or the user insists on one.

Escalation lets an agent hand a conversation to a human operator when it cannot help, the user insists on a human, or the issue is high-stakes. When an agent escalates, KlicForge notifies the configured operators and surfaces the conversation in the Inbox, under Needs Attention in the dashboard, where an operator can take over and reply directly.

How it works

Escalation combines three things that are kept in lockstep: a tool the agent calls to escalate, a skill that tells the agent when to escalate, and per-agent configuration. Enabling escalation on an agent attaches the tool and skill automatically — you never wire them up by hand.

Enabling escalation

On the agent's Settings tab, in the Human Escalation section:

  1. Turn on Enable escalation.
  2. Select which team members are notified when an escalation happens. Defaults to whoever enables it.
  3. Optionally choose a custom detection skill to override when the agent decides to escalate.
  4. Optionally set a Fallback contact source — a data table to look the customer up in when their contact record has no name or number on file.
  5. Optionally write your own Alert wording to replace the standard text an operator sees.

Creating an agent from a template that includes the handoff tool turns escalation on for you automatically, if your workspace is on a paid plan. Otherwise it stays off, exactly as above, ready to enable by hand.

Any team member can be an operator. Linking Telegram or turning on push notifications adds a realtime route for that person, but neither is required — every operator is alerted in the Inbox either way.

Fallback contact source

An escalation alert is only useful if it tells you who to call back, and KlicForge fills the name and number in from the customer's contact record. If your real customer list lives in a data table and was never linked to a contact, that record can be empty.

Point the agent at the table instead. Under Fallback contact source, select the table, then choose which column holds the customer's name and, optionally, which holds their phone number. When an escalation comes in and the contact record has nothing on file, KlicForge matches the customer against that table on their WhatsApp, Telegram, phone or email column and uses what it finds there.

A table is offered only if it has at least one of those columns — without one there is nothing to match a customer against. The lookup runs only when the contact record comes up short, and only for that one alert: nothing is copied into your contacts.

Extra columns in the alert

Under Extra columns to include in the alert, pick up to five more columns from the same table — a policy number, a plan, an account id, a renewal date. Whatever is on the matched row appears as extra lines in the alert, under the customer's name and phone, so the operator has what they need before opening the conversation.

Extras are read from the same row that was matched, so unlike the name and phone they are fetched whenever you have configured any — even when the contact record already has a name and number on file. A column you have already chosen as the Name or Phone field is not offered again, and an empty cell simply produces no line.

Alert wording

By default an escalation alert reads as "Human support needed", followed by which agent escalated, on which channel, and the reason and summary it gave. Under Alert wording you can replace that with your own, using four optional fields:

FieldDefault
TitleHuman support needed
HeadingNot shown unless you set it
Sub-headingNot shown unless you set it
ContentThe standard sentence naming the agent, contact, channel, reason and summary

Each field accepts {{token}} placeholders. Type {{ in any of them to pick from the list:

  • {{agentName}} — the agent that escalated
  • {{channel}} — widget, whatsapp, telegram, and so on
  • {{reason}} and {{summary}} — what the agent gave when it escalated
  • {{contactName}}, {{phone}}, {{email}} — the customer, resolved the same way the standard alert resolves them
  • one token per extra column you selected on the fallback contact source, named after the column's slug

Leave a field blank to keep its default. A token with nothing behind it — an unknown name, or a customer with no phone on file — falls back to the default wording for that field rather than sending a blank one.

Custom wording appears in Telegram, email and Slack alerts. The mobile push alert and the in-app bell keep the standard wording — push deliberately carries no customer detail at all, and the bell entry is written from the stored record rather than the delivered message. See KlicForge Inbox.

What happens at runtime

  1. The agent decides to escalate and calls the escalation tool with a reason and an optional summary.
  2. KlicForge notifies each configured operator — see notifications. The alert names the customer and gives a number to call back on, when one is on file, along with any extra columns you configured. When a detail is not on file, that line is left out rather than filled with a guess. The wording is yours if you set alert wording, and the standard text otherwise. The mobile push alert is the exception and deliberately carries no customer details at all — see KlicForge Inbox.
  3. The conversation appears in the Inbox, where an operator can take over and reply to the user directly.
  4. If nobody takes it over, the same operators get a follow-up reminder. Taking over, or a colleague doing so, clears it — you won't be reminded about a conversation someone already has.

An agent also escalates automatically if it hits its tool-iteration limit while escalation is enabled.

Requirements

  • At least one operator must be selected, or escalation cannot be dispatched.
  • No particular notification channel is required. Every operator is reached in the in-app inbox by default; Telegram and web push are optional realtime routes you add per operator — see notifications.
  • Delivery to each operator is independent — if one operator's channel fails, the others still receive the alert.
Was this page helpful?

On this page