BPMN Diagrams – How To Use Start Events

BPMN Diagram

Examples showing how and when to use the 6 different types of start events in business process modeling notation (BPMN) diagrams.

Background

We presented an introduction to BPMN diagrams last week. Business analysts are often required to document as-is processes and to-be processes. These diagrams help identify the scope of a software project. The diagrams can also help uncover requirements that might be overlooked without diagramming the processes.

The BPMN specification is designed to establish a common language and convention for creating process diagrams. This common convention allows people who are familiar with modeling, but new to a project to avoid learning a new diagramming language on each project or for each client. We have a link to the official version of the spec in our introductory post (we will update that link if and when the spec changes).

Start Events

Each business process has some form of initiating event. In BPMN terminology, it is called a start event. There are six different types of start events that we can include in a BPMN model.

  • None – the modeler does not specify the start event.
  • Message – a message triggers the start of the process.
  • Timer – a time, a date, or a recurring time or date triggers the start of the process.
  • Rule – evaluation of a rule initiates the process.
  • Link – this represents the start of a sub-process that is part of a larger process.
  • Multiple – more than one form of trigger can initiate the process.

Start Event Legend

None

When we aren’t certain of, or do not want to specify the start of a process, we can use the empty circle, or none start event. We also use this start event when the trigger for the process is irrelevant.

Example of the 'none' start event

In this BPMN diagram example, the process shows that we first get our eggs, then scramble them and eat them for breakfast. We don’t indicate why the process was started. It could be because we were hungry, because we’re on a dietary schedule, or because our mom told us we had to eat our breakfast. We don’t know, or care. Trying to figure out what triggers the egg scrambling process doesn’t help us understand the process any better – so we use the none start event.

Message

When a process is initiated by an outside actor sending us a message (telling us to start the event), we use the message start event.

Example BPMN diagram of the message start event

This BPMN diagram example shows a process of getting water, giving it to a child, and returning to bed. The process is initiated by the receipt of a message. We become aware that the child is complaining of thirst and unable to sleep. When we receive that message, we initiate the process of getting water for the child.

Timer

The timer event is used in BPMN diagrams to indicate that the process begins at a set time or date. It can also be used for processes that repeat on a schedule (hourly, daily, etc).

BPMN diagram example of the timer start event
In our example, on the actor’s wedding anniversary, he buys a gift, gives it to his spouse, and then enjoys their anniversary. This process is triggered by the timing of the anniversary.

Rule

A business process that is initiated according to the evaluation of a rule or condition is initiated with a rule start event. A rule can have any amount of complexity or simplicity.

BPMN diagram example of rule start event

In this BPMN diagram example, the rule might be “If caller ID indicates a friend or family member.” When the rule evaluates to true, the process is started. In this process we answer the phone, talk, and then hang up the phone. But we only do this if the call is from a friend or family member.

Link

A link start event is a special case. It indicates that we are looking at a sub-process, or part of a larger process. In the larger process, the flow will enter into a sub-process activity, at which point the flow transitions to our detailed process diagram. The sub-process starts at the link start event and continues to the end event. When the detailed process reaches the end event, the flow returns to the larger, or parent process.

BPMN diagram example with link start event and sub-process

In this BPMN diagram example, we start with a modified version of our egg-scrambling process. Note that the “Scramble Eggs” activity has been changed from a task to a sub-process. The diagram on the right shows the sub-process.

The entire flow reads as follows:

  • [parent process] Unknown start event
  • [parent process] Get Eggs
  • [parent process] Initiate Scramble Eggs sub-process
  • [sub-process] Link start event
  • [sub-process] Stir Eggs
  • [sub-process] Apply Heat
  • [sub-process] Stir Eggs
  • [sub-process] If not done, return to Stir Eggs
  • [sub-process] end event – returns flow control to parent process
  • [parent process] Eat breakfast
  • [parent process] end event

Multiple

A business process may be initiated by any of multiple different events. When we don’t know or care what those events are, we can use the none start event. When the process initiator is important, we use the multiple start event. Additional notes or documentation will indicate the possible starting events.

BPMN Diagram example of multiple start event

Our television watching process (turn on tv, watch tv, turn off tv) could be initiated because we want to be entertained, or because we want to be educated. This might matter because it could impact what channel we watch. We might be turning it on at a precise time, every morning, to check for school closings. We might just want the tv for background noise while we do something else. Since we care about how the process is initiated, we use the multiple start event instead of the none start event.

Summary

We now know which of the 6 BPMN start events to use in any BPMN diagram. We should use the BPMN diagramming standard to make our diagrams consistent within and across projects.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>