Skip to content

Data structure

Most workflow problems are data-shape problems. A node may be working correctly, but the next node cannot use the result because the value is nested in a different field, because there are many items instead of one, or because two branches are combined differently than expected.

This page explains the mental model to use before reaching for expressions or custom code.

Agentic WorkFlow passes data as items. An item is one JSON-like object with named fields.

{
"title": "Quarterly report",
"url": "https://example.com/report",
"summary": "Revenue increased across three regions."
}

Most nodes receive a list of items and return a new list of items. A list can contain one item, many items, or no items.

[
{ "title": "Page A", "url": "https://example.com/a" },
{ "title": "Page B", "url": "https://example.com/b" }
]

When a downstream node receives two items, it usually runs once for each item. That is why a workflow that starts with ten links can produce ten HTTP requests, ten AI summaries, or ten rows in an integration.

Every node has a simple contract:

flowchart LR
  Input["Input items"] --> Node["Node settings + logic"]
  Node --> Output["Output items"]
  Output --> Next["Next node"]

  style Node fill:#e8f5e9,stroke:#2e7d32

The next node does not know what you meant. It only sees field names and values. If the previous node returns pageText but the next node expects text, you must map or rename the field.

Use Edit Fields when you need to create, rename, or reshape fields. Use Pick Field when you want to pass only a smaller part of the item forward.

The most important question is: how many items does this node output?

Output shapeWhat it meansCommon example
One itemThe workflow has one record to continue withA page screenshot result
Many itemsThe next node repeats for each recordA list of links or images
Empty listNothing continues on that branchA filter removed every item
Nested dataOne item contains an array or object inside itA response with items: [...]

Nested arrays are not the same thing as multiple workflow items. If a node returns { "links": [...] }, the next node receives one item with a links field. If it returns [{ "url": "..." }, { "url": "..." }], the next node receives two items.

When a node has multiple incoming connections, Agentic WorkFlow keeps the data from each parent separate so the downstream node can tell where each value came from.

flowchart TB
  A["Get All Links\n2 items"] --> C["Combine or use together"]
  B["Get Page Metadata\n1 item"] --> C
  C --> D["Next node receives linked data"]

  style C fill:#e1f5fe,stroke:#0277bd

If one branch produces two items and another produces one item, the downstream step may need to pair them, merge them, or choose one side as the source of truth. Use Merge when you want explicit control over how branches are combined.

Before writing an expression, inspect the previous node output and answer these questions:

  1. Is the value on the current item or inside a nested object?
  2. Is there one item or many items?
  3. Does each item have the same fields?
  4. Did the data come from one parent node or multiple parent nodes?
  5. Should the next node repeat per item, or should the list be combined first?