Using Camunda Platform 8, you can orchestrate human tasks by assigning them to users. Then, users can enter the necessary data to drive the business process.
When a process instance arrives at such a user task, a new job is created. The process instance stops at this point and waits until the job is completed. Applications like Tasklist can be used by humans to complete these tasks.
While it may originally seem like the goal of automating a process is to remove humans entirely, efficiently allocating work through user tasks can be even more beneficial.
In this guide, we’ll step through one way to create an automated process utilizing user tasks – all entirely executable in the browser. If you prefer a video-based learning experience, visit this Camunda Academy course on Camunda Platform 8 and getting started with human workflows.
Create an automated process with user tasks
To create an automated process with user tasks, take the following steps:
Develop your automated process with user tasks
- To create a BPMN diagram, navigate to Web Modeler via the Modeler tab, and click New project.
- Name your project and select New > BPMN Diagram > + Create blank.
- Give your model a descriptive name, and then give your model a descriptive id within the General tab inside the properties panel on the right side of the screen. In this case, we've named our model
Preparing dinnerwith an id of
- Use Web Modeler to design a BPMN flow with user tasks. Create a user task by dragging the task icon from the palette, or click the existing start event and the displayed task icon.
- Change the task type by clicking the wrench icon. Select User Task.
- Add a descriptive name using the properties panel. In this case, we've named ours
Decide what's for dinner.
- Append an exclusive gateway to your user task by clicking on the user task
Decide what's for dinnerand clicking on the element you'd like to create next. In this case, we've selected the diamond icon to create a gateway.
- Create two sequence flows (represented by the arrows) from the gateway and two new user tasks based on what the user decides to eat. In this case, we've named ours
- Sequence flows require expressions to access variables from the form we'll create below to determine what to eat for dinner. To add an expression, click on the sequence flow to view the properties panel, and open the Condition tab to insert a conditional expression.
- Verify the sequences flows have the following expressions:
= Meal = "Salad"on one side, and
= Meal = "Chicken"on the other.
- Attach an end event to the two user tasks.
Are you new to BPMN or want to learn more? Visit our BPMN cheat sheet for an overview of all BPMN symbols. Variables are part of a process instance and represent the data of the instance. To learn more about these values, variable scope, and input/output mappings, visit our documentation on variables.
Implement a form
- Navigate to the Modeler Home page and click the project you are working on. Then, click New > Form.
- Name your form. In this case, we've named ours Decide what's for dinner.
- Click and drag the Select element onto the palette. Give this Select field a description within the properties panel. We've described ours as What's for dinner?
- Under the General tab of the properties panel, enter Meal as the Key.
- Scroll down to the Values section of the properties panel to add your values. For our dinner add an extra value by clicking on the plus sign. Enter the value Chicken with the label as Chicken and enter the value Salad with the label as Salad in the other value.
- Within your BPMN diagram, click the appropriate user task, and click the blue square icon in the bottom right corner of your user task. Select the form you'd like to apply to your user task, and click Import to add the form to the BPMN diagram.
Start and view your process instance
- To deploy your diagram, click Deploy diagram > Deploy.note
If you have not yet created a cluster, clicking Deploy diagram will take you to the console to create a cluster. Once you make your cluster creation request, you will automatically be redirected back to Modeler. The creation of a cluster can take 1 to 5 minutes. To read more about creating clusters, visit our documentation on creating a cluster.
- To officially start a new process instance, click Start instance.
- Navigate to Operate by clicking the honeycomb icon next to the Start instance button.
- Click View process instances to see your process instance alongside the green token waiting at the user task.
Complete a user task
Within this example, we've included a form to demonstrate the completion of a human task. To learn more about creating forms within your diagrams, visit our guide on building forms with Modeler.
- Go back to your Camunda Platform 8 diagram and select the honeycomb icon and then View user tasks to take a look at your user tasks inside Tasklist.
- Select the open user task on the left panel of Tasks. In our example below, this is Decide what's for dinner.
- Next to Assignee, click Claim to claim the task.
- Once finished entering the appropriate information, click Complete Task.
- On the left panel of Tasks, filter by Completed tasks to see your task has been finished.
You can now navigate back to Operate and notice the process instance has continued, and the token has moved forward.
The token moves through the exclusive gateway (also called the XOR gateway), and is used to model the decision in the process. When the execution arrives at this gateway, all outgoing sequence flows are evaluated in the order in which they have been defined. The sequence flow which condition evaluates to ‘true’ (or which doesn’t have a condition set, conceptually having a ‘true’ value defined on the sequence flow) is selected for continuing the process.
In this case, the token will move through the gateway and (according to the conditional expressions we outlined earlier) to the selected dinner based on the Decide what's for dinner user task we completed. If we select Chicken, the token moves forward to Prepare chicken. If we select Salad, the token moves forward to Prepare salad.