Complex Gateway
A gateway for synchronization rules the other gateways can't express — e.g. “continue when 2 of 3 branches complete”. Diamond with an asterisk.
The Complex Gateway carries a free-form activation condition over its incoming/outgoing flows: *n-of-m* joins, weighted quorums, cancel-the-rest semantics. Powerful — and opaque: the rule lives in an expression the diagram reader can't see, so use it only when nothing simpler fits.
When to use and avoid
When to use
For n-of-m synchronization: proceed when 2 of 3 reviews are in, discard the third.
Quorum decisions: majority of approvers reached.
When decomposition into standard gateways would be far more convoluted than one clear rule.
When NOT to use
Whenever Exclusive / Parallel / Inclusive express the logic — they are self-explanatory; the complex isn't.
If the activation rule can't be written precisely — an undefined complex gateway is a modeling black hole.
In models for casual readers — expect the asterisk to raise questions.
Business example
Proceeding with 2 of 3 reviews

Open this example in the HEFLO process editor and explore the diagram from the inside.
Open in the HEFLO editor →Step by step
- Three reviews — legal, financial, technical — run in parallel.
- The Complex Gateway (highlighted, asterisk) implements “continue when any 2 have finished”; the third is no longer awaited.
- Consolidate decision proceeds with the two available opinions.
Differences
Complex Gateway vs Parallel MI with completion condition
“2 of 3” can also be modeled as a parallel multi-instance activity with completionCondition — often clearer and better supported by engines. Consider MI first; keep the complex gateway for genuinely structural cases.
FAQ
Where is the activation rule defined?
In the gateway's activationCondition expression — visible in properties, not on the diagram. Document it in a text annotation for readers.
Do engines support it?
Support is the weakest of all gateways; many engines omit it entirely. Verify before designing around it.