BPMN Coverage

Last modified: May 7, 2026

Mendix supports a broad range of BPMN constructs, either directly on the Workflow canvas or through the wider Mendix platform.

Support Levels

Each BPMN element is marked with a support level indicator:

  • ✅ Workflow Native – Available as a dedicated construct in the workflow editor
  • 🟩 Platform Native – Available by combining workflow editor constructs with other platform editor constructs, such as logic, data, and pages.
  • 🟦 Planned – Support is planned for an upcoming release
  • ❌ Not Supported – Not currently supported in Mendix

Gateways

Element Support Level How
Exclusive Gateway (XOR) ✅ Workflow Native Decision
Parallel Gateway (AND) ✅ Workflow Native Parallel Split
Inclusive Gateway (OR) 🟩 Platform Native Use a Parallel Split with a path for each possible condition. On each path, add a Decision that checks if the condition is true. If true, execute the activities on that path. If false, the path continues directly to the merge. The workflow waits for all paths to complete before continuing. Note: There is no default or catch-all path – if you need one, model it explicitly with an additional decision.
Event-Based Gateway ❌ Not Supported Not supported.
Complex Gateway ❌ Not Supported Not supported.

Tasks

Element Support Level How
User Task ✅ Workflow Native User Task
User Task (Multi-instance Parallel) ✅ Workflow Native Multi-User Task
Service Task ✅ Workflow Native Call Microflow
Script Task ✅ Workflow Native Call Microflow
Business Rule Task 🟩 Platform Native Mendix does not support decision tables. Use Call Microflow to build your own decision logic in a microflow. The Call Microflow element has built-in branching based on the microflow return type.
Send Task 🟩 Platform Native Use Call Microflow with a Notify Workflow activity inside to send the message.
Receive Task ✅ Workflow Native Wait for Notification
Manual Task 🟩 Platform Native Use Call Microflow with no logic inside. It acts as a pass-through and continues automatically when the workflow instance arrives.

Subprocesses

Element Support Level How
Embedded Subprocess ❌ Not Supported Not supported.
Call Activity (Reusable Subprocess) ✅ Workflow Native Call Workflow
Event Subprocess ✅ Workflow Native Event Subprocess
Transaction Subprocess ❌ Not Supported Not supported.
Ad-hoc Subprocess ❌ Not Supported Not supported.

Swimlanes

Element Support Level How
Pool 🟩 Platform Native The workflow itself acts as the process boundary – one workflow equals one pool. It is not visible as a canvas element, but the construct is supported.
Lane 🟩 Platform Native Use User Task assignments with Roles and Workflow Groups to define who is responsible for each step. It is not visible as a canvas element, but the construct is supported.

Data

Element Support Level How
Data Object, Data Input, Data Output, Data Store 🟩 Platform Native Mendix does not have visual equivalents for these concepts on the Workflow canvas. You manage all data through entities defined in the domain model. Pass one entity into the workflow via the workflow parameter to create $WorkflowContext, which gives you access to business data throughout the entire workflow. $WorkflowInstance is always available alongside it for Workflow Engine data (System.Workflow). Because the context entity is always persistable, there is no distinction between temporary and persistent data. You do not need separate Data Object, Data Input, Data Output, or Data Store constructs in Mendix.

Artifacts

Element Support Level How
Text Annotation ✅ Workflow Native Use the Annotation element on the Workflow canvas to add descriptive notes.
Group ❌ Not Supported Not supported.

Events

Mendix supports a broad range of BPMN event types. Some are available directly as elements on the Workflow canvas. Others are achieved through microflows that contain workflow-related activities.

None Events

Variant Support Level How
Start ✅ Workflow Native Every workflow has one start event. Start a workflow by providing an object of the entity type that the workflow expects. Use the Call Workflow page action (for example, on a button with a data view) or the Call Workflow activity in a microflow where you pass the context object.
Intermediate Throw ❌ Not Supported Not supported.
End ✅ Workflow Native End Event

Message Events

Variant Support Level How
Start 🟩 Platform Native Same as None Start – process the message data in a microflow, create or populate an object of the entity type that the workflow expects, and start the workflow using the Call Workflow activity by passing that context object. Alternatively, use the Call Workflow page action on a page.
Event Subprocess (Interrupting) ✅ Workflow Native Interrupting Notification Event Subprocess Start
Event Subprocess (Non-Interrupting) ✅ Workflow Native Non-Interrupting Notification Event Subprocess Start
Intermediate Catch 🟦 Planned As Notification Event, use Wait for Notification activity as an alternative.
Intermediate Boundary (Interrupting) 🟦 Planned As Interrupting Notification Event.
Intermediate Boundary (Non-Interrupting) 🟦 Planned As Non-Interrupting Notification Event.
Intermediate Throw 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to send the message and continue the flow.
End 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to send the message before the process completes.

Timer Events

Variant Support Level How
Start 🟩 Platform Native Use a scheduled event to run a microflow that starts the workflow using the Call Workflow activity.
Event Subprocess (Interrupting) 🟦 Planned As Interrupting Timer Event Subprocess Start.
Event Subprocess (Non-Interrupting) 🟦 Planned As Non-Interrupting Timer Event Subprocess Start.
Intermediate Catch ✅ Workflow Native Timer
Intermediate Boundary (Interrupting) ✅ Workflow Native Interrupting Timer Event
Intermediate Boundary (Non-Interrupting) ✅ Workflow Native Non-Interrupting Timer Event

Error Events

Variant Support Level How
Event Subprocess (Interrupting) 🟩 Platform Native Use an Interrupting Notification Event Subprocess Start to catch the event, and use a microflow to handle the error logic and send a notification using a Notify Workflow activity when an error occurs.
Intermediate Boundary (Interrupting) 🟦 Planned Use an Interrupting Notification Event (Planned) to catch the event, and use a microflow to handle the error logic and send a notification using a Notify Workflow activity when an error occurs.
End 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to throw the error before the process completes.

Signal Events

Variant Support Level How
Start 🟩 Platform Native Use a microflow with multiple Call Workflow activities to start multiple workflows and deliver the signal to all instances.
Event Subprocess (Interrupting) 🟩 Platform Native Use an Interrupting Notification Event Subprocess Start to catch the event, and use a microflow with multiple Notify Workflow activities to deliver the signal to all waiting instances.
Event Subprocess (Non-Interrupting) 🟩 Platform Native Use a Non-Interrupting Notification Event Subprocess Start to catch the event, and use a microflow with multiple Notify Workflow activities to deliver the signal to all waiting instances.
Intermediate Catch 🟩 Platform Native Use a Wait for Notification activity to catch the event, and use a microflow with multiple Notify Workflow activities to deliver the signal to all waiting instances.
Intermediate Boundary (Interrupting) 🟦 Planned Use an Interrupting Notification Event (Planned) to catch the event, and use a microflow with multiple Notify Workflow activities to deliver the signal to all waiting instances.
Intermediate Boundary (Non-Interrupting) 🟦 Planned Use a Non-Interrupting Notification Event (Planned) to catch the event, and use a microflow with multiple Notify Workflow activities to deliver the signal to all waiting instances.
Intermediate Throw 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include multiple Notify Workflow activities to deliver the signal to all waiting instances.
End 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include multiple Notify Workflow activities to deliver the signal to all waiting instances before the process completes.

Conditional Events

Variant Support Level How
Start 🟩 Platform Native Use a microflow that checks the condition and starts the workflow using the Call Workflow activity only when the condition is met.
Event Subprocess (Interrupting) 🟩 Platform Native Use an Interrupting Notification Event Subprocess Start to catch the event, and use a microflow to evaluate or create the condition and send a notification using a Notify Workflow activity when the condition is met.
Event Subprocess (Non-Interrupting) 🟩 Platform Native Use a Non-Interrupting Notification Event Subprocess Start to catch the event, and use a microflow to evaluate or create the condition and send a notification using a Notify Workflow activity when the condition is met.
Intermediate Catch 🟩 Platform Native Use Call Microflow to evaluate the condition and return a result, then use a Decision to route the workflow based on that result.
Intermediate Boundary (Interrupting) 🟦 Planned Use an Interrupting Notification Event (Planned) to catch the event, and use a microflow to evaluate or create the condition and send a notification using a Notify Workflow activity when the condition is met.
Intermediate Boundary (Non-Interrupting) 🟦 Planned Use a Non-Interrupting Notification Event (Planned) to catch the event, and use a microflow to evaluate or create the condition and send a notification using a Notify Workflow activity when the condition is met.

Escalation Events

Variant Support Level How
Event Subprocess (Interrupting) 🟩 Platform Native Use an Interrupting Notification Event Subprocess Start to catch the event, and use a microflow to evaluate the escalation condition and send a notification using a Notify Workflow activity when the escalation needs to happen.
Event Subprocess (Non-Interrupting) 🟩 Platform Native Use a Non-Interrupting Notification Event Subprocess Start to catch the event, and use a microflow to evaluate the escalation condition and send a notification using a Notify Workflow activity when the escalation needs to happen.
Intermediate Boundary (Interrupting) 🟦 Planned Use an Interrupting Notification Event (Planned) to catch the event, and use a microflow to evaluate the escalation condition and send a notification using a Notify Workflow activity when the escalation needs to happen.
Intermediate Boundary (Non-Interrupting) 🟦 Planned Use a Non-Interrupting Notification Event (Planned) to catch the event, and use a microflow to evaluate the escalation condition and send a notification using a Notify Workflow activity when the escalation needs to happen.
Intermediate Throw 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to throw the escalation and continue the flow.
End 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to throw the escalation before the process completes.

Compensation Events

Variant Support Level How
Event Subprocess (Interrupting) 🟩 Platform Native Use an Interrupting Notification Event Subprocess Start to catch the event, and use a microflow to evaluate the compensation condition and send a notification using a Notify Workflow activity when the compensation needs to happen.
Intermediate Boundary (Interrupting) 🟦 Planned Use an Interrupting Notification Event (Planned) to catch the event, and use a microflow to evaluate the compensation condition and send a notification using a Notify Workflow activity when the compensation needs to happen.
Intermediate Throw 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to throw the compensation and redirect the flow to the compensating activity.
End 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to throw the compensation before the process completes.

Cancel Events

Variant Support Level How
Intermediate Boundary (Interrupting) 🟦 Planned Use an Interrupting Notification Event (Planned) to catch the event, and use a microflow to send a notification using a Notify Workflow activity when the cancellation occurs.
End 🟩 Platform Native Use a Call Microflow activity as the throw event. Within the microflow, include a Notify Workflow activity to throw the cancellation before the process completes.

Terminate Events

Variant Support Level How
End ❌ Not Supported Not Supported.
Variant Support Level How
Intermediate Catch ✅ Workflow Native Jump Activity
Intermediate Throw ✅ Workflow Native Jump Activity

Multiple Events

Variant Support Level How
Start ❌ Not Supported Not supported.
Event Subprocess (Interrupting) ❌ Not Supported Not supported.
Event Subprocess (Non-Interrupting) ❌ Not Supported Not supported.
Intermediate Catch ❌ Not Supported Not supported.
Intermediate Boundary (Interrupting) ❌ Not Supported Not supported.
Intermediate Boundary (Non-Interrupting) ❌ Not Supported Not supported.
Intermediate Throw ❌ Not Supported Not supported.
End ❌ Not Supported Not supported.

Multiple Parallel Events

Variant Support Level How
Start ❌ Not Supported Not supported.
Event Subprocess (Interrupting) ❌ Not Supported Not supported.
Event Subprocess (Non-Interrupting) ❌ Not Supported Not supported.
Intermediate Catch ❌ Not Supported Not supported.
Intermediate Boundary (Interrupting) ❌ Not Supported Not supported.
Intermediate Boundary (Non-Interrupting) ❌ Not Supported Not supported.