Skip to Content
Flower 3.6.0 is released 🎉 See what's new
BPMN Reference· 8 min read· Updated November 2026

BPMN Events

In short: An event is something that happens during a process. It is drawn as a circle. The border tells the position: a thin line is a start event, a double line an intermediate event, a thick line an end event. The symbol inside tells the type: an envelope is a message, a clock a timer, a lightning bolt an error.

🛠️

Guide: Trigger Jira Automation sets up throw events, Set Due Dates with Timers sets up deadlines, and End a Process covers end events.

Events in BPMN represent things that happen. A process can react to events (catching events) as well as emit events (throwing events). For example, a catching message event makes the token continue as soon as a message is received.

Events can make a token wait at a certain point, and they can interrupt the progress of a token.

Flower executes a subset of the BPMN events: throw events, timer, conditional, error, and escalation boundary events, and the none start, none end, and terminate end events. Catch events are not supported yet. Events that Flower does not support can be modeled but are ignored during execution. See BPMN Coverage in Jira for the complete overview.

Events in General

Events in BPMN are either thrown (sent) or caught (received). They are called throw events and catch events, for example message throw event or timer catch event.

BPMN distinguishes three positions:

PositionTypePurpose
Start eventCatch event, because it can only react to somethingMarks the beginning of a process or sub-process
Intermediate eventThrow event (something happens) or catch event (wait and react)Sits in the normal flow or is attached to an activity
End eventThrow event, because it indicates that something has happenedMarks the end of a sequence flow

An intermediate catch event can be inserted into the process in two contexts: in the normal flow, or attached to an activity. In the second case it is called a boundary event.

All BPMN Events at a Glance

The table shows every event type of BPMN 2.0 (rows) in every position where the standard allows it (columns). The events that Flower executes are marked in green. All others can be modeled and are ignored during execution. Click a type to read what it does.

StartIntermediateEnd
TypeNormalEvent
Sub
process
Event
Sub
process
non-
interrupt
CatchBoundaryBoundary
non-
interrupt
Throw
None
Start EventCircle
None Intermediate Throw EventDouble circle
None End EventThick circle
Message
Message Start EventCircle with mail symbol
Message Event SubprocessCircle with mail symbol
Message Event Subprocess Non-interruptDashed Circle with mail symbol
Message Event CatchDouble Circle with mail symbol
Message Event BoundaryDouble Circle with mail symbol
Message Event Boundary non-interruptDouble dashed Circle with mail symbol
Message Event ThrowDouble Circle with gray mail symbol
Message End EventThick Circle with gray mail symbol
Timer
Timer Start EventCircle with clock symbol
Timer Event SubprocessCircle with clock symbol
Timer Event Subprocess non-interruptDashed Circle with clock symbol
Timer Event CatchDouble Circle with clock symbol
Timer Event BoundaryDouble Circle with clock symbol
Timer Event Boundary non-interruptDouble Dashed Circle with clock symbol
Conditional
conditional start eventcircle with note symbol
conditional event subprocesscircle with note symbol
conditional event subprocess non-interruptdashed circle with note symbol
conditional catch eventdouble circle with note symbol
conditional boundary eventdouble circle with note symbol
conditional throw eventdouble dashed circle with note symbol
Link
link catch eventdouble circle with right arrow symbol
link throw eventdouble circle with gray right arrow symbol
Signal
signal start eventcircle with triangle symbol
signal event Subprocesscircle with triangle symbol
signal event Subprocess non-interruptdashed circle with triangle symbol
signal catch eventdouble circle with triangle symbol
signal boundary eventdouble circle with triangle symbol
signal boundary non-interrupt eventdouble dashed circle with triangle symbol
signal throw eventdouble circle with gray triangle symbol
signal end eventthick circle with gray triangle symbol
Error
error event subprocesscircle with lightning symbol
error boundary eventdouble circle with lightning symbol
error end eventthick circle with gray lightning symbol
Escalation
escalation event subprocesscircle with compass arrow symbol
escalation event subprocess non-interruptdashed circle with compass arrow symbol
escalation boundary eventdouble circle with compass arrow symbol
escalation boundary non-interrupt eventdouble dashed circle with compass arrow symbol
escalation throw eventdouble circle with gray compass arrow symbol
escalation end eventthick circle with gray compass arrow symbol
Terminate
termination end eventthick circle with a solid gray circle
Compensation
compensation event subprocesscircle with rewind symbol
compensation boundary eventdouble circle with rewind symbol
compensation throw eventdouble circle with gray rewind symbol
compensation end eventthick circle with gray rewind symbol
Cancel
cancel boundary eventdouble circle with x symbol
cancel end eventthick circle with gray x symbol
Multiple
multiple start eventcircle with pentagon symbol
multiple event Subprocesscircle with pentagon symbol
multiple event Subprocess non-interruptdashed circle with pentagon symbol
multiple catch eventdouble circle with pentagon symbol
multiple boundary eventdouble circle with pentagon symbol
multiple boundary non-interrupt eventdouble dashed circle with pentagon symbol
multiple throw eventdouble circle with gray pentagon symbol
multiple end eventthick circle with gray pentagon symbol
Multiple Parallel
multiple parallel start eventcircle with plus symbol
multiple parallel event subprocesscircle with plus symbol
multiple parallel event subprocess non-interruptdashed circle with plus symbol
multiple parallel catch eventdouble circle with plus symbol
multiple parallel boundary eventdouble circle with plus symbol
multiple parallel boundary non-interrupt eventdouble dashed circle with plus symbol

How to read the columns:

  • Start: the event begins a process (Normal) or an event sub-process, which either interrupts its parent or runs next to it (non-interrupt, dashed border).
  • Intermediate, Catch: the process waits in the flow until the event happens.
  • Intermediate, Boundary: the event sits on the border of an activity and reacts while the activity runs. Interrupting, it cancels the activity. Non-interrupting (dashed border), the activity goes on.
  • Intermediate, Throw: the process makes the event happen and goes on. The symbol is filled.
  • End: the path ends and the event happens. The symbol is filled.

Supported Events at a Glance

Event typeSupported in FlowerWhat happens
NoneStart, intermediate throw, endThe process starts, passes the event, or ends the flow
MessageIntermediate throwFlower sends a request to a webhook URL
SignalIntermediate throwFlower sends a request to a webhook URL
EscalationIntermediate throw, boundary (interrupting and non-interrupting)Throw: Flower sends a request to a webhook URL. Boundary (Forge and Data Center): when the work item is moved into the selected Jira status, Flower starts the path of the event
LinkIntermediate throwFlower sends a request to a webhook URL

In the Forge version of Flower the throw events do not call a URL (the app sends no data to other servers). They trigger a Jira Automation rule instead, see Sync Magic and Moving to Atlassian Forge. | Timer | Boundary, interrupting and non-interrupting | Flower sets the due date of the work item and starts a timeout path | | Terminate | End | Flower ends the whole process and closes all open work items | | Conditional | Boundary, interrupting and non-interrupting | When the work item is resolved and the condition is true, Flower takes the path of the event | | Error | Boundary (interrupting) | When the work item is resolved in the selected Jira status, Flower takes the path of the event | | Compensation, cancel, multiple, multiple parallel | Not supported | Can be modeled but is ignored |

Intermediate Events

Throw event with a webhook URL in the properties panel

In a typical flow, an intermediate throw event executes its action as soon as the token reaches it, for example it sends a message. When it is complete, the token continues to all outgoing sequence flows (1). Read more about throw events and webhooks.

An intermediate catch event stops the token and waits until the awaited event occurs. Then the execution resumes and the token moves on (2). Intermediate catch events are currently not supported in Flower.

Boundary Events

A boundary event models what should happen if an event occurs while an activity is active. For example, a user task takes too long. A timer boundary event on the task has an outgoing sequence flow to a notification task, which reminds the user. Read more about timers.

A timer boundary event on an activity and its properties Type Duration and Value P5D, highlighted in red

A boundary event must be an intermediate catch event. It is either interrupting (1) or non-interrupting (2):

  • Interrupting: When the event is triggered, the activity it is attached to ends before the process takes the outgoing sequence flow. Use it to model timeouts that cut off a path, for example when the process takes too long.
  • Non-interrupting: The activity continues, and the process follows both flows.

The example also contains a terminate end event. It ends all parallel flows at once and closes all open work items of the process. See BPMN End Events.

Event Types in Detail

The headings in this section are the link targets of the coverage overview.

None Events

A none event has no trigger.

  • The none start event starts the process.
  • The none end event ends its flow. Parallel flows continue, and the process instance ends when the last flow is done. Then Flower resolves its work item and sets the Jira resolution if the workflow does not, see BPMN End Events.
  • The none intermediate throw event passes the token on. If you enter a webhook URL, Flower calls it first.

Message Events

Flower supports the message intermediate throw event. When the token reaches it, Flower sends an HTTP POST request to the webhook URL from the properties panel and then continues. This is how a process calls a Jira Automation rule or an external service. See Sync Magic.

Message start events, catch events, boundary events, end events, and event sub-processes are not supported.

Timer Events

Flower supports the timer boundary event, interrupting and non-interrupting. It sets the due date of the work item and starts a timeout path when the date passes. You define the timer with an ISO 8601 date, duration, or repeating interval. See Set Jira Due Dates with Timer Events.

Timer start events, catch events, and event sub-processes are not supported. All timer variants and the ISO 8601 formats are explained in BPMN Timer Events.

Error Events

The error event in BPMN, with all its positions: BPMN Error Events.

Flower supports the error boundary event. A person throws the error by resolving the work item of the activity in a Jira status, for example Cancelled: you select this status for the event. Flower ends the activity and takes the path of the event instead of the normal one. See End a Task with an Error Status. Error start, end, and event sub-process variants are not supported yet.

Signal Events

Flower supports the signal intermediate throw event. It works like the message throw event and calls the webhook URL. Signal start, catch, boundary, end, and event sub-process variants are not supported.

Escalation Events

The escalation event in BPMN, with all its positions: BPMN Escalation Events.

Flower supports the escalation intermediate throw event. It works like the message throw event and calls the webhook URL.

Flower for Jira Cloud on Forge and Flower for Data Center also support the escalation boundary event, interrupting and non-interrupting (the Connect app does not). A person or a Jira Automation rule escalates by moving the work item of the activity into a Jira status, for example Escalated: you select this status for the event. Flower starts the path of the event at once, while the work item is open. See Escalate a Task with a Jira Status. To escalate work that is overdue, use a timer boundary event. Escalation end events and event sub-processes are not supported.

Terminate Events

Flower supports the terminate end event. It ends the whole process instance and closes all open work items. Closing them does not continue the process. See BPMN End Events.

Flower supports the link intermediate throw event. It works like the other throw events. Link catch events are not supported.

Conditional Events

The conditional event in BPMN, with all its positions: BPMN Conditional Events.

Flower supports the conditional boundary event, interrupting and non-interrupting. When the work item of the activity is resolved, Flower evaluates the condition (an expression like on an XOR gateway). If it is true, the process takes the path of the event, for example Rejected or Cancelled. See Branch on the Outcome of a Task with Conditional Boundary Events. Conditional start, catch, and event sub-process variants are not supported.

Other Event Types

Compensation, cancel, multiple, and multiple parallel events are not supported. You can model them, but Flower ignores them during execution.

Read More

Last updated on