Md Mahiuddin
06/08/2026, 8:54 AMassistant.started, which means the assistant has already started before my CRM lookup completes.
I also tested returning values using:
json
{
"assistantOverrides": {
"variableValues": {
"customer_name": "John"
}
}
}
but the returned variable is not available in the assistant's first message.
Could you please advise:
1. Is there a supported way to perform a CRM lookup before the assistant's first message is generated?
2. For inbound calls on a Vapi Hosted Number, is there an Assistant Request event, pre-call hook, or another mechanism that allows dynamic variables to be injected before the greeting is spoken?
3. What is the recommended approach for personalizing the first greeting using CRM data retrieved from an external system such as n8n?
Any documentation, examples, or recommended architecture would be greatly appreciated.
Thank you for your time and support.
Best regards,
MD MAHIUDDINJulio
06/08/2026, 8:58 AMMd Mahiuddin
06/08/2026, 9:02 AMJulio
06/08/2026, 9:06 AMShaunak
06/08/2026, 1:36 PMShaunak
06/08/2026, 1:36 PMassistant-request webhook to your Server URL before the assistant starts, including the caller's phone number in the payload
4. Your n8n workflow receives this, does the CRM lookup, and returns the assistant configuration with a personalized firstMessage or variableValuesShaunak
06/08/2026, 1:36 PMjson
{
"assistantId": "your-assistant-id",
"assistantOverrides": {
"firstMessage": "Hi John, thank you for calling MD Smart Services. How can I help you today?",
"variableValues": {
"customer_name": "John"
}
}
}Shaunak
06/08/2026, 1:36 PMHi {{customer_name}}, thank you for calling MD Smart Services... and pass the name through variableValues.Shaunak
06/08/2026, 1:36 PMassistant-request fires before the assistant starts, while assistant.started fires after. That's why the variable wasn't available in time.Shaunak
06/08/2026, 1:36 PM