Self Checks
1. Is this request related to a challenge you're experiencing? Tell me about your story.
Expectation of the new feature
Dify's Start Node User Input currently provides input types such as text, number, select, and file, but does not provide a native multi-select / checkbox group input.
This makes it difficult to build workflows where users need to select multiple predefined options before the workflow starts.
For example, a workflow may require users to select one or more machines:
Machine A
Machine B
Machine C
Machine D
Currently, using Markdown checkbox syntax such as:
only renders static checkbox-like UI and does not provide an interactive input that can be submitted to the workflow.
Using HTML is also not a viable workaround because the relevant HTML rendering is restricted.
Therefore, there is currently no straightforward native way to collect multiple selections from the user at the Start Node.
Expected Behavior
Add a native Multi-select or Checkbox Group input type to Start Node → User Input.
Users should be able to:
Define a list of predefined options.
Allow the user to select zero, one, or multiple options.
Optionally configure whether at least one option is required.
Receive the selected options as an array/list variable in the workflow.
For example:
Input name: machines
Options:
- Machine A
- Machine B
- Machine C
- Machine D
The user could select:
Machine A
Machine C
and the workflow would receive:
["Machine A", "Machine C"]
Use Case
A common use case is allowing users to select multiple machines, products, processes, categories, or other predefined entities before executing a workflow.
For example:
User
↓
Start Node
↓
Select Machines
├── ☑ Machine A
├── ☐ Machine B
├── ☑ Machine C
└── ☐ Machine D
↓
LLM / Agent / Workflow
↓
Process only the selected machines
This is particularly useful for workflows where downstream nodes need to iterate over the selected items or use them as conditions for branching.
Without a native multi-select input, users have to rely on free-text input and implement their own parsing/validation logic.
Proposed UI
Add a new input type under Start Node → User Input:
User Input Type
────────────────────────
○ Text
○ Paragraph
○ Number
○ Select
○ Multi-select
○ File
...
When Multi-select is selected:
Variable Name
machines
Label
Select machines
Options
────────────────────────
☐ Machine A
☐ Machine B
☐ Machine C
☐ Machine D
☑ Allow multiple selections
☑ Required
The selected values should be exposed as an array/list variable to downstream nodes.
An alternative UI implementation would be a multi-select dropdown:
Select machines
┌─────────────────────────────┐
│ Machine A, Machine C ▼ │
└─────────────────────────────┘
Both approaches would solve the underlying requirement.
Example Output
If the user selects:
☑ Machine A
☐ Machine B
☑ Machine C
☐ Machine D
the Start Node should provide:
{
"machines": [
"Machine A",
"Machine C"
]
}
This array should be available to downstream nodes, including LLM, Code, If/Else, Iteration, and other workflow nodes.
Additional Notes
This feature would be different from Markdown checkbox rendering.
The requested functionality is a native workflow input type, rather than rendering Markdown task-list syntax as an interactive checkbox.
A native Multi-select input would also provide proper type information and validation, making it significantly more reliable than asking users to enter comma-separated values manually.
2. Additional context or comments
No response
3. Can you help us with this feature?
Self Checks
1. Is this request related to a challenge you're experiencing? Tell me about your story.
Expectation of the new feature
Dify's Start Node User Input currently provides input types such as text, number, select, and file, but does not provide a native multi-select / checkbox group input.
This makes it difficult to build workflows where users need to select multiple predefined options before the workflow starts.
For example, a workflow may require users to select one or more machines:
Machine A
Machine B
Machine C
Machine D
Currently, using Markdown checkbox syntax such as:
only renders static checkbox-like UI and does not provide an interactive input that can be submitted to the workflow.
Using HTML is also not a viable workaround because the relevant HTML rendering is restricted.
Therefore, there is currently no straightforward native way to collect multiple selections from the user at the Start Node.
Expected Behavior
Add a native Multi-select or Checkbox Group input type to Start Node → User Input.
Users should be able to:
Define a list of predefined options.
Allow the user to select zero, one, or multiple options.
Optionally configure whether at least one option is required.
Receive the selected options as an array/list variable in the workflow.
For example:
Input name: machines
Options:
The user could select:
Machine A
Machine C
and the workflow would receive:
["Machine A", "Machine C"]
Use Case
A common use case is allowing users to select multiple machines, products, processes, categories, or other predefined entities before executing a workflow.
For example:
User
↓
Start Node
↓
Select Machines
├── ☑ Machine A
├── ☐ Machine B
├── ☑ Machine C
└── ☐ Machine D
↓
LLM / Agent / Workflow
↓
Process only the selected machines
This is particularly useful for workflows where downstream nodes need to iterate over the selected items or use them as conditions for branching.
Without a native multi-select input, users have to rely on free-text input and implement their own parsing/validation logic.
Proposed UI
Add a new input type under Start Node → User Input:
User Input Type
────────────────────────
○ Text
○ Paragraph
○ Number
○ Select
○ Multi-select
○ File
...
When Multi-select is selected:
Variable Name
machines
Label
Select machines
Options
────────────────────────
☐ Machine A
☐ Machine B
☐ Machine C
☐ Machine D
☑ Allow multiple selections
☑ Required
The selected values should be exposed as an array/list variable to downstream nodes.
An alternative UI implementation would be a multi-select dropdown:
Select machines
┌─────────────────────────────┐
│ Machine A, Machine C ▼ │
└─────────────────────────────┘
Both approaches would solve the underlying requirement.
Example Output
If the user selects:
☑ Machine A
☐ Machine B
☑ Machine C
☐ Machine D
the Start Node should provide:
{
"machines": [
"Machine A",
"Machine C"
]
}
This array should be available to downstream nodes, including LLM, Code, If/Else, Iteration, and other workflow nodes.
Additional Notes
This feature would be different from Markdown checkbox rendering.
The requested functionality is a native workflow input type, rather than rendering Markdown task-list syntax as an interactive checkbox.
A native Multi-select input would also provide proper type information and validation, making it significantly more reliable than asking users to enter comma-separated values manually.
2. Additional context or comments
No response
3. Can you help us with this feature?