Events
Something that happens during the process: start, intermediate or end. Each event combines a type (message, timer, error…) with a position. See the full matrix of valid combinations.
- Intermediate Message Event
Pauses the flow until a specific message arrives from another participant. Double thin circle with a light (unfilled) envelope.
- None Start Event
Marks where the process begins when no specific trigger is modeled. Drawn as a circle with a single thin border and no icon inside.
- Message Start Event
Starts a new process instance when a message arrives from another participant. Thin circle with a light (unfilled) envelope icon.
- Timer Start Event
Starts the process at a defined moment: a specific date, a recurring cycle, or after a duration. Thin circle with a clock icon.
- Conditional Start Event
Starts the process when a business condition becomes true (e.g. stock below minimum). Thin circle with a lined-paper icon.
- Signal Start Event
Starts the process when a broadcast signal is caught. Thin circle with a triangle icon. Signals have no specific addressee — anyone listening reacts.
- Multiple Start Event
Starts the process when ANY ONE of several defined triggers occurs. Thin circle with a hollow pentagon icon.
- Parallel Multiple Start Event
Starts the process only when ALL of its defined triggers have occurred. Thin circle with a filled (outlined plus) pentagon icon.
- Error Event Sub-Process Start (interrupting)
Starts an Event Sub-Process that handles an error raised anywhere in the surrounding scope; always interrupting — the normal flow is aborted. Single thin dashed?? No: drawn with a thin border circle containing the error icon, inside the event sub-process.
- Message Event Sub-Process Start (non-interrupting)
Starts an Event Sub-Process when a message arrives during the scope's execution — in the non-interrupting form (dashed border), the main flow keeps running.
- Intermediate Message Throw Event
Sends a message to another participant and immediately continues. Double thin circle with a filled (dark) envelope.
- Intermediate Timer Event
Pauses the flow for a duration, until a date, or until the next occurrence of a cycle. Double thin circle with a clock icon.
- Intermediate Signal Throw Event
Broadcasts a signal that any listening catch event — in any process — can receive. Double thin circle with a filled triangle.
- Intermediate Signal Catch Event
Pauses the flow until a matching broadcast signal is thrown somewhere. Double thin circle with an outlined triangle.
- Intermediate Escalation Throw Event
Raises an escalation to a higher scope (typically the parent process) without terminating the current flow. Double thin circle with a filled upward arrowhead.
- Intermediate Compensation Throw Event
Triggers the compensation handlers of already-completed activities — the BPMN way to “undo” finished work. Double thin circle with filled rewind arrows.
- Link Intermediate Catch Event
The receiving half of a link pair: the token reappears here after 'jumping' from the matching Link Throw. Double thin circle with an outlined arrow.
- Link Intermediate Throw Event
The sending half of a link pair: the token 'jumps' from here to the matching Link Catch. Double thin circle with a filled arrow.
- Intermediate Conditional Event
Pauses the flow until a business condition becomes true. Double thin circle with a lined-paper icon.
- Error Boundary Event
Attached to an activity's border, catches an error raised inside it and diverts the flow; always interrupting — the activity is aborted. Double circle with a lightning icon.
- Timer Boundary Event (interrupting)
A deadline on an activity: if the timer fires while the activity still runs, the activity is cancelled and the flow takes the timeout path. Double circle with a clock, solid border.
- Timer Boundary Event (non-interrupting)
Fires a parallel path on a schedule while the activity keeps running — the reminder pattern. Double circle with a clock, dashed border.
- Message Boundary Event (non-interrupting)
Reacts to a message arriving while the activity runs, on a parallel path, without disturbing the activity. Double circle with an envelope, dashed border.
- Escalation Boundary Event
Attached to an activity (usually a sub-process), catches an escalation raised inside it. Often non-interrupting: the sub-process keeps working while the parent reacts. Double circle with an arrowhead.
- Cancel Boundary Event
Attached only to a Transaction Sub-Process; catches the transaction's cancellation and routes the undo path after compensation ran. Double circle with an X.
- Compensation Boundary Event
Attaches a compensation handler to an activity: if compensation is later triggered, the linked handler undoes this activity's completed work. Double circle with rewind arrows.
- Conditional Boundary Event
Fires when a business condition becomes true while the activity runs; interrupting or not. Double circle with a lined-paper icon.
- Signal Boundary Event
Reacts to a broadcast signal while the activity runs — e.g. a global freeze or reprioritization — interrupting the work or firing a parallel path. Double circle with a triangle.
- None End Event
Ends one path of the process with no further consequence. Single thick-bordered circle, no icon.
- Message End Event
Ends the path and, as its final act, sends a message to another participant. Thick circle with a filled envelope.
- Error End Event
Ends the path by throwing an error that a surrounding scope must catch — the sub-process's way of failing loudly. Thick circle with a lightning icon.
- Escalation End Event
Ends the path while raising an escalation to the parent scope — finish here, but flag it upstairs. Thick circle with a filled arrowhead.
- Cancel End Event
Used only inside a Transaction Sub-Process: ends the transaction by cancelling it, which triggers compensation of completed steps. Thick circle with an X.
- Compensation End Event
Ends the path while triggering compensation of previously completed activities. Thick circle with rewind arrows.
- Signal End Event
Ends the path while broadcasting a signal to whoever listens. Thick circle with a filled triangle.
- Terminate End Event
Ends the ENTIRE process instance immediately: every token, in every parallel branch, is destroyed. Thick circle with a filled solid disc.
- Multiple End Event
Ends the path throwing SEVERAL results at once — e.g. a message and a signal. Thick circle with a filled pentagon.