> Source: https://docs.virtuo.in/vio/agents/variables > Define the structured fields your Vio voice agent collects from each caller — name, budget, slot, order id — and read them back in call logs and exports. # Variables **Variables are the structured fields you want your Vio agent to collect from every caller. After each call Vio extracts these values, shows them on the call in [Call logs](/vio/call-logs), and includes them in exports and the [Fulfilment webhook](/vio/agents/analysis-actions-fulfilment).** Define them once on the Variables tab and the agent knows what to listen for on every call. ## What a variable is Each variable is one piece of information the agent should gather during the conversation — a caller's full name, their budget, a preferred slot, an order id. A variable has: - A stable **key** — a short machine name like `full_name` or `order_id` that stays the same across calls, so your CRM and exports line up. - A short **description** telling the agent what to collect and, if useful, the format you expect. You don't script the questions. The agent works your variables into the natural flow of the conversation and Vio pulls the answers out afterwards. ### Example | Key | What the agent collects | Example value | |---|---|---| | `full_name` | The caller's full name | Priya Sharma | | `budget` | Budget or price range they mentioned | ₹40–50 lakh | | `preferred_slot` | When they'd like a callback or visit | Saturday morning | | `order_id` | The order or booking reference | ORD-10482 | ## Where the collected values go Once the call ends, Vio extracts each variable and makes it available in three places: 1. **Call logs** — shown on the individual call alongside the transcript and summary. See [**Call logs**](/vio/call-logs). 2. **Exports** — included when you export calls. 3. **Fulfilment webhook** — sent in the `call.completed` payload under `variables{}` so your CRM or automation can act on them. See [**Analysis, actions & fulfilment**](/vio/agents/analysis-actions-fulfilment). ## Two directions — collected vs. personalisation variables Vio has variables that flow in **two directions**, and it's worth keeping them straight: | | Collected variables (this page) | Personalisation variables | |---|---|---| | Direction | Extracted **out of** the call | Fed **into** the call | | Source | What the caller says | Your campaign CSV / `{{name}}` | | Where set | The **Variables** tab | The greeting and system prompt | | Example | `budget`, `order_id` | `Hi {{name\|there}}` | Personalisation variables (the `{{...}}` placeholders in the greeting and prompt) are covered in [**Persona & prompt**](/vio/agents/persona). This page is only about the data you collect **from** the caller. Collected values are treated as caller PII — stored privately, scoped to your workspace, and never shared across tenants. ## Frequently asked **Q. Do I have to write the questions the agent asks for each variable?** No. You list what to collect and the agent asks naturally in context. Vio extracts the answers after the call — you just define the field and its key. **Q. What if the caller never gives an answer for a variable?** That variable is simply left empty for the call. A missing value doesn't fail the call or drop the line. **Q. How are collected variables different from `{{name}}` in the greeting?** `{{name}}` and other `{{...}}` placeholders are personalisation values fed **into** the call from your CSV (see [**Persona & prompt**](/vio/agents/persona)). Collected variables are extracted **out of** the call from what the caller says. ## Next Give the agent something to *do* with what it learns in [**Tools**](/vio/agents/tools), or push finished calls to your systems with [**Fulfilment**](/vio/agents/analysis-actions-fulfilment).