Transfers and hanging up
A voice agent can use any NappAI tool. On top of that, three tools of the Voice Agent family control the call itself. They connect to Tools on the Voice Agent component, or on a sub-agent, and the agent decides when to use them based on your system prompt.
| Tool | What it does |
|---|---|
| Transfer Call | Hands the call to a phone or to another voice agent. |
| Hang Up Call | Says goodbye and hangs up. |
| Say to Caller | Reads a text word for word: a legal notice, opening hours, a number. |
In each one, tool mode on each field decides whether the AI writes the text in every call or it is a fixed text of yours.
Transfer to another voice agent
This is how you build a switchboard: a receptionist that puts callers through to finance, support or sales, each with its own prompt, tools, voice and avatar.
- Create and publish each destination agent. The one that takes the call is always its published version.
- In the agent that transfers, add a Transfer Call and connect it to Tools.
- In Destination type, choose
voice_agentand, in Voice Agent, the destination agent. - In the tool’s description, and in the prompt, explain when to transfer: “If they ask about invoices or payments, transfer to finance”.
What the caller hears:
- The Announcement to the caller, for example “I’ll put you through to finance, one moment”.
- A short transfer tone, from the end of the announcement until the new agent answers, if Transfer tone is on (it is by default).
- The new agent, which continues the same conversation: it knows what has been said and the transfer’s Reason, so it does not ask again what was already said.
In the web widget, the face and the name also change to those of the agent that takes the call.
For several destinations, add one Transfer Call for each, with a clear description of when to use which.
Transfer to a phone
- Create an outbound trunk with your carrier. See Outbound calls.
- When publishing the agent, choose that trunk in Outbound trunk for transfers, inside Configure consumption with Phone (SIP) ticked. Automatic uses the agent’s outbound-calls trunk or your only one.
- In the Transfer Call, leave Destination type on
phoneand enter the number in international format in Destination, for example+34910000000. - Type:
coldhands the call over straight away.warmputs the caller on hold, calls the destination person, sums up the case and only connects them if that person accepts. You fine-tune it with Ring timeout (seconds), Hold limit (seconds), Advisor language and Advisor briefing instructions; see Transfer Call.
If the destination rejects the call, does not answer, hangs up or a voicemail picks up, the agent tells the caller and the call stays with it. The outbound trunk is the same one used for placing calls; see which trunk you need for what.
How a call ends
A call ends for one of these reasons. The reason is kept in the history:
| Reason | When |
|---|---|
| The agent hangs up | The agent uses Hang Up Call, usually when the caller says goodbye. The history keeps the Reason it wrote. |
| The caller hangs up | The caller hangs up the phone or closes the widget. |
| Inactivity | Nobody speaks for Inactivity Before Hanging Up (45 seconds by default). With Ask Before Hanging Up on, it first asks whether they are still there. It does not count while the agent is speaking or a tool is working. |
| Maximum duration | Maximum Call Duration is reached (600 seconds, ten minutes, by default). The agent says goodbye. |
| Transfer | The call is handed to a phone. In the history it appears as Transferred. |
| Failure | A component fails in the middle of the call, for example a provider with no balance. The call is cut off and appears as Failed with the reason. |
Without Hang Up Call, the agent cannot hang up on its own: the call ends when the caller hangs up, through inactivity or at the maximum duration.