Custom Variables

Pass dynamic data into your AI assistant's prompt to personalize every conversation.

Last updated: April 19, 2026
Last updated:

Custom variables allow you to inject dynamic, contact-specific data into your AI assistant's system prompt at the time of each call. Instead of a generic script that treats every caller the same, your assistant can reference the caller's name, account number, appointment date, or any other relevant information — making the conversation feel genuinely personalized.

This is particularly powerful for outbound campaigns. When you import leads with custom data fields, those fields become available as variables that your assistant can reference. A lead with the fields first_name: "Sarah" and appointment_date: "May 15" can receive a call that opens with "Hi Sarah, I'm calling to confirm your appointment on May 15" — automatically, for every lead in the list.

Using Variables in Your Prompt

Variables are referenced in your system prompt using double curly brace syntax: {{variable_name}}. When the call is made, the platform substitutes the actual value for each variable before passing the prompt to the AI.

Example System Prompt with Variables

You are a friendly assistant calling on behalf of Sunrise Dental. You are calling {{first_name}} {{last_name}} to confirm their appointment on {{appointment_date}} at {{appointment_time}}. Your goal is to confirm the appointment or reschedule if needed.

Available Variable Sources

Lead Data Fields

Any field in your lead record — including standard fields (first_name, last_name, email) and custom fields you defined during import.

System Variables

Built-in variables provided by the platform, such as {{caller_phone}} (the number being called), {{current_date}}, and {{current_time}}.

API Parameters

When triggering calls via the API, you can pass any custom variables as parameters in the API request.

Handling Missing Variables

If a variable is referenced in your prompt but no value is available for a particular lead, the platform will substitute an empty string by default. To avoid awkward gaps, write your prompt to handle missing values gracefully — for example, "You are calling {{first_name || "the customer"}}" will fall back to "the customer" if no first name is available.