Blocks
Get from store
The get-from-store step: read one keyed row from a workspace data store, or pull a batch of rows that still need work.
Read from a workspace data store — the durable tables your workflows share. Two modes:
- by_key — fetch one row by its key.
- list — fetch a batch of rows still missing a field: the work-queue read.
Config
Store, mode, and the key (or the missing-field filter).
- Store — pick the store (created in Settings → data).
- Row key (by_key) — template-rendered:
{{ payload.id }}. - Missing field (list) — a literal field name; returns only rows whose data lacks it. Batch size defaults to 50 (cap 500), keyed ascending so batches are deterministic.
Output
// by_key — a missing row is NOT an error:
{ "found": true, "key": "41051", "data": { "fee_cents": 7600 }, "updated_at": "…" }
// list:
{ "rows": [ { "key": "…", "data": { … } } ], "count": 50 }
Patterns
- Lookup + branch — by_key → if on
payload["found"]— cache-style "have we seen this?" checks. - Work the queue — list with a missing field →
loop over
payload["rows"]→ do the work → save to store keyed{{ payload.item.key }}. Each run drains one batch;count: 0means done.
Gotchas
- A missing row returns
found: false, never a failure — branch on it when absence matters; don't rely on the step stopping the run. - Row fields live under
data: reference{{ payload.data.fee_cents }}, not{{ payload.fee_cents }}.