Variables & Personalization

View as Markdown

Variables make each conversation dynamic: greet callers by name, carry data through the call, and capture structured results afterwards.

The Variables tab

Open the Variables tab in the agent to manage variables. It splits them into Input variables and Output variables, and lists each with its value. Use Add to create one, and the ··· actions menu to Edit or Delete a variable.

The Variables tab on Input variables, listing developer_name and gender with default values, plus Search and Add.

Input variables: name, default value, and Add.

The Variables tab on Output variables, with a Successful when goal rule and a table of output variables including call_disposition and next_step_agreed.

Output variables: data type, extraction description, and the call-goal rule.

Agent variables

There is really only one kind of variable: the agent variable. “Input variables” and “output variables” are just frontend labels for how you use one, not different types or separate storage.

Any agent variable can be:

  • Used to personalize the conversation (these appear as input variables), for example greeting the caller by name.
  • Set to update after the interaction, so the agent extracts them from the conversation once the call ends (these appear as output variables), for example a disposition or resolution.

The same variable can do both. And because they are all agent variables, tools can read and write them too (see Using variables in tools).

Input variables

Input variables personalize the conversation: greeting the caller by name, tailoring the pitch, and so on. Each has a name and a default value. At runtime they are populated from sources such as:

  • Telephony metadata (for example, the caller’s number)
  • An on-start hook response
  • Campaign row fields for outbound calls

Controlling context sent to the LLM

Each input variable has a toggle that controls whether it’s sent to the LLM. It’s on by default, so the value is included in the agent’s context. Turn it off to not send it in the context anymore.

Output variables

Output variables are post-call extraction variables: the agent extracts them from the conversation, creating and enriching your data from every call (disposition, interest, resolution, and so on). Each output variable has:

  • Data type: String or Enum. For an Enum, define the allowed values (for example, agreed_to_resume / not_interested).
  • Extraction prompt: describe how to extract the value from the conversation. Genie can Improve the prompt for you.

Edit output variable modal for next_step_agreed, with Data Type set to String, an Improve button on the Extraction Prompt, and Save Changes.

Edit output variable: name, data type (String or Enum), and extraction prompt.

Call goal

On the Output variables tab, define success with a Successful when rule: <variable> <operator> <value> (for example, call_disposition = agreed_to_resume). Every call is then scored against this goal, which powers the success and outcome insights in Agent Analytics.

Output variables tab with Successful when call_disposition equals, and a value dropdown open showing enum options such as wrong_person.

Successful when: set the call goal from an output variable and value.

Using variables in tools

Because input and output variables are all agent variables, tools can read and write them. For example, the API tool can pass agent variables in its request and store the response (or results) back into agent variables.

In analytics

Every agent variable surfaces as the call’s final agent variables in Agent Analytics, and the call goal drives the success insights.

PII flagging and privacy transforms

Mark variables that contain personal data and apply privacy transforms (mask, hash) as needed.