The Loop block repeats a set of steps once for every item in a list, typically {{result}} from an earlier Database Query or Call External API block that returned an array.
Wiring one up
Draw a connection from the Loop block into whatever should run for each item, then connect that chain's last block back to the Loop block to close the cycle. Use its other, separate outgoing connection for whatever should run once, after every item has been processed (mark it "Done"). Inside the loop's body, {{item.field}} refers to the current item's fields.
Limits
A Loop has its own "max iterations" setting, and the endpoint interpreter has an overall hard step limit, so a malformed or unexpectedly large loop can't run away indefinitely.
Nested loops
A loop inside another loop's body works, and each keeps its own independent state correctly across outer iterations. The one real requirement: give an inner loop's item a different name from any outer loop's, since all loop variables share one flat namespace, reusing a name overwrites the outer one for the rest of that iteration.