A workflow execution carries a single accumulating object — the context (Documentation Index
Fetch the complete documentation index at: https://docs.anyreach.ai/llms.txt
Use this file to discover all available pages before exploring further.
ctx) — that grows as each step runs. Understanding ctx is the key to writing expressions that reference data from any earlier step.
The context object
When a workflow starts,ctx contains the trigger data and any input provided:
ctx gets a new key named after that step ID:
ctx contains every step’s output.
Referencing data with expressions
Suppose your workflow has executed two steps so far:- n1: a manual Input step
- n2: an Action step
ctx) at this point might look like:
customer_email value produced by the Input step n1, use this expression:
n1 refers to the step ID, and customer_email is the specific key from that step’s output.
See Referencing step output for the full syntax reference.
What each step contributes to ctx
| Step | What it adds to ctx |
|---|---|
| Trigger | The trigger payload (conversation data, timer metadata, or external app event) |
| Action | Whatever the action returned from the native or Pipedream operation |
| Condition | The label of the matched branch (or null for default) |
| Code | Whatever the Python function returned |
| HTTP API | { status_code, headers, body } |
| Output | The defined output fields — also ends the execution path |
| Wait | { waited_seconds } |
| Input | The user-defined input fields provided at run time |
Type preservation
Expressions preserve types when the entire field value is an expression. When mixed with text, they coerce to string.Working with lists
There is no built-in loop step. To iterate over a list, use a Code step:Referencing Upstream Step Data in the Current Step
Each step’s configuration form includes smart input components that allow you to easily select properties from upstream steps. This makes it simple and error-free to insert expressions referencing outputs from previous steps. When you choose a variable using the variable selector, the correct expression is automatically inserted into your configuration field.

{{n1.name}} where n1 is the id of the Input step.
