Configuration
| Field | Description |
|---|---|
| Question / approval title | The main question or title shown to the recipient on the approval page and in the notification. In Approval mode, this is the approval title. |
| Response mode | Choose Choices for a selectable list, Text area for a required typed answer, or Approval for fixed Approve/Reject actions. |
| Options source | A variable expression that resolves to an array, such as {{rss_step.output.items}}. Only used in Choices mode. |
| Label path | Optional relative path used as each option’s visible label, such as title or source.title. |
| Value path | Optional relative path used as the selected value, such as url or metadata.slug. |
| Description path | Optional relative path used as supporting text for each option, such as summary or content.excerpt. |
| Recipient | The workspace member allowed to make the choice when the notification channel is Email. |
| Notification channel | Email or Telegram. |
| Telegram destination | The connected Fetch Hive bot destination used when the notification channel is Telegram. |
| Link TTL | How long the approval link token remains valid before the recipient must request a fresh link. |
| Wait timeout | How long the workflow waits before the step fails or continues according to the failure behavior. |
source.title and author.title. Duplicate keys in the same JSON object cannot be distinguished after JSON parsing.
Output
The step always returns the same top-level object so later steps can be wired before the workflow runs. Choices mode returns the selected option:step_5, use:
| Variable | Use |
|---|---|
{{step_5.output.text}} | The submitted text answer in Text area mode. Empty in Choices mode. |
{{step_5.output.choice.value}} | The selected option value in Choices mode. |
{{step_5.output.choice.label}} | The selected option label in Choices mode. |
{{step_5.output.choice.description}} | The selected option description in Choices mode. |
{{step_5.output.choice.raw.url}} | A field from the original selected option object, when that field exists. |
{{step_5.output.metadata.approved}} | true when Approval mode was approved. |
{{step_5.output.metadata.rejected}} | true when Approval mode was rejected. |
{{step_5.output.response_type}} | choice, text, or approval, depending on how the recipient responded. |
Runtime
The workflow is paused while waiting for the recipient. Fetch Hive sends a short-lived approval link by the configured notification channel. Email mode sends to the selected recipient. Telegram mode sends to the selected Telegram destination. If the link expires, the recipient can request a fresh link from the approval page. Only the configured recipient can view and submit the choice, and they must still belong to the workflow workspace. In Approval mode, Approve resumes the workflow normally. Reject is treated as an intentional stop: Fetch Hive records the rejected output, skips remaining workflow steps, and marks the workflow run as completed rather than failed.API Behavior
Deployed workflows that contain Human in the Loop must run asynchronously with a callback URL. Synchronous API invocation returns a validation error because the workflow cannot finish until the human response is submitted.Cost
Human in the Loop uses a fixed workflow-step credit charge and does not call an LLM by itself.Notes
- Human in the Loop does not support step-level parallelization.
- Human in the Loop cannot be placed inside an iteration body in the current version.
- If the wait timeout expires, the step follows its configured failure behavior: terminate or continue.
- A timeout is not the same as Reject. Timeouts follow the failure behavior; Reject completes the run intentionally.

