
Behavior when a variable is undefined at runtimeIf a variable is referenced in a node but no value has been provided, the platform renders an empty string by default.
Where Dynamic Variables Are Supported
Dynamic variables can be used in any nodes inside SigmaMind:
- Agent Responses – Personalize replies with customer details.
- Email Templates – Insert variables like
{{ customer_email }}or{{ order_id }}. - Campaigns – Pass variables from campaign uploads or APIs to customize conversations.
- Webhooks and Integrations – Include context-specific variables in outbound data.
Dynamic variables make your AI agent feel more personal and context-aware without requiring manual customization for each interaction.
Sources of Dynamic Variables
Dynamic variables can come from multiple sources:
Variables can be populated from different sources. Use the table below to select the right source for your integration pattern, then refer to the corresponding section for implementation details.| Source | Trigger | Best for | Real-time? |
|---|---|---|---|
| API | API request containing a variables object | Backend-driven personalization for calls, chats, or workflows | Yes |
| Campaign CSV Upload | Batch campaign creation via CSV or API | Large-scale outreach with pre-defined contact data | No (pre-loaded) |
| Inbound Webhook | Customer initiates an inbound call | Real-time CRM lookup and dynamic routing for inbound calls | Yes |
| Custom Headers | Call creation or transfer with metadata | Passing structured, non-conversational metadata between systems | Yes |
| Conversation Extraction(Extract Varable) | Agent captures data during the conversation | Collecting user-provided data naturally during interaction | Yes (live) |
1. Create Call API
When creating a call via the API, you can pass custom variables in thevariables object.
2. Campaign Uploads
When uploading a CSV file for a campaign, include columns for any variables you want to use.3. Inbound Webhooks (Receive Calls)
When a user calls your number, you can dynamically inject variables using an Inbound Webhook.Request Payload
Response
Your endpoint should return a JSON response with a 2xx status code, containing upto 2 optional fields. The following fields are available:dynamic_variables: use this to define dynamic variables specific to this inbound call.override_agent_id: if you want to override the agent id, you can set it here.
End-to-end flow
- Customer dials your SigmaMind number.
- SigmaMind sends the inbound_call payload to your webhook URL.
- Your system performs a CRM or database lookup using from_number.
- Your system returns dynamic_variables
- SigmaMind connects the agent with all returned variables pre-loaded.
- The agent begins the conversation with full customer context already available.
Use when:
- Handling inbound calls
- Fetching real-time customer data
- Routing calls dynamically
4. Custom Headers
Custom Headers allow you to send structured metadata along with a call or call transfer. They are:- Not visible to the customer
- Available to backend systems, CRMs, and receiving agents
Learn more about Custom Headers here
5. Conversation Extracted Variables
Some variables are automatically captured from the conversation itself. For example:- If the agent asks for the customer’s email, it can be extracted and stored as
{{ customer_email }}. - If the agent identifies an order number, it can be stored as
{{ order_id }}.
Conversation variables are context-aware and evolve as the interaction progresses.
Example Usage
- In an Agent Response
- In an Email Template
- API
- Campaign (CSV)
- Webhook
- Custom Headers
- Conversation
- Agent responses
- Tool execution
- Workflow logic
- Conversation logs
- Node logs
- System logs
- Post-conversation analysis
- Webhook outputs
View Dynamic Variables at Runtime (Dashboard)
You can view how dynamic variables are populated during a call directly from the dashboard.
Steps
- Go to Conversations from the left sidebar
- Click on any call or chat
- Open the Dynamic Variables tab
What You’ll See
- All variables available during that conversation
- Runtime values (from API, webhook, headers, or extraction)
Why This Is Important
Use this view to:- Debug missing or incorrect variables\
- Verify data passed from API / webhook / CSV\
- Understand how variables change during runtime\
You can also see:
- Transcript → See where variables are used in conversation\
- Node Logs → Debug step-by-step execution\
- System Logs → Check backend events\
- Analysis → View post-conversation insights
Best Practices
- Always provide default values to handle missing or undefined variables.
- Keep variable names simple, consistent, and descriptive (e.g., customer_name, order_id).
- Validate and sanitize inputs from external sources such as API, CSV uploads, webhooks, and headers.
- Use the right source for the right use case (API for real-time data, CSV for campaigns, webhook for inbound calls, headers for metadata).
- Prefer conversation-extracted variables to reduce manual data collection during interactions.
- Avoid overloading variables with complex or nested data—keep values clean and usable.
- Test variable population during simulation to ensure values are correctly passed at runtime.
Summary:
- Dynamic Variables use the
{{ variable_name }}format and allow you to inject real-time data into your agent. - They are populated at runtime from sources like API calls, CSV campaigns, inbound webhooks, custom headers, and conversation inputs.
- They can be used across all agent nodes to enable personalized, context-aware, and fully automated interactions.
Dynamic variables empower your AI agent to adapt responses to each customer’s context, making conversations more natural and engaging.