Skip to main content

Data between steps

Every step can use what the earlier ones produced. In Studio, that happens through the Data button — you never type a technical path.

What is available​

SourceContains
InputWhat the agent received when it was triggered
Earlier stepsWhat each completed step produced
The runEnvironment, identifier, who asked, and the current attempt
The triggerHow the run was started

And, only inside the "For each item" step, two local sources:

Local sourceContains
The itemThe list element being handled on this pass
The indexThe item's position, starting at zero

Outside the loop they do not exist, and the picker does not offer them. If a reference to them escapes outside, publishing is refused — rather than silently becoming empty during the run.

The picker shows what exists at that point​

The list of available data is computed for that step, at that point in the flow. A step that runs before another cannot see what the other will produce.

This is not just convenience: publishing proves that every reference points at a step that runs earlier. An impossible reference is refused with the step's name, not discovered in production.

What each step produces​

StepProduces
Call an APIThe code, the JSON body, the text body, the headers, whether it truncated
Run an automationThe automation's result, whether anything changed, the duration
AI taskThe answer text, how many tools it used and — if you declared them — the fields
Generate with a modelThe generated text, the model used, the stop reason, tokens
Prepare dataExactly the object you assembled
ConditionThe evaluated value and the true/false reading
Choose a pathThe chosen path, the evaluated value, and whether any matched
Combine resultsThe combined value, the sources with no data, and how many brought data
For each itemThe results, the failures, how many were handled, and the total
Human approvalWhether it was approved, who decided, and the comment
WaitWhen it resumed and how long it waited
Call another agentThe child run's identifier and its result

Declared fields are worth a lot​

An AI task with no declared output produces only text. With declared fields, each field becomes separately available to the following steps — and the step becomes verifiable.

It is the difference between the next step receiving a paragraph and receiving category = "finance".

Prepare data​

When what the next step needs is not exactly what the previous one produced, use Prepare data: you assemble it field by field, choosing where each value comes from. No code is executed.

Typical uses:

  • joining data from two steps into a single object;
  • renaming fields to the format an external system expects;
  • pinning constant values alongside dynamic ones.

Missing data​

A path pointing at something that does not exist returns empty, and does not break the run. That is what makes optional fields workable.

But note: a step that was skipped by a condition produced nothing, and referencing it returns empty. If empty is a problem there, handle it explicitly — in Combine results, for example, by choosing to fail when a source brings no data.

Limits​

LimitValue
Size of what enters a run256 KiB
Text produced by joining data64 KiB

Next steps​