BPM Basics: Multiple Ways to Start a Process

Published on

By Tom Debevoise

Processes can start for multiple reasons. For instance, a customer process might start with a phone call, a web form, or a chat. So BPMN must be able to model these situations.

In BPMN 2.0, there are several ways to start processes with multiple events. First there is the ‘multi-start’ event which looks like this:

BPM Basics Multi start event

‘multi-start’ event

Because the specific events that start the process are not shown with this shape, multiple events can be hard to understand. Generally, a multiple event is “shorthand” notation for multiple events triggering a process. Triggers could include messages, timers, conditions, conditions, signals, escalations and other event types.

When a modeler is working with a requirement to start a process multiple ways, we suggest the multiple-event gateway. With event based gateways, a path is chosen based on an event. For example, the process is started when a query request arrives, and a condition denotes that the status of the process is cancelled or a 24hour timer expires. The model below shows an example of handling all these events from one gateway.

BPM Basics: bpmn-diagramm

bpmn model

The event-driven exclusive gateway can come at the start of a process, or in a sequence as an intermediate shape. When the gateway is at the start of the process, the event shape inside the diamond is the start multiple start event (single thin line). The figure shows the use of the intermediate, event-driven gateway after an ordinary start of a process.

The BPMN2.0 spec also has a starting form with a single thin circle at the center. We end the pattern with a data-based exclusive merge because with the ‘exclusive’ type of the multi-start gateway. There is also an inclusive form of the event-gateway, where all of the events must occur for the process to proceed.

BPMN is a powerful way to model your process. Understanding when to use the multi start gateway is critical because processes often are started by multiple events.