falseVacuum
09/10/2025, 7:16 PMtransfer-destination-request webhook never fires. Instead, the assistant
immediately transfers the call to a default/random SIP destination.
For example:
{
"type": "transferCall",
"function": {
"name": "transfer",
"parameters": {
"type": "object",
"properties": {
"reasonForCalling": {
"description": "The reason the customer is calling. If not sure, use 'other'.",
"type": "string",
"enum": ["parts", "service", "other"],
"default": "other"
}
},
"required": []
},
"description": "Use this tool when transferring a call."
},
"messages": [{ "type": "request-start", "blocking": false }],
"destinations": []
}
Even when configured exactly as shown in your documentation
(see: https://docs.vapi.ai/assistants/examples/support-escalation),
the assistant skips the webhook and tries to transfer directly to
sip:parts@mysipuri.com.
---
Is this expected behavior, or has the transfer-destination-request webhook
simply not been tested in SIP environments?Vapi Support Bot
09/10/2025, 7:17 PMfunction object in your dynamic transfer tool may not be supported and can prevent the transfer-destination-request webhook from firing. According to the documentation, the recommended approach is to define the transfer tool with an empty destinations array and no extra properties in the function object:
json
{
"type": "transferCall",
"destinations": [],
"function": { "name": "dynamicDestinationTransferCall" }
}
Try removing custom properties from the function and use only the minimal structure above to ensure the webhook is triggered as expected.
[See documentation](https://docs.vapi.ai/calls/call-dynamic-transfers#respond-to-transfer-requests)
Source:
- [Dynamic Call Transfers](https://docs.vapi.ai/calls/call-dynamic-transfers#respond-to-transfer-requests)Chiranjeet Mishra
09/12/2025, 4:11 PMJessica
10/09/2025, 9:24 PMVapi Support Bot
10/09/2025, 9:25 PMdestinations array and no custom properties in the function object to ensure the transfer-destination-request webhook fires:
json
{
"type": "transferCall",
"destinations": [],
"function": { "name": "dynamicDestinationTransferCall" }
}
If you need to track the bug or request an update, consider reporting your case to Vapi support with your configuration and environment details.
Source:
- [Dynamic Call Transfers](https://docs.vapi.ai/calls/call-dynamic-transfers#respond-to-transfer-requests)Chiranjeet Mishra
10/13/2025, 7:16 PMCreateTransferCallToolDTO object includes a type with the value transferCall.
- Specify the transferMode within TransferDestinationAssistant if transferring to an assistant, and use rolling-history or swap-system-message-in-history as options.
- If transferring to a phone number, include TransferDestinationNumberType.
For further assistance with the setup of transfer tools, ensure that all required fields in the TransferPlan and CreateTransferCallToolDTO are correctly filled as indicated in the [API documentation](https://docs.vapi.ai/api-reference/webhooks/client-message).
Feel free to reach out if you need more details on this process.