Skip to main content

Syntax

Wrap a variable in double curly braces anywhere a field accepts text: {{params.id}}. Click the variable button next to a field to see the variables that are available there and insert one without typing. There are three roots: After the root you can read nested values with .field and list items with [index]:
Missing values don’t throw errors: if output[0] doesn’t exist, the variable is simply empty.

Whole value or inside text

How a variable is used depends on whether it is the entire field or part of a longer text: In URL fields, variables that come after other text are URL-encoded automatically. With https://api.example.com/search?q={{params.query}}, a query like red shoes becomes red%20shoes. In JSON body fields, put variables inside string values. A value that is only a variable keeps its original type:
Here age is sent as a number and tags as an array when the source values have those types.

Rules

  • A step can only use the output of a step that runs before it, meaning a step connected earlier in the chain. Otherwise the field shows Step <id> must run before this step.
  • Referencing a step that doesn’t exist shows Step <id> does not exist.
  • Any other text inside {{ }} shows Unknown variable {{...}}. Only params, env and nodes.<id>.output are allowed; there are no functions or operators inside variables.
  • Prefer secret fields such as Bearer token secret or the Database step credentials over {{env.KEY}} in free text, so secrets never appear in URLs or logs by accident.
Run the workflow once before you write variables for a step. The inspector then shows each step’s real output, so you can see exactly which fields are available.