Expressions, Run Inputs & the Data Store
Logic nodes are only as useful as the data you feed them. Three features let workflows read, compute, and remember values: expressions, declared run inputs, and the cross-run data store.
Expressions
Anywhere a node takes a value, you can write an expression instead of a fixed string. Expressions are wrapped in double braces and can reference results from earlier steps, the workflow's inputs, the current loop item, and the data store:
- Pull a field out of an earlier step's output
- Combine or transform values inline — join text, pick a field, simple conditionals
- Reference the current item while inside a loop
This is what lets a switch decide a branch, or a prompt include "the customer's name from step 1" without hand-copying anything.
Declared run inputs
Instead of burying the values a workflow needs deep inside its nodes, a workflow can declare its inputs up front. When someone runs it, they get a clean, guided form — a labelled field per input, with the right control type and required-field validation — rather than a wall of raw JSON.
- Define each input once (name, label, type, whether it's required)
- Runners fill in a friendly form
- Any node can reference an input by name in an expression
This makes a workflow safe to hand to a teammate: they fill in the form, they never touch the internals.
The cross-run data store
By default, each run starts fresh. The data store is a key/value memory that persists between runs, so a workflow can remember things from last time.
- Set and get values by key
- Increment counters, set-if-absent to initialize once, plus delete and list
- Use the per-workflow reserved store, or a named store shared across workflows
Typical uses: "what was last week's total, so I can show the change," "which records have I already processed," or "a running counter across daily runs." Your plan caps how many stores you keep, how many records each holds, and the size of each value.
Putting it together
A weekly report workflow might declare a "reporting week" input → loop over each account → use an expression to compute the week-over-week delta from last week's number in the data store → write this week's number back to the store for next time. Inputs feed it, expressions compute with it, and the data store remembers across runs.