dynamic tool in assistant not triggering webhook i...
# support
t
Here is two logs where it hit and where it didn't hit it did trigger the transfer-destination-request
Copy code
{
"role": "tool_calls",
"time": 1760427301240,
"message": "",
"toolCalls": [
"0": {
"id": "call_IQE1Oaz3op48JltIJotr8DwO",
"type": "function",
"function": {
"name": "transfer_call_tool",
"arguments": "{}"
}
}
],
"secondsFromStart": 16.883
}

{
"name": "transfer_call_tool",
"role": "tool_call_result",
"time": 1760427306048,
"result": "Invalid transfer target or agent not found",
"toolCallId": "call_IQE1Oaz3op48JltIJotr8DwO",
"secondsFromStart": 21.691
}
this didn't Message 4 tool_calls 12:51:22 PM Copy { "role": "tool_calls", "time": 1760428282753, "message": "", "toolCalls": [ "0": { "id": "call_zt6ypKnIUbIr1HaJtmrNamWm", "type": "function", "function": { "name": "transfer_call_tool", "arguments": "{\"target\": \"maintenance agent\"}" } } ], "secondsFromStart": 4.817 } Message 5 tool_call_result 12:51:22 PM Copy { "name": "transfer_call_tool", "role": "tool_call_result", "time": 1760428282756, "result": "Transfer initiated.", "toolCallId": "call_zt6ypKnIUbIr1HaJtmrNamWm", "secondsFromStart": 4.82 } on the table ended reason for first is Customer Ended Call and the second Assistant forwarded Call
v
To ensure your dynamic transfer tool always triggers the webhook—even when arguments are present—**define the tool with an empty
destinations
array** in your assistant configuration. For example:
Copy code
json
{
  "type": "transferCall",
  "name": "transfer_call_tool",
  "destinations": []
}
This setup guarantees that Vapi will send a
transfer-destination-request
webhook to your server, regardless of arguments, allowing you to handle routing logic dynamically in your webhook handler. See more: [Dynamic Transfers Guide](https://docs.vapi.ai/calls/call-dynamic-transfers#create-a-dynamic-transfer-tool) Source: - [Dynamic call transfers](https://docs.vapi.ai/calls/call-dynamic-transfers)
t
@Vapi destinations is empty { "id": "89a24d82-6967-44e0-9fa3-28f662057d4e", "createdAt": "2025-10-13T12:52:42.612Z", "updatedAt": "2025-10-14T07:34:26.053Z", "type": "transferCall", "function": { "name": "transfer_call_tool", "description": "Transfers a live call between leasing and maintenance agents as needed." }, "messages": [ { "type": "request-start", "blocking": false } ], "destinations": [] }
c
Hi, could you please provide a call id where you experienced this issue? We would like to review the logs to identify the cause.
t
Here are some Call IDs Doesn't trigger the
transfer-destination-request
event - passing object in arguments 0199e945-f16c-777f-a5ce-6eda28606160 0199e69e-d3db-7aad-b345-2a8288b0135d Does trigger the
transfer-destination-request
event - not passing object or any value in arguments 0199e698-4916-711a-9fba-44681a74bb4f 0199e694-5f02-7ff5-9006-f085e1a99e51
@User
c
For the transfer-destination-request webhook to fire, the assistant should call the transfer function without any arguments. **Fix**: Update the system message to: 1. Remove the instruction to pass arguments 2. Tell the assistant to call the transfer function with no arguments when it needs to determine the destination dynamically
2 Views