Personalization
Overview
Personalization allows you to adapt your agent’s behavior for each individual user, enabling more natural and contextually relevant conversations. ElevenLabs offers multiple approaches to personalization:
- Dynamic Variables - Inject runtime values into prompts and messages
- Overrides - Completely replace system prompts or messages
- Conversation initiation webhooks - Fetch that data from your server when a conversation starts
Personalization Methods
Define runtime values using {{ var_name }} syntax to personalize your agent’s messages, system
prompts, and tools.
Completely replace system prompts, first messages, language, or voice settings for each conversation.
Fetch dynamic variables and overrides from your server for inbound conversations.
Conversation Initiation Client Data Structure
The conversation_initiation_client_data object defines what can be customized when starting a conversation. Clients can send it directly. A conversation initiation webhook returns the same object.
System dynamic variables (those prefixed with system__) cannot be sent or overridden in the
client initiation payload. Only custom dynamic variables can be set via the dynamic_variables
field.
Conversation initiation webhooks
For inbound telephony and messaging, ElevenAgents can fetch this initiation data from your server instead of from the client. When the webhook is enabled, ElevenAgents sends a POST request and applies the JSON you return.
Configure the webhook URL and header secrets in Agents settings. On the agent Security tab, enable Fetch initiation client data from a webhook and any override fields your response may include.
The webhook runs for a new inbound conversation on Twilio voice, Exotel, SIP trunk, WhatsApp, or Twilio SMS when initiation client data is not already present.
Outbound Twilio voice, Exotel, SIP, and WhatsApp calls trigger it only if the outbound request did not include conversation_initiation_client_data. Outbound WhatsApp messages never trigger it — pass dynamic variables on the outbound request instead.
It does not run for widget or SDK conversations, other messaging integrations, or resumed WhatsApp and SMS threads.
Preview conversations started from the agent settings page do not trigger conversation initiation webhooks. Use the Dynamic Variables placeholders in the agent editor while testing in Preview. Those placeholders are not used in production inbound conversations.
ElevenAgents sends caller context in the request body:
caller_id and called_number are phone numbers on Twilio, Exotel, SIP, and SMS. On inbound WhatsApp they are the WhatsApp user ID and your WhatsApp phone number ID. On outbound calls, caller_id is your number and called_number is the person being dialed. call_sid is the provider call SID on telephony and an empty string on WhatsApp and SMS. SIP calls may also include call_id and sip_headers.
Your response must use the conversation_initiation_client_data shape above. Include every custom dynamic variable the agent defines. Overrides are optional and must be enabled in Security.
A failed or timed-out webhook can prevent the conversation from starting. For Twilio setup, see Twilio personalization. This webhook is separate from post-call webhooks.