Skip to content

Add Multi-select / Checkbox Group Input to Start Node User Input #40575

Description

@Ena-0606

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • Please do not modify this template :) and fill in all the required fields.

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:

  • Machine A
  • Machine B
  • Machine C
  • Machine D

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?

  • I am interested in contributing to this feature.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions