Additional Capabilities for Your Assistants
transferCall
,endCall
, and dialKeypad
. These functions can be used to transfer calls, hang up calls, and enter digits on the keypad.
functions
array.forwardingPhoneNumber
is present on an assistant, the assistant will be given a transferCall
function. This function can be used to transfer the call to the forwardingPhoneNumber
.
endCallFunctionEnabled
is enabled on the assistant. The assistant can use this function to end the call.
dialKeypadFunctionEnabled
is enabled on the assistant. The assistant will be able to enter digits on the keypad.
name
: The name of the function. It must be a string containing a-z, A-Z, 0-9, underscores, or dashes, with a maximum length of 64.description
: A brief description of what the function does. This is used by the AI to decide when and how to call the function.parameters
: An object that describes the parameters the function accepts. The type property should be “object”, and the properties property should be an object where each key is a parameter name and each value is an object describing the type and purpose of the parameter.datetime
, which is a string representing the date and time of the appointment in ISO format.
In addition to defining custom functions, you can specify a serverUrl
where Vapi will send the function call information. This URL can be configured at the account level or at the assistant level.
At the account level, the serverUrl
is set in the Vapi Dashboard. All assistants under the account will use this URL by default for function calls.
At the assistant level, the serverUrl
can be specified in the assistant configuration when creating or updating an assistant. This allows different assistants to use different URLs for function calls. If a serverUrl
is specified at the assistant level, it will override the account-level Server URL.
If the serverUrl
is not defined either at the account level or the assistant level, the function call will simply be added to the chat history. This can be particularly useful when you want a function call to trigger an action on the frontend.
For instance, the frontend can listen for specific function calls in the chat history and respond by updating the user interface or performing other actions. This allows for a dynamic and interactive user experience, where the frontend can react to changes in the conversation in real time.