Why it’s “warm”
The agent does the qualifying work before the handoff, so your team doesn’t start cold:Qualified first
The agent collects the caller’s name, reason, and any details it needs, so the person who picks up isn’t starting from zero.
Routed by context
A sales question, a billing issue, and an emergency each go to a different number — based on what the caller actually said.
Caller ID preserved
Your team sees the customer’s real number on the transferred call, not the platform’s.
Only when it should
Routine calls stay contained. The agent transfers when its rules say to — not by default.
How routing decisions are made
You set up two layers:- A default handoff destination — where a transfer goes when nothing more specific matches.
- Transfer-by-context rules — a small table that maps a described situation (“caller wants to speak to billing”, “caller reports an emergency”) to a specific phone number. The agent matches the live conversation to a rule and transfers there.
In the API
| Action | Endpoint | Scope |
|---|---|---|
| Set default destination & context rules | PATCH /agents/{id} | agents:write |
| Add a transfer skill | POST /agents/{id}/skills | skills:write |
| Publish | POST /agents/{id}/publish | agents:write |
| See your transfer rate | GET /agents/{id}/calls | calls:read |