Core Plugins and tasks HumanTask

Core Plugins and tasks HumanTask

Certified

Pause the current execution and wait for approval by a human assigned to the task, either by username or by a specific RBAC group.

All tasks downstream from the Pause task will be put on hold until the execution is manually resumed from the UI.

The Execution will be in a Paused state, and you can either manually resume/kill it by clicking on the "Resume" or "Kill" button in the UI or by calling the POST API endpoint /api/v1/{tenant}/executions/{executionId}/resume or the DELETE API endpoint /api/v1/{tenant}/executions/{executionId}/kill.

yaml
type: io.kestra.plugin.ee.flow.HumanTask

Pause the execution and wait for a manual approval by a user or a group assigned to the task.

yaml
id: human_in_the_loop
namespace: company.team

tasks:
  - id: before_approval
    type: io.kestra.plugin.core.debug.Return
    format: Output data that needs to be validated by a human

  - id: approval_request
    type: io.kestra.plugin.ee.flow.HumanTask
    assignment:
      users:
        - user1@kestra.io
        - user2@kestra.io
      groups:
        - Admins

  - id: post_approval_log
    type: io.kestra.plugin.core.log.Log
    message: Manual approval received! Continuing the execution...
Properties

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Assignment

List of users and/or groups that are allowed to resume this task. At least one user or group must be set.

Definitions
groupsarray
SubTypestring

Groups

List of groups that are allowed to resume this task.

usersarray
SubTypestring

Users

List of users that are allowed to resume this task.

DefaultFAIL
Possible Values
RESUMEWARNCANCELFAIL

List of tasks to run if any tasks failed on this FlowableTask.

A runnable task that will be executed when it's paused

Inputs to be passed to the execution when it's resumed

Before resuming the execution, the user will be prompted to fill in these inputs. The inputs can be used to pass additional data to the execution, which is useful for human-in-the-loop scenarios. The onResume inputs work the same way as regular flow inputs — they can be of any type and can have default values. You can access those values in downstream tasks using the onResume output of the Pause task.

Formatduration

Duration of the pause - if not set, the task will wait forever to be manually resumed except if a timeout is set, in this case, the timeout will be honored.

The duration is a string in ISO 8601 Duration format, e.g. PT1H for 1 hour, PT30M for 30 minutes, PT10S for 10 seconds, P1D for 1 day, etc. If no pauseDuration and no timeout are configured, the execution will never end until it's manually resumed from the UI or API.

Resumed information: when and by who the execution was resumed

Definitions
bystring
onstring
Formatdate-time
tostring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED