Skip to main content

Inbound Runtime Variables

When an inbound call is bridged to an agent, Callaro passes a set of runtime_vars to the voice runtime in addition to the usual variables. Your prompt can branch on these to greet the caller appropriately, acknowledge the campaign they’re returning to, or skip the introduction entirely. These variables are only present on inbound calls. Outbound prompts continue to use existing campaign/contact variables.

Variables

The full list of canonical contact variables (e.g. contact.first_name, contact.metadata.*) is also resolved when a contact is matched.

Sample prompt branches

You can branch greetings and intent based on routing_reason. Pseudocode for the agent prompt’s opening lines:
For non-conversational logic (tools, branches), prefer routing_layer since the value is stable across product renames.

Tips

  • The task_id and follow_up_id are already closed by the time the agent answers. Do not call task-completion tools again — instead, use the IDs to look up history when you need it.
  • direction == "inbound" is the easiest gate to keep inbound-only language out of outbound prompts.
  • For DID fallback (routing_reason == "did_fallback"), most inbound-specific variables are null. Treat it like a cold inbound call.
  • If you see routing_reason == "no_active_match", smart routing decided no agent was eligible; the call was bridged to the DID’s agent (or unknown agent) anyway. This is rare and usually indicates an agent went inactive between the inbound webhook and the bridge.