
Core Plugins and tasks HumanTask
CertifiedPause the current execution and wait for approval by a human assigned to the task, either by username or by a specific RBAC group.
Core Plugins and tasks HumanTask
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.
type: io.kestra.plugin.ee.flow.HumanTaskExamples
Pause the execution and wait for a manual approval by a user or a group assigned to the task.
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
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.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset 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.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150assignment
Assignment
List of users and/or groups that are allowed to resume this task. At least one user or group must be set.
io.kestra.plugin.ee.flow.HumanTask-Assignment
Groups
List of groups that are allowed to resume this task.
Users
List of users that are allowed to resume this task.
behavior string
FAILRESUMEWARNCANCELFAILerrors array
List of tasks to run if any tasks failed on this FlowableTask.
finally array
onPause
A runnable task that will be executed when it's paused
onResume
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.
pauseDuration string
durationDuration 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.
Outputs
onResume object
resumed
Resumed information: when and by who the execution was resumed
io.kestra.plugin.core.flow.Pause-Resumed
date-timeCREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED