Skip to content
← All terms

Loop

An activity repeated until a condition is met, BPMN’s way of showing "do this until" without drawing a back-arrow.

What a loop activity is

A loop activity is an activity with a small circular-arrow marker at its bottom. It means "run this activity repeatedly until a loop condition is satisfied". BPMN 2.0 recognises two loop styles. A *standard loop* is sequential (each iteration completes before the next starts) and behaves like a while loop in code. A *multi-instance* loop runs several iterations in parallel (or sequentially, with a flag), each on its own piece of data, behaving like a for-each over a collection.

Loops look deceptively simple but they hide a lot of semantics: what counts as "one iteration", where the iterations share state, whether cancellation applies to all iterations or just the current one, whether output data is aggregated across iterations or kept per-iteration. BPMN 2.0 provides attributes to express all of these; hand-drawn diagrams usually leave them implicit.

Loop vs explicit back-arrow

  • Use a loop activity when you retry the *same* activity until it succeeds: "call the customer, retry if no answer, up to 3 attempts". The loop marker is compact and expresses intent.
  • Use an explicit back-arrow when the loop body contains multiple activities or different branches: "try the credit check, if it fails try the alternate one, if that fails escalate".
  • Use a multi-instance loop when you iterate over a collection: "for each line item on the invoice, look up the tax rate".
  • Avoid loops for infinite or unbounded retry. If there is no well-defined exit condition, the process is undefined; add a timer boundary event to force termination.

Loops in LucidFlow

LucidFlow emits loops when the source document uses retry language ("if the vendor does not respond, try again up to three times") or collection language ("for each invoice in the batch"). The cost dashboard handles loops by multiplying activity cost by the expected number of iterations, so the "per-instance" cost you see is accurate even when the loop runs 5× on average. In the target AI-transformed BPMN, loops are a frequent target for automation. A loop executed by a human ten times a week is a clean candidate for a Copilot or Automation-tier agent.

Frequently asked questions

What happens if the loop condition never becomes false?

The process runs forever (or until the engine times out). BPMN 2.0 does not enforce a bound; the modeller is responsible for ensuring termination. A timer boundary event is the usual insurance policy.

Can a sub-process be a loop?

Yes. The loop marker can sit on a sub-process as well as on a task. That is actually the cleanest way to loop over a multi-step body.

What is the difference between a standard loop and a multi-instance loop?

A standard loop is sequential and re-evaluates a condition each iteration. A multi-instance loop iterates a fixed number of times (typically once per element in a collection) and can run those iterations in parallel. Different markers, different semantics, different use cases.

Related terms

← Back to the full glossary