Skip to main content

BPMN Elements Reference

A complete reference for every element you can place, connect, and configure in the EW-FLOW editor.

The BPMN Editor provides a curated set of elements drawn from the BPMN specification. Only the elements listed on this page are available standard BPMN elements that do not apply to EW-FLOW workflows have been removed to keep the editor focused and easy to use.

Events​

Events represent points in time during a workflow when it starts, when it ends, and when it pauses for external input.

Start Event​

PropertyValue
IconThin circle
BPMN typebpmn:StartEvent
PaletteYes
ConfigurableYes (the start's variable)

The entry point of a Session. A Process has one Start Event per Channel it answers: the Standard Module's StartTask is the Chat / API start, and each Module that receives a Channel (a phone call, WhatsApp or SMS, Slack, an email, a hosted form, a record change, a reminder) provides that Channel's own start. When a Session is triggered, the Token is created at the Start Event serving its Channel and begins moving through the diagram; a Process with a single Start Event runs it for every trigger.

Each start writes one variable with what its Channel received: {chat}, {call}, {message}, {slack}, {email}, {form}, {reminder}, ... Every one has from, to, channel and isTest, so the steps after the starts read the same fields whichever Channel the Session came from. Connect the starts to the first step they share: Input, Output and End Tasks work on every Channel, and a feature only one Channel has (keypad digits, WhatsApp buttons) is a Task of that Channel's Module.

Two Start Events serving the same Channel are an error (8024). Timer starts (the Scheduler Module's schedule steps) run only on their schedule and can sit beside the others.

Replace menu: lists the starts of the installed Modules, grouped by Module, each with the Channels it serves; can also convert to End Event. A StartTask that still runs another Channel through the old shared start (from before that Channel had its own start) shows a warning in its settings, with a Replace button that turns it into that Channel's start and keeps its id, name and Sequence Flows.

End Event​

PropertyValue
IconBold (thick border) circle
BPMN typebpmn:EndEvent
PaletteYes
ConfigurableNo

The termination point of the workflow. When the Token reaches an End Event, the Session is marked as completed and no further Tasks execute.

Replace menu: can only convert to Start Event.

Intermediate Catch Event (Message)​

PropertyValue
IconDouble-bordered circle with envelope
BPMN typebpmn:IntermediateCatchEvent
PaletteYes (via intermediate event icon)
ConfigurableYes (via Module Task type)

Pauses the Token and waits for an external message before continuing. In practice, the Standard Module's InputTask is mapped to this element it waits for the end user to send a message on the active Channel.

Replace menu: can convert between Message Catch, Message Throw, Start Event, and End Event.

Intermediate Throw Event (Message)​

PropertyValue
IconDouble-bordered circle with filled envelope
BPMN typebpmn:IntermediateThrowEvent
PaletteYes (via intermediate event icon)
ConfigurableYes (via Module Task type)

Sends a message and continues execution without waiting. In practice, the Standard Module's OutputTask is mapped to this element it sends a message to the end user on the active Channel.

Call Activity​

PropertyValue
IconRounded rectangle with a thick border
BPMN typebpmn:CallActivity
PaletteVia the replace menu of a Task (Call Activity)
ConfigurableYes: the process to call (Standard Module's CallProcessTask)

Runs another process of the workspace as one step, then continues after it. Use it to split a very big flow into a main process and one process per topic, or to share a part (identification, hand-off to an operator) between processes.

  • Process to call: pick the process, then one of its environments, or Match by environment name so a development environment calls the called process's development environment. The step runs the version deployed there at that moment.
  • The called process runs in the same conversation and execution: it sees the variables set so far and its changes stay. Its start and end events don't run their tasks.
  • The name of the end event the called process finishes on is the call activity's output: name the outgoing flows after those end events to route on how it ended, or use a single flow.
  • The context pad's Open the called process opens it in a new tab.
  • Deploying is refused, with the reason, when a Call Activity's process couldn't run in the environment you deploy to: no process picked, the called environment missing (with Match by environment name: no environment of that name), inactive, or with nothing deployed. Deploy the called process first. Saving without deploying is never blocked.
  • Errors: no process picked or not found 8020, its environment inactive or not deployed 8021, calls nested more than 5 deep or a process calling itself 8022.
PropertyValue
IconDouble-bordered circle with an arrow (outlined on the catch, filled on the throw)
BPMN typebpmn:IntermediateThrowEvent / bpmn:IntermediateCatchEvent with a link definition
PaletteVia the replace menu of an intermediate event (Link Intermediate Throw / Catch Event)
ConfigurableLink name only (no Module Task)

A link throw ends its path and the run continues at the link catch with the same link name, in the same process. Use them in big flows to replace long arrows that cross the diagram: a second menu that sends each choice into the branch the first menu opens, "talk to an operator" exits from several branches, a shared ending. The run takes exactly the same steps as with a direct arrow.

  • A throw has no outgoing flow; a catch has no incoming flow and one outgoing flow.
  • Several throws may jump to one catch; each catch needs its own link name.
  • Click a link event to edit its link name in the side panel (a throw picks from the existing catch names) and to see the other side of the jump; the Go to button and the arrow in the context pad jump there.
  • A throw whose name no catch has stops the run with error 8018; two catches with one name with 8019.

Replace menu: can convert between Message Throw, Message Catch, Start Event, and End Event.

Activities​

Activities represent work performed during the workflow.

Task​

PropertyValue
IconRounded rectangle
BPMN typebpmn:Task
PaletteYes
ConfigurableYes

The primary building block. When placed from the palette it is a generic Task with no behavior. Use the right-click replace menu to convert it to a specific Module Task type (e.g., LanguageTask, StringNormalizationTask, OpenAIAgentTask).

After conversion, the Task displays its name at the center and its type label at the bottom-right corner. Click the Task to open the configuration side panel and set its properties.

Replace menu: shows "Convert to ..." entries for every Task type registered by the Modules installed in the current Process.

The JavaScript Module's JSTask is a Task like the others: drop a Task and pick JSTask in the replace menu, and switch it to another Task type the same way. Flows saved before it became a Task drew it as a script task; the editor shows those as Tasks too, and they keep running unchanged.

Gateways​

Gateways control branching and merging of Sequence Flows.

Exclusive Gateway​

PropertyValue
IconDiamond with X marker
BPMN typebpmn:ExclusiveGateway
PaletteYes
ConfigurableYes (via SwitchTask from Standard Module)

Routes the Token down exactly one of multiple outgoing paths. The Standard Module's SwitchTask is mapped to this element it compares a Session variable against configured conditions and selects the matching output.

Each outgoing Sequence Flow should be labeled to match one of the SwitchTask's configured outputs.

Replace menu: no other gateway types are available. Parallel, Inclusive, Complex, and Event-Based Gateways have been removed.

Connections​

Sequence Flow​

Sequence Flows are the arrows that connect elements and define execution order. Draw one by dragging from an element's connection point to another element.

  • On Exclusive Gateways, label each outgoing flow to match the output value that should trigger that path.
  • The flow taken when no case of a Switch gateway matches (its Default branch, ok when blank) is drawn with a slash, the BPMN default-flow marker. It is updated when you save the gateway's settings.
  • Sequence Flows have no configurable properties beyond their label.

Removed elements​

The following standard BPMN elements are not available in EW-FLOW:

CategoryRemoved Elements
Sub ProcessesCollapsed, Expanded, Transaction, Ad-Hoc Sub Process
GatewaysParallel, Inclusive, Complex, Event-Based
Typed TasksService Task, User Task, Manual Task, Business Rule Task, Send Task, Receive Task
ContainersParticipant / Pool creation from the palette
DataGroup (from the palette), Data Object, Data Store
MarkersLoop, Sequential Multi-Instance, Parallel Multi-Instance
info

EW-FLOW replaces typed BPMN Tasks with a generic Task + Module type system. Instead of a "Service Task" or "User Task," you place a generic Task and convert it to the specific Module Task you need.

Branch boxes in big flows​

When a process is written by the AI assistant (or saved as DSL through MCP), the diagram is laid out automatically. A big flow (30 elements or more) that splits into branches, such as a menu with "claim", "quote" and "payment", gets one horizontal band per branch with a dashed box around it (a BPMN Group) named after the flow that opens the branch. Groups are only a drawing aid: they don't change how the process runs, and they are recomputed on the next DSL save.

Finding an element​

Use Find in the toolbar, or Ctrl/Cmd+F on the editor, to search elements by name, id, task type (for example SwitchTask lists every switch) or link name, and jump to them.