Available Built-in Tools
| Tool Name | Description |
|---|---|
| queryCorpus | Retrieves relevant information from an existing corpus (knowledge base). See Query Corpus API for details. |
| leaveVoicemail | Leaves a voicemail and ends the call. Intended to be used with outbound phone calls. |
| hangUp | Terminates the call programmatically. Useful for ending conversations gracefully. |
| playDtmfSounds | Plays dual-tone multi-frequency (dialpad) tones. See DTMF documentation for sending and receiving tones. |
| coldTransfer | Transfers the current call to a human operator. See Call Transfers for more details. |
Built-in tools use the same definition structure as custom tools. You can view their complete specifications using the List Tools API.
Using Built-in Tools
Using built-in tools is the same as using any other custom durable tool that you have created except for one difference: you can override built-in tools by using the same name. For example, if you created a durable tool named “hangUp” and then provide that tool by name (i.e. not by the toolId), then your tool would be used instead of the built-in hangUp tool. Add built-in tools when creating agents, calls, or call stages:Using Tool Names
Using Tool IDs
If you have multiple tools with the same name, you can use the uniquetoolId instead. Agents will see the modelToolName.
Viewing Available Tools
Use the List Tools API to see all available tools, including built-ins:The List Tools API returns both built-in tools and any custom tools you’ve created, making it easy to see all tools available in your account.
Tool Parameters
Tools can use and pass parameters (i.e. send variables to the underlying API). The parameters for each built-in tool are explained below. See Tool Parameters → for details about the different types of parameters used by tools.Tool Parameters
Tools can use and pass parameters (i.e. send variables to the underlying API). The parameters for each built-in tool are explained below.See Tool Parameters → to learn about the different types of parameters used by tools.
Tools can use and pass parameters (i.e. send variables to the underlying API). The parameters for each built-in tool are explained below.See Tool Parameters → to learn about the different types of parameters used by tools.
Built-in Tool Details
queryCorpus
Searches through a knowledge base (corpus) to find relevant information (AKA RAG).
Requires the ID of the corpus (corpus_id) to be used for all queries and a dynamic query parameter is used for each query. Optionally, you can restrict the number of results that are returned to the agent (via max_results) along with a minimum semantic similarity score (minimum_score).
Example Usage:
Using queryCorpus Tool
Parameters
Required Parameter Override:The ID of the corpus to be used for all queries.
What to search for.
How many chunks to receive back. Can be any value from 1-20.
Can be used to only return content with a minimum semantic similarity score.
leaveVoicemail
When making outbound phone calls, used to leave a voicemail and then end the call.
A dynamic message parameter is used for the message that will be left. Optionally, you can change the hang up behavior with strict and the return message with result.
Example Usage:
Using leaveVoicemail Tool
Parameters
Dynamic Parameters:The voicemail message to leave.
true ends the call regardless of user interaction. If set to false, any user interaction (i.e. speech or interrupting the voicemail) will cause the call to continue.The message that is returned from the tool call. Will be added to conversation history.
hangUp
Ends the current call programmatically.
Optionally accepts a dynamic parameter called reason. A static parameter called strict can be overridden to enable the call to continue if the user speaks and continues the call.
Example Usage:
Using hangUp Tool
Parameters
Dynamic Parameters:A brief reason for hanging up.
true ends the call regardless of user interaction. If set to false, any user interaction (i.e. speech) will cause the call to continue.playDtmfSounds
Plays telephone keypad tones (dual-tone multi-frequency signals).
Requires a dynamic parameter called digits. Static parameters for toneDuration and spaceDuration can be overridden. Automatically sets the sample rate based on current call medium.
Example:
Using playDtmfSounds Tool
Parameters
Dynamic Parameters:The digits for which tones should be produced. May include: 0-9, *, #, or A-D.
The length (in seconds) that tones will be emitted.
The length (in seconds) that spaces (AKA silence between DTMF tones) will be emitted.
coldTransfer
Transfers the current call to a human operator.
Requires the transfer target. You can optionally include additional headers that will be used in the sip REFER.
Example Usage:
Using coldTransfer Tool
Parameters
Required Parameter Override:The target of the transfer. This is who the user’s client should be REFER’ed to.
A SIP URI is always allowed. A phone number in E.164 format may be allowed depending on your medium and telephony configuration.
A string-to-string map of headers to include in the REFER request. Custom headers should use the “X-” prefix to avoid conflicts with standard SIP headers.
Customizing Built-in Tools
Overriding Tool Behavior
You can customize built-in tools by overriding their names or descriptions:Overriding Tool Name & Description
Parameter Overrides
Some built-in tools require or allow parameter overrides:Replacing Built-in Tools
You can override built-in tools by creating your own tool with the same name:Tool ID vs Name PriorityIf you reference a tool by
toolId, you’ll always get that specific tool. If you reference by toolName and have a custom tool with the same name, your custom tool takes precedence over the built-in version.Authentication
Built-in tools handle authentication automatically - no additional setup required. However, some tools likequeryCorpus require you to specify which corpus to search via parameter overrides.
Next Steps
- For more advanced tool usage, see our guides on parameter overrides and async tools.