Each tool also takes an optional custom tool description. This is the text the model reads when deciding whether to use the tool. Leaving it blank uses a sensible default; writing your own is the main lever if a tool fires too often or not often enough.
Auto Language Switching
Lets the agent change the language of the conversation when the caller speaks another language or asks to switch. The agent’s transcription language is the starting language.- Supported languages — the languages the agent is allowed to switch to. Leave empty to accept any language the model supports.
- Voices — optional. A different voice to use for a specific language. Leave blank and the agent keeps its usual voice, but the language is still passed through so the voice pronounces it correctly.
Conversation State Updates
Lets the agent assign values to conversation variables mid-call. Those values then become available to later prompts, to function parameters, and to workflow equation transitions. You configure up to 10 updates, each pairing a variable name with an expression:Writing expressions
Expressions support:- Constants — numbers, quoted text,
true,false,null - Existing variables — any variable already in the conversation
- LLM extraction —
llm: "Does the user sound frustrated?"asks the model to work out a value from the conversation. Write it exactly in that form; a bare question is rejected. - Casts —
bool(),number(),text() - Arithmetic —
+ - * / - Comparisons —
=,==,!=,<,<=,>,>= - Logic —
and,or,not - Conditionals —
if <condition> then <value> else <value>
Rules the editor enforces
- Variable names use letters, digits and underscores, and must start with a letter or underscore
- Reserved words (such as
and,if,true,llm,text) cannot be used as variable names - Each variable may only be assigned once
- A maximum of 10 updates
Evaluation is all-or-nothing per tool call. If one expression fails, none of the updates in that call are applied, and the agent is told the update failed.
Pause and Listen
Lets the agent pause and stay silent until the caller speaks again — for moments like “give me a second” or “let me think”. While paused, the agent does not fill the silence. The normal inactivity timeout still applies, so a caller who pauses and then says nothing will still get the silence timeout behaviour.Agent Transfer
Lets this agent hand the conversation to another specialist AI agent — mid-call or mid-chat. The switch lives here, on the Functions tab, alongside the other system tools. Because it is a way of transferring a call, the full guide sits with the other transfer options:Transfer to another agent
How agent-to-agent hand-off works, its rule settings, and how it differs from transferring to a human.
Frequently asked questions
Do system tools cost anything extra?
Do system tools cost anything extra?
No. They are part of the agent. Calls, messages, and any transfers you configure are metered normally — see Pricing.
Can I use more than one system tool on the same agent?
Can I use more than one system tool on the same agent?
Yes. They are independent switches and can all be on at once.
How is agent transfer different from a workflow transfer node?
How is agent transfer different from a workflow transfer node?
Agent transfer moves the conversation to another AI agent. A transfer node in a workflow moves the call to a human, an extension, or an external number. Both can exist in the same agent.
Does language switching work with every voice provider?
Does language switching work with every voice provider?
It works with all supported providers. What differs is whether the agent can also change voice for the new language — realtime models keep the voice they started with.
Where are conversation variables visible afterwards?
Where are conversation variables visible afterwards?
Values the agent captures are added to the transcript as extracted data and are visible in the call log’s structured analysis, alongside anything your own functions collected.