BPMN Process User Manual
Purpose
This guide explains how to build and run a complete BPMN workflow in SynapArk through the user interface. It covers Applications, Workflow Forms, DMN Decisions, BPMN modeling, task assignment and claiming, process execution, and completion.
Three complete examples are included:
- Library book borrowing
- New stock addition in inventory
- Loan application
Before you begin
Sign in with an account that has permission to create applications, design and publish forms, deploy decisions and processes, start processes, and work on tasks. If an action is missing, ask an administrator to review your role under Users & access.
Keep these rules in mind:
- A key is a stable technical identifier. Use lowercase letters, numbers, and hyphens, such as
library-borrowing. - In the primary Application flow, create Forms and Decisions from the Application Design workspace. Their draft versions are frozen and activated together with the Application release.
- The top-level Forms, Decisions, Processes, and Cases pages remain available for independent resources and existing integrations, but new solutions should be designed inside an Application.
- A process must contain a Start Event, connected executable activities, and an End Event.
- Every gateway route should either have a condition or be the gateway's default route.
- Form field keys and DMN input expressions must match. For example, the form field
credit_scorefeeds a DMN input expression namedcredit_score. - A new Application process starts from Work only after its immutable version has been successfully deployed. Processes remains the Standalone compatibility runtime.
The complete UI flow
Create Application -> open Design
|
+--> Create Application Form draft (when input is required)
+--> Create Application DMN draft (when rules are required)
+--> Create Application BPMN draft; bind Form/DMN; mark Entry point
|
+--> Validate dependencies -> create immutable version
+--> Deploy version to an environment (then promote/approve as required)
|
+--> Open Work -> Application -> start exact activated entry point
|
+--> Claim/perform tasks
|
+--> Reach End Event and verify completionPart 1: Create an Application
- In the left navigation, select Applications.
- Select New application.
- Complete the form:
- Name: a clear internal name.
- Application key: select the small key-generation icon to derive a slug from the name, or type a key manually.
- Display name: the user-facing name.
- Initial semantic version: normally
1.0.0. - Description: explain the business purpose.
- Select Create application.
The Application opens on its Overview page. Select Design; this is the primary workspace for every new Form, DMN, BPMN, and CMMN resource owned by this solution.
Link an existing resource when needed
Normally, create new BPMN, CMMN, DMN, and Form resources directly under Design. To adopt an eligible existing resource instead:
- Open the Application and select Resources.
- Under Link an existing resource, choose the resource type.
- Open Available resource and search by display name or definition key. Search runs across all eligible resources, not only the first ten results.
- Use Load more inside the selector when you want to browse additional matches.
- For a BPMN process or CMMN case, enable Entry point only when workers should be able to launch it from Work.
- Select Review and link.
- In Review resource dependencies, inspect the complete bundle. SynapArk recursively discovers referenced Forms, DMNs, and called BPMN processes. Resources marked will link are adopted with the process; resources marked linked are already available in the Application.
- If the review reports a missing or conflicting dependency, close the dialog and resolve it first. Otherwise, select Link resources. The complete bundle is linked atomically.
The selector excludes resources and logical keys already linked to this Application. A resource owned by another Application cannot be adopted. Supporting dependencies are never silently moved: the modal shows the exact revision and ownership change before anything is written.
To unlink a resource, select its trash icon in the Resources table. Unlinking removes the resource from the Application draft. Normally the revision returns to the Standalone registry. If a Standalone revision already has the same definition key/version (or already occupies the latest slot), SynapArk safely retains the detached revision’s Application ownership instead of overwriting either revision. The UI confirms this outcome, and the revision remains searchable so it can be linked back to the same Application later.
Part 2: Create and publish a Workflow Form
Create a form only when a user task must collect structured information.
- Open the Application and select Design.
- Select New Workflow form.
- Enter the Form name, Definition key, category, and description.
- Add fields from Field library:
- Drag a field onto Form canvas, or select the field type to add it.
- Drag existing fields to reorder them.
- Select each field and configure Field settings:
- Label is shown to the task worker.
- Field key becomes the process variable name.
- Use the small key-generation icon to derive the key from the label when helpful.
- Configure required state, width, validation, options, and conditional visibility.
- Enable Read only when the field should display an existing process-variable value without allowing the task worker to edit it. The value remains part of the submitted form data.
- Use Preview to test the layout and validation.
- Select Save draft. Return to Application design.
- Confirm the Form appears under the Application’s Forms filter. It becomes immutable and executable only when the Application version is created and deployed.
Do not recreate this resource in the top-level Form catalog. Application modeler selectors resolve resources owned by the same Application, preventing cross-release drift.
Part 3: Create and deploy a DMN Decision
Create a decision table when routing should be based on repeatable business rules rather than a manual choice.
- From the Application Design workspace, select New DMN decision.
- Select New decision table.
- Enter the Definition key, Display name, and description.
- Select a Hit policy. Use FIRST for the examples in this guide so the first matching rule produces the result.
- Configure input columns:
- Input label: readable column title.
- Input FEEL expression: the exact process variable or form field key, such as
member_activeorcredit_score. - Input type: string, number, or boolean as appropriate.
- Configure an output column:
- Output variable name: for example
eligibility. - Output type: normally string for routing outcomes.
- Optionally list ordered allowed values using quoted strings.
- Output variable name: for example
- Enter FEEL unary tests in input cells. Common values are:
-for any value.trueorfalsefor booleans.>= 700for a numeric comparison.[600..699]for an inclusive range."available"for a string value.
- Enter string outputs in quotes, such as
"approved". - Select Add rule for additional outcomes.
- Select Save draft and return to Application Design.
- Reopen the draft when needed to test representative inputs before linking it to a process.
- The Decision is activated with the exact Application release; there is no separate standalone deployment step.
Part 4: Create the BPMN process
- From the Application Design workspace, select New BPMN process.
- The modeler opens a fresh Application-owned process workspace.
- Enter the process Definition key, Display name, and description above the canvas.
- Select the Process or Participant on the canvas and confirm Executable process in Element properties.
- Build the process using the BPMN palette:
- Add a Start Event.
- Add User Tasks for human work.
- Add a Business Rule Task for DMN evaluation when needed.
- Add an Exclusive Gateway for conditional routing.
- Add one or more End Events.
- Use the element context actions to connect each element with Sequence Flows.
- Select each element on the canvas. The right-side Element properties panel changes for the selected element.
- Give every task, event, and gateway a meaningful Name.
Link a Form to a User Task
- Select the User Task or Manual Task.
- Under Task form, choose the form from Published form.
- Under Task assignment, choose one of these patterns:
- Direct assignee: the task appears immediately for one user.
- Candidate users: selected users can see and claim the task.
- Candidate groups: members of selected groups can see and claim the task.
- No assignment: any permitted task worker can claim it.
Link a DMN Decision
- Select the Business Rule Task.
- Under Called decision, choose the table from Active decision.
- For a single routing output, leave Result variable empty so the decision output is merged into process variables. For example, a DMN output named
eligibilitybecomes the process variableeligibility. - If you enter a Result variable, the complete decision output is stored below that name and gateway expressions must reference the nested result accordingly.
Configure gateway routes
- Select the Sequence Flow leaving the Exclusive Gateway.
- Under Routing, choose the process-variable path, comparison operator, value type, and comparison value. SynapArk generates the condition expression.
- Use
eligibilitywhen the DMN output was merged. When a Business Rule Task stores the full output under Result variableresult, use a nested path such asresult.eligibilityorresult.result. - Configure one unconditional/default route for unmatched results. Use the gateway's replace/configure controls to mark the intended Sequence Flow as default when required.
Save and mark the entry point
- Review the entire diagram and confirm that every element is connected.
- Confirm that linked Form and DMN keys are correct.
- Select Save draft.
- Wait for the named saving state to finish and return to Application Design.
- Enable Entry point for this BPMN resource. A process that is not an entry point is packaged as an internal dependency and cannot be launched from Work.
Editing and redeploying an existing definition creates a new version; it does not rewrite the old version.
Part 5: Validate, version, and deploy the Application
- Return to the Application Overview. The resources created through Design are already owned by it; do not link duplicate standalone definitions.
- Open Versions.
- Select Validate current draft.
- Review the resource/element diagnostics and resolve every missing Form, Decision, called-process, ownership, or entry-point error in Design.
- Validate again after every change.
- Resolve every missing form, decision, or called-process warning.
- Enter a semantic version such as
1.0.0, add release notes, and select Create validated version.
The resulting application version is immutable and pins the exact resource versions and checksums.
Deploy the immutable version
Application deployment is mandatory for the Application-first runtime.
- Open Environments in the application and create the required stages.
- Open Deployments.
- Choose the immutable application version and Development environment.
- Select Preflight and resolve any reported problem.
- Select Deploy and confirm.
- In the deployment history, use Promote on the row marked current to move the unchanged version to the next configured stage. The button disappears when that version is already active or awaiting deployment in the next stage.
- Production requires an eligible user other than the deployment initiator to approve the pending deployment.
Rollback is shown only on the current deployment when that environment has an older successful, different Application version. Rollback creates a new deployment of that historical version for new starts; it does not delete history or move already-running instances.
Part 6: Start and complete the published process
Start the instance
- Select Work.
- Open the published Application and confirm the expected environment/version badge.
- Find the BPMN entry point and select Start.
- If a Start Form is bound, complete it and select Submit and start. Otherwise optionally enter:
- Business key: an external reference such as
APP-2026-000123. - Instance name: a readable case name.
- Initial variables: a valid JSON object. Use
{}when the first task collects all required data.
- Business key: an external reference such as
- Select Start workflow and retain the returned instance ID.
Start Form values and Initial variables become process variables. For example, entering username in a Start Form or starting with { "username": "Ayesha" } makes that value available to downstream nodes.
Claim and perform a task
- Select Tasks.
- Use the appropriate view:
- My work for your assigned and claimed work.
- Assigned to me for direct assignments.
- Available to claim for candidate work.
- All open for administrators testing the workflow.
- Find the task.
- Select Claim if it is unassigned.
- Select Complete.
- If a form is linked, it opens in a completion dialog. Fields whose keys exactly match existing process-variable keys are prefilled automatically. For example, a later Form field keyed
usernameshows the currentusernamevalue from the Start Form, initial JSON, DMN output, or an earlier task. Complete all required fields and select Submit and complete. Submitted values update those process variables for downstream nodes. You may close the dialog before submission, but it remains locked while the completion request is running. - Repeat for each new task created by the process.
The process advances automatically through Business Rule Tasks and gateways. A task that is not offered to you will not appear in your personal task view.
Verify successful completion
- Open Operations (or follow the Application context from the task).
- Find the instance using its business key.
- Confirm the status is completed.
- In Operations, open the instance to inspect its diagram token path, timeline, tasks, variables, decision effects, events, jobs, and audit history.
If the instance remains running, inspect the current wait state. It normally indicates an uncompleted task, timer, message/event wait, or external job.
Example 1: Library book borrowing
Business goal
A member requests a book. A librarian records the request, a decision checks eligibility and availability, and the request is either issued, placed on hold, or rejected.
Resource names and keys
| Resource | Display name | Key |
|---|---|---|
| Application | Library circulation | library-circulation |
| Form | Book borrowing request | book-borrowing-request |
| DMN | Borrowing eligibility | borrowing-eligibility |
| BPMN | Library book borrowing | library-book-borrowing |
Create the form
Create and publish Book borrowing request with these fields:
| Label | Field key | Type | Required |
|---|---|---|---|
| Member ID | member_id | Short text | Yes |
| Book ISBN | book_isbn | Short text | Yes |
| Member active | member_active | Checkbox | Yes |
| Outstanding fines | outstanding_fines | Number | Yes |
| Book available | book_available | Checkbox | Yes |
Create the decision
Create Borrowing eligibility with hit policy FIRST.
Inputs:
| Label | FEEL expression | Type |
|---|---|---|
| Active member | member_active | boolean |
| Outstanding fines | outstanding_fines | number |
| Book available | book_available | boolean |
Output: borrowing_status as string.
Rules:
| Active | Fines | Available | Output |
|---|---|---|---|
true | <= 0 | true | "approved" |
true | <= 0 | false | "hold" |
- | - | - | "rejected" |
Deploy the decision and test it with:
{
"member_active": true,
"outstanding_fines": 0,
"book_available": true
}Build the BPMN model
Borrow request received
-> Record borrowing request [User Task + Form]
-> Check borrowing eligibility [Business Rule Task + DMN]
-> Borrowing outcome [Exclusive Gateway]
approved -> Issue book [User Task]
hold -> Place reservation [User Task, default route]
rejected -> Notify rejection [User Task]
-> Request closed [End Event]Set gateway conditions:
- Issue book:
${borrowing_status == "approved"} - Notify rejection:
${borrowing_status == "rejected"} - Place reservation: default route
Link the published form to Record borrowing request. Assign Issue book and Place reservation to librarian candidates. Link the active DMN to Check borrowing eligibility and leave Result variable empty.
Run the successful path
- Start with business key
BORROW-2026-0001and variables{}. - In Available to claim, claim Record borrowing request.
- Complete the form using an active member, zero fines, and an available book.
- Claim and complete Issue book.
- In Operations, confirm
BORROW-2026-0001is completed andborrowing_statusisapproved.
Example 2: New stock addition in inventory
Business goal
A warehouse worker records incoming stock. A decision classifies the inspection outcome, then inventory is either updated, sent for review, or rejected.
Resource names and keys
| Resource | Display name | Key |
|---|---|---|
| Application | Inventory receiving | inventory-receiving |
| Form | New stock receipt | new-stock-receipt |
| DMN | Stock acceptance | stock-acceptance |
| BPMN | New stock addition | new-stock-addition |
Create the form
| Label | Field key | Type | Required |
|---|---|---|---|
| SKU | sku | Short text | Yes |
| Quantity received | quantity_received | Number | Yes |
| Purchase order matched | po_matched | Checkbox | Yes |
| Damaged units | damaged_units | Number | Yes |
| Inspection notes | inspection_notes | Long text | Yes |
Publish the form.
Create the decision
Create Stock acceptance, hit policy FIRST.
Inputs: quantity_received (number), po_matched (boolean), and damaged_units (number).
Output: stock_status (string).
| Quantity | PO matched | Damaged | Output |
|---|---|---|---|
> 0 | true | 0 | "accepted" |
> 0 | true | > 0 | "review" |
- | - | - | "rejected" |
Build the BPMN model
Shipment arrived
-> Inspect and record stock [User Task + Form]
-> Evaluate stock acceptance [Business Rule Task + DMN]
-> Inspection outcome [Exclusive Gateway]
accepted -> Add quantity to inventory [User Task]
review -> Supervisor damage review [User Task, default route]
rejected -> Record supplier rejection [User Task]
-> Receipt completed [End Event]Conditions:
- Add quantity:
${stock_status == "accepted"} - Supplier rejection:
${stock_status == "rejected"} - Supervisor review: default route
Assign inspection and inventory tasks to a Warehouse candidate group and review to an Inventory Supervisor group.
Run the successful path
- Start with business key
RECEIPT-2026-0042and{}. - Claim Inspect and record stock.
- Submit
SKU-1007, quantity50, PO matched, damaged units0, and inspection notes. - Claim and complete Add quantity to inventory.
- Verify completion in Operations and confirm
stock_statusisaccepted.
Example 3: Loan application
Business goal
An officer captures applicant data. A DMN table determines whether the loan is approved, requires manual review, or is declined. The selected human task finishes the case.
Resource names and keys
| Resource | Display name | Key |
|---|---|---|
| Application | Consumer loan origination | consumer-loan-origination |
| Form | Loan application review | loan-application-review |
| DMN | Loan eligibility | loan-eligibility |
| BPMN | Loan application process | loan-application-process |
Create the form
| Label | Field key | Type | Required | Validation |
|---|---|---|---|---|
| Applicant name | applicant_name | Short text | Yes | — |
| Applicant age | age | Number | Yes | 18–120 |
| Credit score | credit_score | Number | Yes | 300–850 |
| Requested amount | requested_amount | Number | Yes | Minimum 1 |
| Review notes | notes | Long text | Yes | Minimum 10 characters |
Publish the form.
Create the decision
Create Loan eligibility, hit policy FIRST.
Inputs: age and credit_score, both number.
Output: eligibility, string, with allowed values "approved", "review", "declined".
| Age | Credit score | Output |
|---|---|---|
>= 18 | >= 700 | "approved" |
>= 18 | [600..699] | "review" |
- | < 600 | "declined" |
Deploy and test with { "age": 34, "credit_score": 745 }.
Build the BPMN model
Application received
-> Capture loan application [User Task + Form]
-> Evaluate loan eligibility [Business Rule Task + DMN]
-> Eligibility outcome [Exclusive Gateway]
approved -> Approve eligible application [User Task]
review -> Manually review application [User Task, default route]
declined -> Record declined application [User Task]
-> Application completed [End Event]Conditions:
- Approval:
${eligibility == "approved"} - Decline:
${eligibility == "declined"} - Manual review: default route
Link Loan application review to the capture task and Loan eligibility to the Business Rule Task. Leave Result variable empty. Assign the capture task to loan-officer candidates and the approval/review tasks to authorized credit officers.
Run the approved path
- Start with business key
LOAN-2026-000123, instance nameJordan Smith loan request, and{}. - Claim Capture loan application.
- Submit age
34, credit score745, the requested amount, applicant name, and notes. - The decision sets
eligibilitytoapprovedand routes to Approve eligible application. - Claim and complete the approval task.
- Open Operations, search for
LOAN-2026-000123, and confirm:- Status is completed.
- The timeline reaches Application completed.
- The tasks are completed.
eligibilityisapproved.
Troubleshooting
| Symptom | Likely cause | Resolution |
|---|---|---|
| Form or Decision is absent in Application Design | It belongs to another Application or the user lacks permission | Create it in the same Application or correct ownership, then reopen the modeler |
| Application validation fails | Broken connection, non-executable process, unsupported semantics, or an invalid/out-of-Application binding | Open the addressable diagnostic, correct the draft, and validate again |
| Application deployment fails | One frozen artifact could not materialize atomically | Inspect diagnostics, correct the draft, create a new version, and deploy again |
| Task is not visible | Task is assigned to someone else or offered to different candidates/groups | Use the correct worker account or ask an administrator to inspect All open |
| Complete button is unavailable | The task has not been claimed or assigned to the current user | Select Claim first |
| Form completion fails | Required field or validation rule is not satisfied | Correct the highlighted fields and submit again |
| Process stays running | It is waiting at a task, timer, event, message, or external job | Open the instance in Operations and inspect the current wait state |
| Gateway takes the default route | No conditional route evaluated to true or a variable/key/type does not match | Inspect variables and compare Form keys, DMN output names, and gateway expressions exactly |
Completion checklist
- Application created with a stable key.
- Required Form created and previewed inside Application Design.
- Required DMN table created and tested inside Application Design.
- BPMN process marked executable.
- Start Event, tasks, gateways, and End Event fully connected.
- User Tasks have correct forms and assignments.
- Business Rule Tasks reference Decisions from the same Application.
- Gateway conditions and default routes are configured.
- BPMN entry-point toggle enabled.
- BPMN, DMN, and Form are owned by the same Application draft.
- Application dependencies validated, immutable version created, and deployment succeeded.
- Process started with a traceable business key.
- Every human task claimed/assigned and completed.
- Final instance status verified as completed in Operations.
CMMN Case Management User Manual
Purpose
This guide explains how to create, deploy, run, and complete a CMMN case in SynapArk through the user interface. It covers Applications, Workflow Forms, DMN Decisions, the CMMN modeler, Human Tasks, Decision Tasks, sentries, discretionary work, milestones, and case completion.
Three complete examples are included:
- Library book borrowing case
- New stock addition in inventory case
- Loan application case
When to use CMMN instead of BPMN
Use BPMN when work follows a predictable sequence. Use CMMN when the exact path depends on knowledge, evidence, events, and case-worker judgment.
| BPMN concept | Closest CMMN concept |
|---|---|
| Process instance | Case instance |
| Sequence Flow | Entry/exit criteria and sentries |
| User Task | Human Task plan item |
| Business Rule Task | Decision Task plan item |
| Subprocess | Stage |
| End Event | Case-plan completion |
| Conditional branch | Sentry condition or discretionary activation |
| Progress marker | Milestone |
CMMN does not require one fixed path from Start to End. A case plan contains plan items that become available or active when their criteria are satisfied.
Before you begin
Sign in with permissions to create applications, design and publish forms, deploy decisions and cases, start/control cases, and update case tasks. If a button is absent, ask an administrator to review your role under Users & access.
Important rules:
- Use stable lowercase keys such as
library-borrowing-case. - Create new Forms, Decisions, and CMMN plans from the owning Application’s Design workspace. They are frozen and activated together as one release.
- The top-level Cases, Forms, and Decisions pages are Standalone compatibility registries for independent legacy resources and existing integrations.
- Form field keys must match DMN input expressions.
- Mark Human Tasks as Blocking human task when the case must wait for their completion.
- Enable Auto-complete stage on the Case Plan Model when the case should close after all required work reaches a terminal state.
- Use milestones to show meaningful business achievements; a milestone is not a task.
- The current visual properties inspector supports names, blocking tasks, auto-completion, Form links, and DMN links. Advanced sentry/control-rule expressions may be imported as CMMN XML when they cannot be authored through the current inspector.
- Published Application CMMN work appears on the Application page in Work. The Cases Human Task queue remains available for Standalone compatibility and global operational inspection.
Complete UI flow
Create Application -> open Design
|
+--> Create Application Form draft
+--> Create Application DMN draft
+--> Create Application CMMN case-plan draft
Human Task -> sentry -> Decision Task -> sentry -> Milestone
|
+--> Mark CMMN as Entry point
+--> Validate -> create immutable version -> deploy/promote
+--> Open Work -> Application -> start exact entry point
|
+--> Claim and complete Human Tasks
|
+--> Activate/trigger discretionary or event items when required
|
+--> Verify milestone occurrence and case completionPart 1: Create an Application
- Select Applications from the left navigation.
- Select New application.
- Enter:
- Name and optional Display name.
- A stable Application key. The small key-generation icon can derive it from the name.
- Initial semantic version, normally
1.0.0. - A description of the case solution.
- Select Create application.
The Application is the release and runtime container. Select Design and create its Form, DMN, and CMMN resources there; they are linked to the Application automatically.
Link an existing resource when needed
Normally, create new CMMN, BPMN, DMN, and Form resources directly under Design. To adopt an eligible existing resource instead:
- Open the Application and select Resources.
- Under Link an existing resource, choose the resource type.
- Open Available resource and search by display name or definition key. Search covers every eligible resource, not only the first ten results.
- Use Load more inside the selector to browse further matches.
- Enable Entry point for a CMMN case only when workers should be able to start it from Work.
- Select Review and link.
- In Review resource dependencies, inspect the complete bundle. SynapArk recursively discovers referenced Forms and DMNs, plus any dependencies introduced by supporting BPMN processes.
- If the review reports a missing or conflicting dependency, close the dialog and resolve it first. Otherwise, select Link resources. The complete bundle is linked atomically.
Already-linked logical keys are excluded, and a resource owned by another Application cannot be linked. Supporting dependencies are never silently moved: the modal shows the exact revision and ownership change before anything is written.
To unlink a resource, select its trash icon in the Resources table. Unlinking removes the resource from the Application draft. Normally the revision returns to the Standalone registry. If a Standalone revision already has the same definition key/version (or already occupies the latest slot), SynapArk safely retains the detached revision’s Application ownership instead of overwriting either revision. The UI confirms this outcome, and the revision remains searchable so it can be linked back to the same Application later.
Part 2: Create and publish the case Form
- Open the Application and select Design.
- Select New Workflow form.
- Enter the Form name, Definition key, category, and description.
- Drag fields from Field library to Form canvas, or select a field type to add it.
- Select each field and configure its label, Field key, required state, validation, width, options, and conditional visibility.
- Use Preview to test the form.
- Select Save draft.
- Return to Application Design and confirm the resource appears under Forms. Deployment of the immutable Application version activates the exact Form.
The values submitted through a case Human Task are merged into case variables and become available to later Decision Tasks and sentry conditions.
Part 3: Create the Application DMN Decision
- From Application Design, select New DMN decision.
- Confirm the Application context remains present in the editor URL/header.
- Enter the Definition key, Display name, and description.
- Choose a hit policy. The examples use FIRST.
- Configure input columns. Each Input FEEL expression must exactly match a Form field key or existing case variable.
- Configure the output variable name and type.
- Add rules using FEEL unary tests such as
-,true,>= 700, or[600..699]. - Quote string output values, for example
"approved". - Select Save draft.
- Return to Application Design and confirm the DMN appears under Decisions. It is activated only through the immutable Application deployment.
Part 4: Understand the CMMN building blocks
Case Plan Model
The large case-plan container owns the case. Select it and enable Auto-complete stage when the case should complete automatically after required plan items finish.
Human Task
A Human Task represents work performed by a case worker. Select it to:
- Set its Name.
- Enable Blocking human task if completion is required.
- Link a Published form.
At runtime, a created task can be claimed and completed in the Human task queue.
Decision Task
A Decision Task evaluates a deployed DMN table. Select it to:
- Set its Name.
- Choose an Active decision.
- Optionally enter a Result variable.
Leave Result variable empty when the DMN output should merge directly into case variables. If the output is eligibility, later case data will contain eligibility.
Stage
A Stage groups related plan items. Use it for a phase such as Evidence collection or Final review. Select the Stage and enable Auto-complete stage if it should finish when its required contents finish.
Milestone
A Milestone records a business achievement such as Eligibility determined or Stock registered. It has no work form. In the supported CMMN profile it occurs automatically when it becomes enabled; workers do not manually complete milestones.
Entry criterion and sentry
An entry criterion controls when a plan item starts. A common pattern is:
Human Task completes -> sentry becomes true -> Decision Task starts
Decision Task completes -> sentry becomes true -> Milestone is achievedUse the CMMN palette/context controls to add an entry criterion to the target item and connect its source plan item. For advanced event/condition combinations not exposed by the visual inspector, import validated CMMN 1.1 XML.
Discretionary item
A discretionary item is optional work chosen by a case worker. At runtime it appears under Plan and event items and can be started with Activate when available.
Event listener
An event listener waits for a business occurrence. At runtime, a permitted user can select Trigger from Plan and event items. Use this to simulate an external occurrence supported by the current case runtime.
Part 5: Create and deploy the CMMN model
- From Application Design, select New CMMN case.
- The CMMN modeler opens a fresh Application-owned case workspace.
- Enter the case Definition key, Display name, and description above the canvas.
- Select the Case Plan Model and configure its Name and Auto-complete stage behavior.
- Add Human Tasks, Decision Tasks, Stages, Milestones, sentries/criteria, discretionary items, or event listeners from the palette as required.
- Select each element to open Element properties and configure its supported fields.
- Link published Forms to Human Tasks.
- Link active DMN Decisions to Decision Tasks.
- Verify that required work is blocking and that dependent work has the correct entry criteria.
- Select Save draft.
- Wait for the named saving state to finish and return to Application Design.
- Enable Entry point for the CMMN resource so workers can start it from Work.
Editing and deploying an existing definition creates another immutable version.
Part 6: Validate, version, and deploy the Application
- Return to the Application Overview. Design-created resources are already owned by the Application.
- Select Versions.
- Select Validate current draft.
- Resolve every resource/element diagnostic in Design, including missing Forms, Decisions, ownership, and entry-point errors.
- Validate again after any draft change.
- Resolve every missing Form or Decision warning.
- Enter a semantic version and release notes.
- Select Create validated version.
The Application version now pins the CMMN, Form, and DMN artifacts and their checksums.
Deploy the immutable version
Use Environments and Deployments to activate the release; deployment is mandatory for Work visibility:
- Create Development, Testing, Staging, and Production environments as needed.
- Choose the immutable version and Development environment.
- Select Preflight, then Deploy.
- Promote the unchanged version sequentially.
- Production requires independent approval.
Part 7: Start and work the case
Start a case
- Select Work.
- Open the published Application and confirm the expected environment/version.
- Find the CMMN entry point and select Start.
- Wait for the Starting case state to finish.
The current start action initializes the case with an empty variable object. Use the first Human Task Form to collect case data.
Claim and complete a Human Task
- Stay on the Application page in Work and locate Case work.
- Find the required task.
- Select Claim.
- After the task is assigned to you, select Complete.
- If a Form is linked, complete its required fields in Complete case task and select Submit and complete.
- The runtime updates case variables, records immutable history, evaluates sentries, and activates eligible downstream work.
Work other plan items
- Under Plan and event items, select Activate for available discretionary work.
- Select Trigger for an active event listener.
- Under Milestones, verify that enabled milestones are shown as achieved.
- Case controls allow an authorized user to Suspend, Activate, Complete, or Terminate an active case. Do not use Complete merely to bypass unfinished business work.
Verify completion
- Open the case from Operations, or follow its context from Work.
- The CMMN Operations view shows:
- Case data
- Plan items
- Human Tasks
- Milestones
- Immutable event timeline
- Confirm the status is completed and the expected milestone/state transitions are present.
If the case stays active, inspect blocking tasks, required available items, active Stages, and event listeners. An unplanned discretionary item does not block completion.
Example 1: Library book borrowing case
Business goal
A librarian manages a borrowing request whose work may change based on member eligibility, book availability, and case-worker judgment.
Resources
| Resource | Display name | Key |
|---|---|---|
| Application | Library circulation cases | library-circulation-cases |
| Form | Borrowing evidence | borrowing-evidence |
| DMN | Borrowing assessment | borrowing-assessment |
| CMMN | Library borrowing case | library-borrowing-case |
Form
Create and publish Borrowing evidence:
| Label | Field key | Type | Required |
|---|---|---|---|
| Member ID | member_id | Short text | Yes |
| Book ISBN | book_isbn | Short text | Yes |
| Member active | member_active | Checkbox | Yes |
| Outstanding fines | outstanding_fines | Number | Yes |
| Book available | book_available | Checkbox | Yes |
| Librarian notes | librarian_notes | Long text | Yes |
Decision
Create Borrowing assessment with output borrowing_status:
| Active | Fines | Available | Output |
|---|---|---|---|
true | <= 0 | true | "approved" |
true | <= 0 | false | "hold" |
- | - | - | "rejected" |
Use inputs member_active, outstanding_fines, and book_available. Deploy and test the table.
Case plan
Library borrowing plan [auto-complete]
|- Collect borrowing evidence [blocking Human Task + Form]
|- Assess borrowing request [Decision Task + DMN]
|- Borrowing outcome recorded [Milestone]
`- Investigate member exception [optional/discretionary Human Task]
Collect borrowing evidence completes
-> entry sentry starts Assess borrowing request
Assess borrowing request completes
-> entry sentry achieves Borrowing outcome recordedThe optional exception task demonstrates case-worker judgment. Activate it only when an eligibility or data issue needs investigation.
Run the successful path
- Start Library borrowing case.
- Claim Collect borrowing evidence.
- Submit an active member, zero fines, and available book.
- The Decision Task evaluates automatically after its sentry becomes true.
- Confirm Borrowing outcome recorded is achieved.
- Confirm the case completes and
borrowing_statusisapprovedin the case detail view.
Example 2: New stock addition in inventory case
Business goal
A warehouse case collects receiving evidence, evaluates stock quality, permits optional damage investigation, and records the stock-registration milestone.
Resources
| Resource | Display name | Key |
|---|---|---|
| Application | Inventory receiving cases | inventory-receiving-cases |
| Form | Stock receipt evidence | stock-receipt-evidence |
| DMN | Stock quality assessment | stock-quality-assessment |
| CMMN | Inventory stock addition case | inventory-stock-addition-case |
Form
| Label | Field key | Type | Required |
|---|---|---|---|
| SKU | sku | Short text | Yes |
| Quantity received | quantity_received | Number | Yes |
| Purchase order matched | po_matched | Checkbox | Yes |
| Damaged units | damaged_units | Number | Yes |
| Inspection notes | inspection_notes | Long text | Yes |
Publish the Form.
Decision
Create Stock quality assessment with output stock_status:
| Quantity | PO matched | Damaged | Output |
|---|---|---|---|
> 0 | true | 0 | "accepted" |
> 0 | true | > 0 | "review" |
- | - | - | "rejected" |
Case plan
Inventory receiving plan [auto-complete]
|- Record and inspect shipment [blocking Human Task + Form]
|- Classify stock receipt [Decision Task + DMN]
|- Inventory registration confirmed [blocking Human Task]
|- Stock registered [Milestone]
`- Investigate damaged stock [optional/discretionary Human Task]
Record and inspect shipment completes -> Classify stock receipt
Classify stock receipt completes -> Inventory registration confirmed
Inventory registration confirmed completes -> Stock registeredRun the successful path
- Start the case.
- Claim Record and inspect shipment.
- Enter
SKU-1007, quantity50, PO matched, damaged units0, and notes. - Allow Classify stock receipt to evaluate.
- Claim and complete Inventory registration confirmed.
- Confirm Stock registered is achieved,
stock_statusisaccepted, and the case completes.
For damaged stock, activate Investigate damaged stock before closing the case.
Example 3: Loan application case
Business goal
A loan officer gathers evidence, the rules engine evaluates eligibility, and case workers can perform discretionary manual review before reaching an eligibility milestone.
Resources
| Resource | Display name | Key |
|---|---|---|
| Application | Consumer loan cases | consumer-loan-cases |
| Form | Loan evidence collection | loan-evidence-collection |
| DMN | Loan case eligibility | loan-case-eligibility |
| CMMN | Loan application case | loan-application-case |
Form
| Label | Field key | Type | Required | Validation |
|---|---|---|---|---|
| Applicant name | applicant_name | Short text | Yes | — |
| Applicant age | age | Number | Yes | 18–120 |
| Credit score | credit_score | Number | Yes | 300–850 |
| Requested amount | requested_amount | Number | Yes | Minimum 1 |
| Evidence notes | notes | Long text | Yes | Minimum 10 characters |
Publish the Form.
Decision
Create Loan case eligibility, hit policy FIRST, with output eligibility:
| Age | Credit score | Output |
|---|---|---|
>= 18 | >= 700 | "approved" |
>= 18 | [600..699] | "review" |
- | < 600 | "declined" |
Case plan
Loan evidence plan [auto-complete]
|- Assess applicant evidence [blocking Human Task + Form]
|- Determine case eligibility [Decision Task + DMN]
|- Eligibility established [Milestone]
|- Perform manual credit review [optional/discretionary Human Task]
`- Additional evidence received [Event Listener]
Assess applicant evidence completes -> Determine case eligibility
Determine case eligibility completes -> Eligibility establishedThe discretionary review and event listener illustrate adaptive work. A case worker can activate manual review or trigger the evidence event when the facts require it. Conditional sentries that automate these choices may be supplied through imported CMMN XML.
Run the approved path
- Start Loan application case.
- Claim Assess applicant evidence.
- Submit age
34, credit score745, requested amount, applicant name, and notes. - The Decision Task sets
eligibilitytoapproved. - Confirm Eligibility established is achieved.
- With no discretionary review activated, confirm the auto-completing case reaches completed.
- Open the case detail and verify the Human Task, Decision Task, milestone, case variables, and history events.
Run the manual-review variant
- Start another case and submit a credit score of
650. - After the decision returns
review, select Activate for Perform manual credit review under Plan and event items. - Claim and complete the review task.
- Verify that the enabled milestone occurred and the case completed.
Troubleshooting
| Symptom | Likely cause | Resolution |
|---|---|---|
| Open CMMN modeler shows an existing case | The URL contains ?definition=... | Return to Cases and select Open CMMN modeler without an edit link/query |
| Form or Decision is missing in Application Design | It belongs to another Application or the user lacks permission | Create it in the same Application or correct ownership, then reopen the modeler |
| Application validation fails | Missing visual DI, invalid CMMN, broken reference, or an invalid/out-of-Application binding | Open the addressable diagnostic, correct the draft, and validate again |
| Application deployment fails | One frozen artifact could not materialize atomically | Inspect diagnostics, correct the draft, create a new version, and deploy again |
| Human Task never appears | Its entry sentry is unsatisfied or its containing Stage is unavailable | Inspect source plan-item state and sentry configuration |
| Complete is unavailable | The task is not assigned to the current user | Select Claim first |
| Decision Task fails | DMN input variable is missing, has the wrong type, or no rule matches | Compare Form field keys/types with DMN inputs and test the Decision |
| Milestone is not achieved | Its entry criterion or sentry is unsatisfied | Complete its source item and inspect the declared on-parts, standard events, and condition |
| Case remains active | A blocking/required item, active Stage, or event wait remains open | Inspect Case instances, Human task queue, Plan and event items, and case detail timeline |
Completion checklist
- Application created with a stable key.
- Required Form created and previewed inside Application Design.
- Required DMN Decision created and tested inside Application Design.
- Case Plan Model created and named.
- Auto-complete behavior deliberately configured.
- Human Tasks have correct blocking state and Forms.
- Decision Tasks reference Decisions from the same Application.
- Entry criteria and sentry sources/events are correct.
- Stages, milestones, discretionary items, and listeners are configured as intended.
- CMMN entry-point toggle enabled.
- CMMN, Form, and DMN are owned by the same Application draft.
- Application dependencies validated, immutable version created, and deployment succeeded.
- Case started.
- Human Tasks claimed and completed.
- Required discretionary/event/milestone actions handled.
- Case data and immutable event history inspected.
- Final case status verified as completed in Operations.