Toph
10/13/2025, 4:06 PMVapi Support Bot
10/13/2025, 4:07 PMagentName) to the destination object. For example:
json
{
"destination": {
"type": "assistant",
"assistantName": "LeasingAgent",
"description": "Leasing department agent",
"agentName": "LeasingAgent"
}
}
Your assistant or downstream logic can then extract agentName from the destination object. Adjust your webhook to include this field as needed for your use case.
Reference: See [Dynamic call transfers - webhook response example](https://docs.vapi.ai/calls/call-dynamic-transfers#build-your-webhook-server).
Source:
- [Dynamic call transfers](https://docs.vapi.ai/calls/call-dynamic-transfers#build-your-webhook-server)Vercel
10/13/2025, 9:42 PMChiranjeet Mishra
10/14/2025, 7:15 PMdestinations array empty, and specify the tool type as transferCall. Here's a basic structure:
json
{
"type": "transferCall",
"destinations": [],
"function": {
"name": "dynamicTransfer",
"description": "Transfer call to appropriate destination based on customer needs",
"parameters": {
"type": "object",
"properties": {
"reason": {"type": "string", "description": "Reason for transfer"},
"urgency": {"type": "string", "enum": ["low", "medium", "high", "critical"]}
}
}
}
}
2. **Webhook Setup**:Use a transfer-destination-request webhook to dynamically determine the transfer destination. Make sure your server logic correctly interprets the context from the webhook and responds with the appropriate destination.
3. **Assistant Configuration**:Integrate your dynamic transfer tool into an assistant configuration, enabling the transfer-destination-request server event to activate dynamic routing.
4. **Testing**:Assign the created assistant with the dynamic transfer tool to a phone number. Test various transfer scenarios and monitor the webhook server logs to verify the routing decisions are being made correctly.
For complete procedural steps, you can refer to the [Dynamic Transfers](https://docs.vapi.ai/calls/call-dynamic-transfers) documentation.Toph
10/15/2025, 6:03 AM{
"role": "tool_calls",
"time": 1760507944804,
"message": "",
"toolCalls": [
"0": {
"id": "call_ss4HeJAoN0XPqv1UiGUemtUK",
"type": "function",
"function": {
"name": "transfer_call_tool",
"arguments": "{\"target\": \"maintenance agent\"}"
}
}
],
"secondsFromStart": 5.524
}
{
"name": "transfer_call_tool",
"role": "tool_call_result",
"time": 1760507944809,
"result": "Transfer initiated.",
"toolCallId": "call_ss4HeJAoN0XPqv1UiGUemtUK",
"secondsFromStart": 5.529
}
https://cdn.discordapp.com/attachments/1427326515502383104/1427899555424370769/image.png?ex=68f08a97&is=68ef3917&hm=16e4f0c94b3bd2be6b3d4345a5128b7edb9e3a2227a000800506878b17b73fa0&Toph
10/15/2025, 6:03 AMToph
10/15/2025, 6:08 AM{
"role": "tool_calls",
"time": 1760508283304,
"message": "",
"toolCalls": [
"0": {
"id": "call_i3KnxUjfIfcCxeuemdhfvnWI",
"type": "function",
"function": {
"name": "transfer_call_tool",
"arguments": "{}"
}
}
],
"secondsFromStart": 14.395
}
{
"name": "transfer_call_tool",
"role": "tool_call_result",
"time": 1760508283748,
"result": "Invalid transfer target or agent not found",
"toolCallId": "call_i3KnxUjfIfcCxeuemdhfvnWI",
"secondsFromStart": 14.839
}
but issue is I want to pass something into the arguments object without that how would I know what to transfer.Toph
10/15/2025, 5:11 PMChiranjeet Mishra
10/16/2025, 8:05 PM