Umair Ameen
12/04/2025, 6:08 PMVapi Support Bot
12/04/2025, 6:09 PMfirstMessage property to reference that context. For example:
json
"transferAssistant": {
"firstMessage": "Hi, I have a customer on the line. Reason: {{reason}}. Are you available?",
"maxDurationSeconds": 90,
"model": { "provider": "openai", "model": "gpt-4o" }
}
Make sure your assistant collects the reason variable before the transfer—this will be available for dynamic insertion in the message according to the documentation you have found.
Source:
- [Assistant-based warm transfer](https://docs.vapi.ai/calls/assistant-based-warm-transfer)Chiranjeet Mishra
12/07/2025, 4:35 PMreason from the caller before initiating the transfer. You can use a system prompt or setup in your assistant to gather this information.
2. **Configure Transfer Assistant**: Set the firstMessage in the transferAssistant configuration to include the dynamic reason. Here’s an example configuration:
json
{
"transferAssistant": {
"firstMessage": "Hi, I have a customer on the line. Reason: {{reason}}. Are you available?",
"firstMessageMode": "assistant-speaks-first",
"maxDurationSeconds": 90,
"model": {
"provider": "openai",
"model": "gpt-4o"
}
}
}
3. **Ensure Context is Passed**: Make sure that the reason variable is correctly populated in the assistant's context before the transfer. This will allow dynamic insertion into the transfer message.
By ensuring that the assistant collects and passes the reason variable, your transfer assistant can dynamically inform the operator, thus preventing the need to hard-code this information. For further details, you can refer to the [Assistant-based warm transfer documentation](https://docs.vapi.ai/calls/assistant-based-warm-transfer).