Files
dify-docs/en/use-dify/nodes/human-input.mdx
Riskey 74428d2604 Add content related to the human input node (#667)
* draft

* revise based on hands-on testing

* modify based on feedback

* add zh and ja translation

* Update tip for referencing text output variable

Clarify the default behavior of the reasoning model output.

* Add translation note

Added a note about AI translation accuracy and referenced the English version for discrepancies.

* Update human-input.mdx with translation note

Add a note about AI translation accuracy and reference to the English version.

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update wording for clarity on model output display

---------

Co-authored-by: Riskey <riskey47@dify.ai>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-11 17:28:19 +08:00

80 lines
3.3 KiB
Plaintext

---
title: Human Input
description: Pause workflows to request human input, review, or decisions
icon: user-magnifying-glass
---
The Human Input node pauses workflows at key points to request human input before execution continues.
When execution reaches this node, a customizable request form is delivered through specific channels. Recipients can provide input, review data, and choose from predefined decisions that determine how the workflow proceeds.
By embedding human judgement directly where it matters, you can **balance automated efficiency with human oversight**.
<Frame caption="Request Form Example"><img src="/images/human_input_request_form_example.png" alt="Request Form Example" /></Frame>
## Configuration
Configure the following to define how the node requests and processes human input:
- **Delivery method**: How the request form reaches recipients.
- **Form content**: What information recipients will see and what they can input.
- **User action**: What decisions recipients can make and how the workflow proceeds accordingly.
- **Timeout strategy**: How long to wait and what happens if no recipient responds.
### Delivery Method
Choose the channel through which the request is delivered. Currently available methods:
- **Web app**: Displays the request form directly in the web app interface for the current user to respond.
- **Email**: Sends an email containing the request link to one or more recipients.
<Note>
The request closes after the first response regardless of delivery method.
</Note>
### Form Content
Customize what appears in the request form:
- **Format and structure with Markdown**
Use headings, lists, bold text, links, and other Markdown elements to present information clearly.
- **Display dynamic data with variables**
Reference workflow variables to show dynamic content, such as AI-generated text for review or any needed contextual information from upstream nodes.
<Tip>
If you reference the `text` output variable from a reasoning model, the form will display the model's thinking process along with the final answer by default.
To show only the answer, toggle on **Enable Reasoning Tag Separation** for the corresponding LLM node.
</Tip>
- **Collect input with input fields**
Input fields can start empty or pre-filled with variables (e.g., LLM output to refine) or static text (e.g., example or default values) that recipients can edit.
Each input field becomes a variable for downstream use. For instance, pass edited content for further processing or send feedback to an LLM for regeneration.
### User Action
Define the decision buttons that recipients can click. Each button routes the workflow to a different execution path.
For example, a `Post` branch might lead to nodes that trigger content publishing, while a `Regenerate` branch might loop back to an LLM node to revise the content.
<Tip>
Use preset button styles to visually distinguish actions.
For example, use a prominent style for key actions like `Approve` and a subtler one for secondary options.
</Tip>
### Timeout Strategy
Configure how long to wait for a response before the request expires.
If no recipient responds within the set time, the workflow automatically ends unless you define a fallback branch to handle the timeout—for example, send a notification or retry the request.