Skip to content

Routing transparency

A transfer beats a confident guess.

This is the page we would want to read if we were buying this. It is the whole decision path, in order, including the thresholds and the eight reasons a call leaves Zimaao and reaches one of your people.

Handoff triggers
Eight, all configurable
Clarifying questions
One, then a person
Decision log
Every call, reviewable
01The decision path

Six moments between hearing and doing.

  1. 01

    It listens for the whole request, not a keyword

    Intent is taken from the full sentence and the sentences around it. "I booked for Thursday, can I move it" is a reschedule, not a booking. Callers who state two things in one breath produce two intents, and the second one is not dropped.

    ⋮ intent: reschedule
  2. 02

    It checks the request against what you allowed

    You define the list of things it may resolve on its own, per call type. Anything outside that list is not attempted. There is no general purpose fallback that quietly invents an answer, because that is where trust goes to die.

    ⋮ allowed: reschedule, cancel, confirm
  3. 03

    It reads your systems before it says anything definite

    Availability, order state and invoice amounts come from your calendar, order record or billing system in the moment. Nothing is quoted from memory, and nothing is rounded. If a system is unreachable, it says so rather than improvising.

    ⋮ booking 4412 found
  4. 04

    Low confidence buys one question, then a person

    If it is below the confidence threshold you set, it asks exactly one clarifying question. If it is still below after the answer, it hands over. A guess that sounds confident is worse than a transfer, every time.

    ⋮ confidence 0.41, below threshold
  5. 05

    A handoff carries everything it already knows

    The person who picks up gets the call summary, verified caller details, what was already done on this call, the open intent, and the live transcript. They start mid-conversation, which is the only reason a handoff feels seamless.

    ⋮ context passed: booking + charge
  6. 06

    The whole path is on the record afterwards

    Each call stores the intent it detected, the confidence it had, the systems it touched, what it changed, and why it handed over. Filter the log by handoff reason and you can see exactly where your configuration needs a change.

    ⋮ logged and reviewable
02Confidence

What the threshold actually controls.

Every turn produces a confidence score for the intent and for the entities inside it, the date, the amount, the order number. You set the floor. Below it, the behaviour is fixed and cannot be overridden by the model.

Above the floor

It acts, states what it did, and reads back the detail it changed.

Just below the floor

One clarifying question, aimed at the single uncertain value rather than the whole request.

Still below after the answer

Handoff. No second question, no partial action, no "I think you meant".

Conflicting values

If the caller says Saturday and the system says Sunday, it never picks. It reads both and asks.

Watch the handoff at 00:14reschedule-cleaning-en.wav
0:00 / 0:19
English
Resolved by Zimaao without a person on the line.

The reschedule was inside the allowed list, so it was completed. The double charge was not, so the call left Zimaao in the same sentence.

Handoff triggers

Eight reasons a call leaves and reaches a person.

Each one is a rule, not a judgement call. You can tighten any of them. You cannot remove the first two, because a product that can be configured to refuse a human is not a product we are willing to ship.

Asked for a person
Transferred on the first ask, with no retention attempt and no reason required
Dispute raised
Billing, damage, quality or accuracy. The script stops at the word, not at the end of the sentence
Outside allowed actions
The request is real but you never approved it, so it is stated plainly and passed on
Below confidence threshold
One clarifying question, then a transfer. Never a second guess
System unreachable
If your calendar or order record cannot be read, nothing is quoted from memory
Distress or urgency detected
Injury, fire, gas, flooding or clear distress. No triage attempted, a person is paged
Third party on the line
Someone who is not the account holder cannot be told account details
Repeat contact on an open issue
A second call about something already escalated goes to the person who owns it
03What the person receives

They start mid-conversation, not from the top.

A handoff only feels seamless if the caller never has to repeat themselves. Six things land on your colleague screen before they say hello.

Call summary
Three lines: what the caller wanted, what was done, what is still open
Caller identity
Who they are and how they were verified on this call
Actions taken
Every read and write, with the record IDs, so nothing is done twice
Open intent
The unresolved request, in the caller own words
Live transcript
Scrollable, so the person can read the last thirty seconds before speaking
Handoff reason
Which of the eight triggers fired, stored on the call record
04The decision log

If you cannot explain the call, we failed.

Every call stores the intent detected, the confidence attached to it, the systems read and written, the values changed, and the handoff reason if there was one. Filter the log by handoff reason and your configuration problems sort themselves into a list.

IntentConfidenceAction takenOutcome
  • reschedule0.94calendar.read, calendar.write, sms.sendResolved
  • order_status0.91orders.readResolved
  • billing_dispute0.88none, policy blockedHanded over
  • speak_to_human0.99transfer.accountsHanded over
  • unknown0.41clarify asked onceHanded over

Shape of the log, not a customer record. Live logs are visible only to the people you name.

On airLast two lines
00:00You

Where would you put our threshold?

00:02Zimaao

Higher than feels comfortable for the first fortnight. More handoffs early means fewer wrong answers you have to apologise for later.