Skip to main content
Runs a subgraph once for every item in a list. Connect the body you want to repeat to the Loop Body output port. Inside the loop, the current item is available in the configured item assign — read it with an Assign Read node (or let Attribute nodes pick it up as the subject, if it’s a defdata struct). Assigns are shared across iterations: whatever iteration N writes, iteration N+1 sees. Handy for accumulating counters or per-item side effects.

Configuration

  • Source list assign — assigns key holding the list to iterate.
  • Current item assign — the loop body reads the item from here.
  • Collect — optional. One row per value you want out of the loop: name the assign to collect into, and pick where the value comes from (same sources as Flow Compose). Each named assign is emptied when the loop starts and gets one entry appended per successful iteration, so the list is ready to use straight after the loop — no accumulator to reset, and it stays correct when this loop sits inside another one.

Control flow

  • Halt branch inside an iteration (e.g. from a Flow Guard) stops that iteration but the loop continues with the next item.
  • Halt flow (from a Flow Guard set to halt flow, or any unrecoverable error) stops the whole run immediately.

Tips

  • Pair with Flow Filter first to narrow the list down — iterating a filtered list is usually cheaper and clearer than guarding inside the loop body.

Ports