Human
A Human task can be used for a variety of human-involved tasks, such as manual approval in an expense approval workflow or a user intake form in a hotel booking workflow.
To support human-involved tasks, the Human task can be used alongside the following:
- User Forms—A form builder to create user forms hosted on your Conductor cluster.
- Human Tasks API—A suite of APIs that manage the lifecycle of Human tasks connected to Conductor workflows.
Info
For a complete guide on how to use human-involved tasks, refer to the Human Task Orchestration guide.
Task parameters
When creating a workflow, you can configure the Human task with assignment and trigger policies.
- Assignment policy—Define who can fill out the form, how long the form is assigned to them, and what to do if the assignment times out.
- If not configured, the task is not restricted and can be completed by anyone.
- Multiple assignment policies can be added to create a multi-level assignment chain. If the first group fails to pick the assignment within the specified timeframe, the task will be escalated to the next assigned group.
- Additional assignment policies cannot be added if the preceding assignment policy has no specified expiry timeframe.
- Trigger policy—Trigger a workflow to start if the task state or details change.
Here are all the parameters for the Human task.
| Parameter | Description | Required/ Optional |
|---|---|---|
| displayName | The task display name, which will appear on the connected UI for the user. Use a unique human-friendly name (for example, “Loan Approval” or “Booking Form”). | Required. |
| userFormTemplate | The user form associated with the Human task. This form will be assigned when the Human task is executed. Note: If you haven’t created the user form, go to Definitions > User Forms and set it up. Refer to the documentation for creating user forms. |
Required. |
| userFormTemplate. name | The name of the user form. | - |
| userFormTemplate. version | The version of the user form. | - |
| assignments | The assignment policy for the Human task. | Optional. |
| assignments. userType | The type of user or group that will be assigned to the task. Supported values:
|
- |
| assignments. user | The user or group ID for the assignee. The value depends on the user type.
|
- |
| assignments. slaMinutes | The duration in minutes for which the Human task will be assigned. Use 0 minutes for a non-expiring duration. | - |
| autoClaim | Enables automatic claiming of the Human task by the first assignee in the assignment policy list when the task execution starts. When set to true, the task moves directly to the In progress state without requiring manual claiming. Set to false to keep the task in Assigned state until manually claimed. |
Optional. |
| assignmentCompletion Strategy | The action that will occur if the assignment policy times out. Supported values:
|
Required. |
| taskTriggers | The trigger policy for the Human task. | Optional. |
| taskTriggers. triggerType | The condition that will trigger a specified workflow. Supported conditions are:
|
- |
| taskTriggers. startWorkflowRequest | The details of the workflow to be triggered, including its name, version, input parameters, correlation ID, and task-to-domain mapping. | - |
In addition, you should also configure Human task’s inputParameters, which contain the fields taken from its associated user form. The configuration depends on the input source:
- If the field is to be filled up by the assignee, leave the value empty.
- If the field is read-only, set the value explicitly. You can use static values or dynamic variables to pass data from workflow inputs or previous task outputs.
The following are generic configuration parameters that can be applied to the task and are not specific to the Human task.
Other generic parameters
Here are other parameters for configuring the task behavior.
| Parameter | Description | Required/ Optional |
|---|---|---|
| optional | Whether the task is optional. If set to true, any task failure is ignored, and the workflow continues with the task status updated to COMPLETED_WITH_ERRORS. However, the task must reach a terminal state. If the task remains incomplete, the workflow waits until it reaches a terminal state before proceeding. |
Optional. |
Task configuration
This is the task configuration for a Human task.
{
"name": "human",
"taskReferenceName": "human_ref",
"inputParameters": {
"__humanTaskDefinition": {
"assignmentCompletionStrategy": "LEAVE_OPEN",
"assignments": [
{
"assignee": {
"user": "<ENGINEERS>",
"userType": "CONDUCTOR_GROUP"
},
"slaMinutes": 10
}
],
"displayName": "Loan Approval",
"userFormTemplate": {
"name": "Approval",
"version": 1
},
"autoClaim": true,
"taskTriggers": [
{
"triggerType": "COMPLETED",
"startWorkflowRequest": {
"name": "email-notification-workflow",
"version": 1
}
}
]
}
},
"type": "HUMAN"
}
Task output
The Human task will return a JSON object containing the form response. For example: