Advanced

    Dynamic Variables

    Pass per-call values into your prompt, and read the ones urvo provides

    Overview

    A dynamic variable is a placeholder you write into an agent's prompt, greeting or tool configuration, and fill with a different value on every call. It is how one agent greets a thousand people by name instead of saying "Hi there" to everyone.

    You reference one with double curly braces:

    Hi {{customer_name}}, I'm calling about your order {{order_id}}.

    There are two kinds:

    • Custom variables that you declare and supply.
    • System variables that urvo fills in automatically, covered below.

    Declaring a custom variable

    Open the agent, go to Configuration, and find Dynamic Variables. Add each variable with a name and a default value.

    Naming rules:

    • Letters, numbers and underscores only.
    • Must start with a letter or an underscore — it cannot start with a number.
    • Cannot begin with system__, which is reserved for urvo's own variables.

    Always set a default

    The default is used whenever a call does not supply a value. This is the single most important thing to get right on this page:

    If a prompt references a variable that was never declared, and no default exists, the call fails. It does not quietly substitute an empty string or leave the placeholder text in place. So a typo in a prompt placeholder, or a CSV column you forgot to include, becomes a failed call rather than a slightly odd greeting.

    Give every variable a sensible default even when you expect it to always be supplied — for example there for a first name, so a missing value produces "Hi there" instead of a dropped call.

    Supplying values per call

    A value can reach a call from several places:

    • Outbound campaigns. Any column in your recipient CSV that is not a recognised override column is passed through as a dynamic variable. A customer_name column fills {{customer_name}}. See outbound calls.
    • Workflows. The call-initiating and call-scheduling actions accept call context that becomes available to the agent. See urvo pieces.
    • Tool responses. A webhook tool can extract fields from its JSON response into dynamic variables mid-conversation, so a value looked up on the call becomes usable later in the same call. See webhook tools.

    System variables

    urvo injects these automatically on every call. They are read-only — you reference them but never declare or set them. The dashboard lists them behind a System variables reference dialog in the same section.

    VariableValue
    system__caller_idThe caller's phone number, on inbound calls
    system__called_numberThe number that was dialed
    system__call_duration_secsCall duration so far, in seconds
    system__time_utcCurrent time in UTC, ISO 8601
    system__timezoneThe agent's configured timezone
    system__conversation_idUnique id for this conversation
    system__agent_idThe agent handling the call

    A useful pattern: pass system__caller_id into a webhook tool to look the caller up in your own system before the agent says anything substantive.

    Note that system__time_utc is UTC. If you want the agent to reason about the caller's local working hours, combine it with system__timezone rather than assuming the two match.

    Troubleshooting

    SymptomCauseFix
    Calls fail immediatelyThe prompt references a variable that is not declared and has no defaultDeclare it with a default, or fix the placeholder spelling.
    Agent says the default instead of the real valueNothing supplied a value for that callCheck the CSV column name or workflow mapping matches the variable name exactly.
    Variable name rejectedStarts with a number, contains a hyphen or space, or uses the system__ prefixRename using letters, numbers and underscores, starting with a letter.
    Placeholder read aloud verbatimSingle braces, or a mismatched nameUse double braces and confirm the name matches the declared variable.

    Next steps

    • Overrides — change the agent's language, greeting or voice per call rather than injecting values.
    • Agent instructions — writing prompts that use variables well.
    Was this page helpful?