Skip to content

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:
  • EXTERNAL_USER—The assignee is a user residing outside the Conductor cluster in an external system.
  • EXTERNAL_GROUP—The assignee is a group residing outside the Conductor cluster in an external system.
  • CONDUCTOR_USER—The assignee is a user in the Conductor cluster.
  • CONDUCTOR_GROUP—The assignee is a group in the Conductor cluster.
-
assignments. user The user or group ID for the assignee. The value depends on the user type.
  • EXTERNAL_USER—Provide the user's email that is managed and verified in an external system.
  • EXTERNAL_GROUP—Provide the name of the group that is managed and verified in an external system.
  • CONDUCTOR_USER—Provide the user’s Conductor email.
  • CONDUCTOR_GROUP—Provide the Conductor group name.
-
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:
  • LEAVE_OPEN—The Human task execution remains open to be picked up by anyone.
  • TERMINATE—The Human task execution is terminated and marked as deleted, and the workflow fails with the error “Task terminated as no more assignments pending and completion strategy is TERMINATE”.
Required.
taskTriggers The trigger policy for the Human task. Optional.
taskTriggers. triggerType The condition that will trigger a specified workflow. Supported conditions are:
  • PENDING—A workflow will be triggered if the Human task enters the Pending state.
  • ASSIGNED—A workflow will be triggered once the Human task is assigned to a specific assignee.
  • IN_PROGRESS—A workflow will be triggered if the Human task enters the In Progress state.
  • COMPLETED—A workflow will be triggered if the Human task enters the Completed state.
  • TIMED_OUT—A workflow will be triggered if the Human task times out.
  • ASSIGNEE_CHANGED—A workflow will be triggered if the assignee changes due to the assignment policy or because the task has been left open and picked up by anyone.
  • CLAIMANT_CHANGED—A workflow will be triggered if the claimant changes.
-
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 totrue, 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:

{
 "approve": "Yes",
 "comments": "Research paper approved.",
 "paperUrl": "<URL>"
}