> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluents.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Call Routing

> Hand a live call to a person when a specific phrase is spoken, either directly or after the agent explains the call first.

**Call Routing** transfers a live call to a phone number when a phrase you choose is
spoken. You write the phrase, you pick who has to say it, and you pick where the call
goes.

***

## Set it up

On the agent's **Basic Information** tab, click **Call Routing** under **Choose
Skills**. The **Configure Call Routing** dialog opens.

<Frame>
  <img src="https://mintcdn.com/fluents/toXrgRDyRd3E8t72/images/product/skills/call-routing-transfer-type.jpg?fit=max&auto=format&n=toXrgRDyRd3E8t72&q=85&s=fae80d6e4805ef89e8238bf5e194ab96" alt="The Configure Call Routing dialog with the Transfer type dropdown open showing Direct transfer and Warm transfer, above the optional From and Until transfer window" width="1357" height="896" data-path="images/product/skills/call-routing-transfer-type.jpg" />
</Frame>

Each rule reads as a sentence. **When the** `bot` **says** `<phrase>`, **Transfer to**
`<name>` **at** `<number>`.

| Field                | What it does                                                      |
| -------------------- | ----------------------------------------------------------------- |
| **When the**         | Who has to say the phrase, **bot** or **human**. Defaults to bot. |
| **says**             | The phrase that fires the transfer.                               |
| **Transfer type**    | **Direct transfer** or **Warm transfer**. Defaults to Direct.     |
| **Transfer to**      | A name for the recipient. This is for your reference.             |
| **at**               | The number the call goes to.                                      |
| **From** / **Until** | Optional. A daily window during which this route may transfer.    |

All fields are required except the transfer window. **+ Add more conditions** adds
another rule, and the small **x** on the right removes one.

***

## Transfer windows

**From** and **Until** set a daily window per route. Leave both empty and transfers
happen at any hour. Set them, and a transfer attempted outside the window is blocked.

This is what stops an agent handing a caller to an empty office at nine in the
evening. It is set per route, so a sales line and a support line on the same agent can
keep different hours.

The window is evaluated in the agent's **Timezone**, which you set on
**[Advanced Settings](../agent)**. Set the timezone first, then the window, or you
will be reasoning about the wrong clock.

<Warning>
  The dialog currently prints **(Pacific Time)** next to this setting while its own
  tooltip says the agent's timezone. The tooltip is the accurate one. If your agent is
  not on Pacific time, verify with a test transfer before you rely on the window.
</Warning>

***

## Direct and warm transfers

**Direct transfer** connects the call immediately. The agent says the phrase, the
caller is passed to the number, and the agent drops off.

**Warm transfer** explains the call to the recipient first, then connects the caller.

Direct is the default. Warm costs a few extra seconds but means the person picking up
is not starting cold.

***

## How the phrase is matched

This is the part that surprises people, so it is worth being precise.

The phrase is matched **case insensitively**, and it matches **anywhere inside** what
was said, as long as it sits on whole word boundaries.

That means:

| You configure         | Spoken                               | Fires? |
| --------------------- | ------------------------------------ | ------ |
| `transfer to billing` | "Okay, transfer to billing now."     | Yes    |
| `transfer to billing` | "TRANSFER TO BILLING"                | Yes    |
| `transfer to billing` | "I will transfer to billings."       | No     |
| `billing`             | "Let me check your billing address." | Yes    |

The last row is the trap. A short phrase will fire in conversations you did not
intend, because it only has to appear somewhere in the sentence.

<Warning>
  **bot** and **human** rules match identically. Neither one is stricter than the
  other. If you have read otherwise, that was wrong.
</Warning>

***

## Choosing a good phrase

Because matching is containment, the phrase does the work of a switch, so treat it
like one.

* **Make it long enough to be deliberate.** "Connecting you to billing now" will not
  come up by accident. "Billing" will.
* **Make it something the agent will actually say.** For a **bot** rule, write the
  same phrase into the agent prompt and tell the agent when to use it. If the agent
  never says it, the rule never fires.
* **Avoid words that appear in the surrounding conversation.** If the agent discusses
  billing all call, do not use `billing` as the trigger.

<Tip>
  For **human** rules, remember you are matching what the caller says, and callers do
  not read your prompt. Short and common is more likely to catch the request, which is
  the opposite tradeoff from bot rules and is exactly why false fires happen.
</Tip>

***

## Test before you rely on it

Open **Test Agent** and place a browser or phone call. Say the phrase, or steer the
agent into saying it, and confirm the transfer fires and rings the right number.

<Warning>
  Transfers only work on phone calls. A browser test call cannot transfer, so test
  routing with **Start Phone Call**.
</Warning>

***

## Where to go next

* Everything else on the agent: **[Agents](/product/features/agent)**
* Build a repeatable test for each route: **[Testing an agent](/product/features/agent-testing)**
* Check whether a transfer actually happened on a call: **[Calls](/product/features/call)**
