Penstock

Guide / Draw and edit

BPMN elements

Every element you can draw, what it is for, and how to find it.

Free

Add an element

  1. Look at the palette, the floating island beside the canvas. It has the elements most diagrams need.
  2. Drag one onto the canvas. Or click it, then click on the canvas.
  3. For any other element, press Create element at the foot of the palette. Type to search, or open a group.

The same catalogue opens from the pad of an element you have selected. There it appends the element you choose to the selected one, already connected.

The palette

It is a floating island rather than a strip of the window: sixteen pixels in from the left edge of the canvas, vertically centred, rounded, and never more than three quarters of the height of the canvas, so a palette with more entries than that scrolls inside the island. The canvas is inset so nothing sits under it. See Editing a diagram.

ItemWhat it is for
Hand toolMoves the canvas without selecting anything.
Lasso toolSelects everything inside a rectangle.
Space toolAdds or removes empty space. Everything past the line you drag moves.
Global connect toolDraws a connection that starts from any element.
Start eventWhere a process or a path begins.
Intermediate / boundary eventSomething the process waits for or sends partway. Dropped on the border of a task, it becomes a boundary event.
End eventWhere a path ends.
GatewayA split or a join of the path.
TaskA step of work.
Expanded sub-processA process drawn inside another.
Data object referenceData that lives as long as the process instance.
Data store referenceData that outlives the instance.
Pool / participantAn organisation or system taking part.
GroupA visual box around elements. It has no meaning when the process runs.
Create elementOpens the catalogue.

The catalogue

Tasks

TaskAn unspecified step. Often a placeholder.
User taskWork a person has to do.
Service taskAutomated work done by a job worker or a connector.
Business rule taskEvaluates a business rule, usually a DMN decision.
Script taskRuns a script. On Camunda 7 the script can open as an editor tab. See Scripts in their own tab.

Gateways

Exclusive gatewaySends the token down one path, chosen by data.
Parallel gatewaySplits into parallel paths, or joins them.
Event-based gatewayFollows the path of whichever event happens first.

Sub-processes

Call activityCalls another process, like a function call.
TransactionA sub-process that completes as a whole, or is compensated.
Event sub-processA sub-process started by an event in its scope.
Sub-process, collapsedShown as one box. Double-click to open it in its own view.
Sub-process, expandedDrawn inline, with its contents.
Ad-hoc sub-processActivities run in any order, any number of times. Collapsed or expanded.

Events

Events are grouped by where they sit in the flow, because the same trigger means different things in each place.

Start eventsWhere a process or path begins.
Intermediate catch eventsWait for something to happen, then continue.
Intermediate throw eventsSend something, then continue.
Boundary eventsReact to something while a task runs. An interrupting one cancels the task. A non-interrupting one leaves it running.
End eventsWhere a path ends.

Inside each group are the triggers BPMN defines: message, timer, error, escalation, signal, compensation, conditional, link and terminate. Only the ones that are allowed in that place are offered.

A timer boundary event named Escalation timer selected on the lower edge of the task Review credit hold. The sidebar shows Timer boundary event with the groups General, Documentation and Timer
A boundary event sits on the border of its task. Selected, it shows its own groups in the sidebar.

Data and participants

Data object reference and data store reference are drawn as in the palette. A pool stands for an organisation or a system. Two pools in one diagram make a collaboration. Only a message flow may cross between pools. Lanes divide a pool by role or department. They carry no meaning when the process runs.

Collapse and expand an event sub-process

Select an event sub-process and open the change-element menu (the wrench). It offers to collapse the sub-process into one box, and to expand it again. bpmn-js offers this only for ordinary sub-processes. Penstock adds it for event sub-processes, in every diagram type.

Colours and the grid

The context pad carries a colour picker, and the canvas carries a grid that elements snap to. Both are free, and both are in the Classic BPMN profile as well as in the Camunda ones.

Change an element into another

Select it and press the wrench on its pad. The menu offers what the element can legally become. The name, connections and properties that still apply are kept.

What changes with the engine

The palette and the catalogue are the same for every engine. What changes is what the properties panel offers and which namespace is written into the file. See Engines.

What you see

Common problems

I cannot find an element in the palette.
Use Create element. It has every element.
My boundary event will not attach.
Drop it on the border of a task or sub-process, not inside.
I need a Camunda-specific task, for example a connector.
Use an element template on a service task.