Update Custom Tool
Change your Custom Tool’s parameters and characteristics.
Headers
Your API key for authentication.
Path Parameters
The ID of the Custom Tool you want to update.
Body
This is the name that the AI using the tool will see.
Some other internal tools are named Speak
, Wait
, Transfer
and Finish
- Custom Tools cannot share these names.
We’ve made a list of reserved words that can confuse the AI that cannot be included:
input
speak
transfer
switch
wait
finish
press
button
say
pause
record
play
dial
hang
Choosing too similar of names to the default tools could cause the AI to select the wrong one, so decriptive two to three-word names are preferred.
This is the description that the AI using the tool will see.
Describe the effect of what the tool does or any special instructions.
For reference, here are the default tools’ descriptions:
Speak
: Talk to the person on the other end of the linePress Buttons
: Presses buttons on phone. Each character is a different button.Wait
: Wait and go silent for an extended period of time (only use if absolutely necessary).Finish
: Say a goodbye message and end the call once completed.
This is the text that the AI will say while it uses the tool.
For example, if the tool is a “GenerateQuote” tool, the speech might be “Please wait while I get you your quote.”
Since tools can be verbally interrupted, shorter messages that tell the user what the tool/AI are doing are best.
Special Note: You can have the AI dynamically generate speech by defining input.speech
in the input_schema
.
This is the endpoint of the external API that the tool will call.
It must begin with https://
and be a valid URL.
This is the HTTP method that the tool will use to call the external API.
Valid options are GET
and POST
.
SUPPORTS PROMPT VARIABLES
These are the headers that the tool will send to the external API.
The headers must be in JSON format.
Since prompt variables are supported, you can use them in the headers to send dynamic information to the external API.
SUPPORTS PROMPT VARIABLES
This is the body that the tool will send to the external API.
The body must be in JSON format.
This is the most common place to use Prompt Variables with AI input.
Note: GET
requests do not have a body.
SUPPORTS PROMPT VARIABLES
Append query parameters to the URL.
The query must be in JSON format.
This is generally used with GET requests and built-in Prompt Variables like "{{phone_number}}"
or "{{call_id}}"
.
This is the schema that the AI input must match for the tool to be used.
The schema must be in JSON format.
The schema is used to validate the AI input before the tool is used.
If the AI input does not match the schema, the tool will not be used and the AI will move on to the next tool.
input_schema.example
can be used to enhance the AI’s understanding of the input structure and helps significantly with structured or nested data.
Special Note: input_schema
does not require strict JSON schema structure, and creativity is encouraged.
Look here for a general guide on JSON schema structures.
Non-traditional JSON schema structures are supported as well, like these examples:
- “options”: “monday, wednesday, friday”
- “date”: “YYYY-MM-DD”
- “time”: “HH:MM:SS (AM|PM)”
- “phone_number”: “+1XXX-XXX-XXXX”
Agent input can be nested, and the will be transformed into JSON even if it’s initially a string.
Define how you would like to extract data from the response.
By default, the entire response body is stored in the {{data}}
Prompt Variable.
The path to the data you want must be in JSON Path format. Generally this means using dot notation to traverse the JSON object and is only required if you need to use that information on other tools or the response is too large.
Example:
This is the maximum time in milliseconds that the tool will wait for a response from the external API.
If the external API does not respond within this time, the tool will fail and the AI will move on to the next tool.
The default timeout is 10 seconds (10000 milliseconds).
To always wait for a response, set the timeout to an extremely high value like 99999999.
Response
Whether the tool creation succeeded.
A tool id that you can use to reference the tool in the future.
In a Send Call request, you could pass this tool id in instead of the full Custom Tool object like so: