> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.vapi.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.vapi.ai/_mcp/server.

# Static variables and aliases

> Inject server-controlled values into Vapi tool calls without the LLM, using static variables and aliases to chain data across calls deterministically.

Vapi tools support two features that let you move data between tool calls deterministically, without relying on the LLM to interpret or forward values:

* **Static variables (parameters)** inject fixed or template-resolved values into every tool call, regardless of what the LLM generates.
* **Variable extraction (aliases)** pull specific fields out of a tool's JSON response and store them for use in subsequent tool calls.

Combined, these features enable **deterministic tool chaining** -- Tool A fetches data and extracts variables, Tool B receives those variables automatically. The LLM orchestrates *when* tools run, but the data flow between them is fully controlled by you.

The four pages in this section cover each mechanism in turn, then the failure modes that come up most often.

## In this section

#### [How tool variables work](/tools/static-variables-and-aliases/how-variables-work)

Understand the two parameters fields and the trust tiers that classify where a value came from.

#### [Set static parameters](/tools/static-variables-and-aliases/static-parameters)

Inject server-controlled values into every tool call without exposing them to the model.

#### [Extract and chain values](/tools/static-variables-and-aliases/extract-and-chain)

Pull fields out of a tool response with aliases and pass them to the next tool.

#### [Troubleshoot tool variables](/tools/static-variables-and-aliases/troubleshooting)

Diagnose the five common ways static parameters and aliases fail.

## Next steps

Now that you understand static variables and aliases:

* **[Passing data between assistants](/squads/passing-data-between-assistants):** Choose the right primitive for forwarding context across handoffs in a squad.
* **[Function tools](/tools/custom-tools):** Learn how to create and configure Function tools.
* **[Tool rejection plan](/tools/tool-rejection-plan):** Add conditions to prevent unintended tool calls.
* **[API reference](/api-reference/tools/create):** See the complete tool creation API reference.