Skip to content

Workflows

Connections

Reference block outputs with normalized names, nested fields, and array indices.

Connections determine when blocks run. Connection tags read values from blocks that have already run. This page covers tag syntax and common output shapes; data flow explains how those values become available.

Tag syntax

Code
<blockName.path.to.data>
  • blockName is the source block's name. Matching ignores case, whitespace, and periods: a block named My Agent resolves through <myagent.content>.
  • The field path is case-sensitive.
  • variable, loop, and parallel are reserved prefixes for workflow variables and container context.

Type < in a supported field to open the reference picker, or drag an available output into the field:

Nested and array fields

Use dots for object fields and brackets for array indices:

Code
<agent.tokens.total>
<api.data.results[0].id>
<api.data.users[0].name>

Multiple array indices, such as items[0][1], are supported. Check the output panel for the actual structure; a path depends on what the source block produced.

Using tags in text and code

Text fields can combine a reference with static text:

Code
Customer <start.customerId> requested: <start.message>

In a Function block, use referenced values in code:

Code
const name = <start.name>
const total = <api.data.total>
return { greeting: `Hello, ${name}!`, totalWithTax: total * 1.1 }

Function references preserve value types for JavaScript or Python: strings remain strings, objects remain objects, and null remains null. In ordinary text fields, objects are JSON-stringified and primitives become text. Confirm a value is numeric before calculating with it; convert numeric text explicitly when needed.

When a known source block did not run on the selected path, its reference resolves empty: usually "", or null in Function code. An unknown block name can remain unsubstituted, while an invalid field can fail resolution. These are different problems; inspect the source output and the run's active path.

Common block outputs

These abbreviated examples use blocks named Agent, API, Function, Condition, Router, and Evaluator. Replace that name with your source block's normalized name. Additional and optional fields depend on the block and runtime.

Code
{
  "content": "The generated response",
  "model": "claude-sonnet-5-5",
  "tokens": { "input": 120, "output": 85, "total": 205 },
  "toolCalls": { "list": [], "count": 0 }
}

Read text with <agent.content> and tool activity with <agent.toolCalls.list> or <agent.toolCalls.count>. A successful structured response exposes its fields at the top level, except names overwritten by standard metadata. See Agent response format for naming guidance, provider support, and malformed-output behavior.

Was this helpful?
Suggest an edit