Concepts

Payloads

The dictionary of values every node reads from and adds to as your flow runs.

One dictionary, growing

A payload is a set of key-value pairs. The trigger creates it; each node adds its own keys and passes the whole thing on. Merging is last-write-wins, so a node only replaces keys it writes itself. Wire two nodes into one and that node waits for both, then merges both payloads.

The same payload after each node. File Changed creates six keys; Set Value, Template and Notification each add one. Nothing earlier is lost.

Reading a value with {{ }}

Write {{key}} in almost any text field. At run time it becomes that key's value; a missing key becomes an empty string, never an error.

A dot path walks into structured values: {{response.data.name}} reaches a nested key, and a numeric segment indexes a list, so {{results.0.snippet}} is the first result's snippet. An index past the end resolves to empty.

The Template inspector, with two payload keys in the text field.
The Template inspector, with two payload keys in the text field.

The last segment can be a transform instead: length, count, uppercase, lowercase, trimmed, reversed, isEmpty, first, last, lines, words, keys, values.

Values keep their shape

A key holds text, a number, true/false, an object, a list, a file path, or nothing. JSON from an AI node, an Apple Notes result list and an API Request body arrive as real objects you can navigate into — a model's markdown fence is stripped first. Prose and bare numbers stay text. Drop a whole object into a text field and it renders as compact JSON.

{{payload}} dumps everything. In most fields it expands to the whole payload as pretty-printed JSON — the fastest way to see what a node received.

A few fields differ. Interpolation is written per node, not once centrally: Condition's value and Notification's title and body resolve {{key}} and dot paths, but not {{payload}}.