# BPMN sequence and message flows The two line types are the most commonly misused part of BPMN. A sequence flow is control within one pool; a message flow crosses between pools. Getting this wrong makes a diagram that looks fine and is formally meaningless. --- ## When it matters * Any diagram with more than one pool. * Processes involving a customer, a supplier or an external system. --- ## The symbols | **Symbol** | **Means** | | ---------------- | --------------------------------------------------------- | | Sequence flow | Solid arrow, filled head. Order within a single pool. | | Conditional flow | Solid arrow with a small diamond at its source. | | Default flow | Solid arrow with a slash near its source. | | Message flow | Dashed arrow, open head. Between pools, never within one. | | Association | Dotted line. Links an artifact to a flow element. | --- ## A few things that catch people out * Sequence flow can never cross a pool boundary. If you have drawn one that does, it should be a message flow. * Message flow can never connect two elements in the same pool. * The default flow is what happens when no condition matches. Without it, a gateway can stall. --- ## Related [BPMN pools and lanesWho is taking part, and who does what.](https://help.gocapable.com/diagrams/bpmn-pools-and-lanes.html) [BPMN data objects and storesWhat the process reads and writes.](https://help.gocapable.com/diagrams/bpmn-data-objects-and-stores.html) [BPMN notation referenceBack to the full symbol reference.](https://help.gocapable.com/diagrams/bpmn-notation-reference.html) --- _Sequence flow stays inside the pool._