Skip to content

Commit b1ca7b5

Browse files
author
Riskey
committed
Update content for boolean, boolean array, and object data type support; refine user input page
1 parent 5d7556d commit b1ca7b5

5 files changed

Lines changed: 71 additions & 53 deletions

File tree

en/use-dify/nodes/ifelse.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ Configure conditions to test variables using various comparison operators:
2626

2727
<Tabs>
2828
<Tab title="Text Operations">
29-
**Contains** / **Not contains** - Check if text includes specific words or phrases
29+
**Contains** / **Not contains** - Check if the value includes specific words or phrases
3030

3131
**Starts with** / **Ends with** - Test text beginnings or endings for pattern matching
3232

33-
**Is** / **Is not** - Exact value matching for precise text comparison
33+
**Is** / **Is not** - Exact value matching
3434
</Tab>
3535

3636
<Tab title="Value Checks">

en/use-dify/nodes/list-operator.mdx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,7 @@ The List Operator acts as an intelligent router, using filters to separate mixed
2222

2323
## Supported Data Types
2424

25-
The node handles different array types with appropriate filtering options:
26-
27-
**Array[string]** - Text lists, categories, names, or any string collections
28-
29-
**Array[number]** - Numeric data, scores, measurements, or calculations
30-
31-
**Array[file]** - Mixed file uploads with rich metadata filtering capabilities
25+
`array[string]`, `array[number]`, `array[file]`, and `array[boolean]`.
3226

3327
## Operations
3428

en/use-dify/nodes/user-input.mdx

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
---
22
title: "User Input"
3-
description: "Entry point for workflow and chatflow applications"
3+
description: "Collects user inputs to start workflow and chatflow applications"
44
icon: "input-text"
55
---
66
## Introduction
77

8-
The User Input node is a type of Start node where you can define what information to collect from end users when they run your application.
8+
The User Input node allows you to define what to collect from end users as inputs for your applications.
99

10-
Applications that start with this node run *on demand*, initiated by direct user interaction or API calls. You can also publish these applications as standalone web apps or MCP servers, expose them through backend service APIs, or use them as tools in other Dify applications.
10+
Applications that start with this node run *on demand* and can be initiated by direct user interaction or API calls.
11+
12+
You can also publish these applications as standalone web apps or MCP servers, expose them through backend service APIs, or use them as tools in other Dify applications.
1113

1214
<Info>
1315
Each application canvas can contain only one User Input node.
@@ -22,7 +24,7 @@ Preset input variables are system-defined and available by default.
2224
- `userinput.files`: Files uploaded by end users when they run the application.
2325

2426
<Note>
25-
For workflow applications, this preset variable has been considered *legacy* and maintained only for backward compatibility.
27+
For workflow applications, this preset variable has been considered *legacy* and kept only for backward compatibility.
2628

2729
We recommend using a [custom file input field](#file-input) instead to collect user files.
2830
</Note>
@@ -31,28 +33,28 @@ Preset input variables are system-defined and available by default.
3133

3234
### Custom
3335

34-
You can configure custom input fields in a User Input node to collect information from end users. Each field becomes a variable that can be referenced by downstream nodes. For example, if you add an input field with the variable name `user_name`, you can reference it as `{{user_name}}` throughout the workflow.
35-
36-
There are seven types of input fields you can choose from to handle different kinds of user input.
36+
You can configure custom input fields in a User Input node to collect different kinds of user input. Each field becomes a variable that can be referenced by downstream nodes.
3737

3838
<Info>
39-
The **Label Name** is displayed to your end users.
39+
**Label Name** is displayed to your end users.
4040
</Info>
4141

4242
<Tip>
43-
In a chatflow application, you can **Hide** any input variable to make it invisible to the end user while keeping it available for reference within the chatflow.
43+
In a chatflow application, you can **Hide** any user input field to make it invisible to end users while keeping it available for reference within the chatflow.
44+
45+
Note that a **Required** field cannot be hidden.
4446
</Tip>
4547

4648
#### Text Input
4749

4850
<Tabs>
4951

5052
<Tab title="Short Text">
51-
The short-text field accepts up to 256 characters. Use it for names, email addresses, titles, or any brief text input that fits on a single line.
53+
Accepts up to 256 characters. Use it for names, email addresses, titles, or any brief text input that fits on a single line.
5254
</Tab>
5355

5456
<Tab title="Paragraph">
55-
The paragraph field allows long-form text without length restrictions. It gives users a multi-line text area for detailed responses or descriptions.
57+
Allows long-form text without length restrictions. It gives users a multi-line text area for detailed responses or descriptions.
5658
</Tab>
5759
</Tabs>
5860

@@ -61,51 +63,60 @@ There are seven types of input fields you can choose from to handle different ki
6163
<Tabs>
6264

6365
<Tab title="Select">
64-
The select field displays a dropdown menu with predefined options. Users can choose only from the listed options, ensuring data consistency and preventing invalid inputs.
66+
Displays a dropdown menu with predefined options. Users can choose only from listed options, ensuring data consistency and preventing invalid inputs.
6567
</Tab>
6668

6769
<Tab title="Number">
68-
The number field restricts input to numerical values only—ideal for quantities, ratings, IDs, or any data requiring mathematical processing.
70+
Restricts input to numerical values only—ideal for quantities, ratings, IDs, or any data requiring mathematical processing.
6971
</Tab>
7072

7173
<Tab title="Checkbox">
72-
The checkbox field provides a simple yes/no option. When a user checks the box, the output is `true`; otherwise, it's `false`. Use it for confirmations or any case that requires a binary choice.
74+
Provides a simple yes/no option. When a user checks the box, the output is `true`; otherwise, it's `false`. Use it for confirmations or any case that requires a binary choice.
75+
</Tab>
76+
77+
<Tab title="JSON Code">
78+
Accepts structured data in JSON format as an object, ideal for passing complex, nested data structures into your application.
79+
80+
You can optionally define a JSON schema to validate the input and guide users on the expected structure. This also allows you to reference individual properties of the object in other nodes.
7381
</Tab>
7482
</Tabs>
7583

7684
#### File Input
7785

7886
<Tabs>
7987
<Tab title="Single File">
80-
The single-file field allows users to upload one file of any supported type, either from their device or via a file URL. The uploaded file is available as a variable containing file metadata (name, size, type, etc.).
88+
Allows users to upload one file of any supported type, either from their device or via a file URL. The uploaded file is available as a variable containing file metadata (name, size, type, etc.).
8189
</Tab>
8290

8391
<Tab title="File List">
84-
The file-list field works like single-file but supports multiple file uploads at once. It's useful for handling batches of documents, images, or other files together.
92+
Supports multiple file uploads at once. It's useful for handling batches of documents, images, or other files together.
93+
8594
<Tip>
86-
You can use a List Operator node to filter, sort, or extract specific files from the uploaded file list for further processing.
95+
Use a List Operator node to filter, sort, or extract specific files from the uploaded file list for further processing.
8796
</Tip>
8897
</Tab>
8998
</Tabs>
9099

91100
**File Processing**
92101

93-
Files uploaded through a User Input node must be processed appropriately by subsequent nodes. The User Input node only collects files; it does not read or parse their content.
94-
95-
Therefore, you need to connect specific nodes to extract and process the file content. For example:
102+
Since the User Input node only collects files—it does not read or parse their content—uploaded files must be processed appropriately by subsequent nodes. For example:
96103

97104
- Document files can be routed to a Doc Extractor node for text extraction so that LLMs can understand their content.
105+
98106
- Images can be sent to LLM nodes with vision capabilities or specialized image processing tool nodes.
107+
99108
- Structured data files such as CSV or JSON can be processed with Code nodes to parse and transform the data.
100109

101110
<Tip>
102-
When users upload multiple files with mixed types (e.g., images and documents), you can use a List Operator node to separate them by file type before routing them to appropriate processing branches.
111+
When users upload multiple files with mixed types (e.g., images and documents), you can use a List Operator node to separate them by file type before routing them to different processing branches.
103112
</Tip>
104113

105114
## What's Next
106115

107116
After setting up a User Input node, you can connect it to other nodes to process the collected data. Common patterns include:
108117

109118
- Send the input to an LLM node for processing.
110-
- Use a Knowledge Retrieval node to find relevant information based on the input.
111-
- Route the execution path to different branches with conditional logic based on the input.
119+
120+
- Use a Knowledge Retrieval node to find information relevant to the input.
121+
122+
- Create conditional branches based on the input with an If/Else node.

en/use-dify/nodes/variable-aggregator.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ Connect variables from different workflow branches that you want to combine. Eac
5050

5151
**Supported Types:**
5252
- **String** - Text outputs from different processing branches
53-
- **Number** - Numeric calculations, scores, or measurements
53+
- **Number** - Numeric calculations, scores, or measurements
5454
- **Object** - Structured data objects with similar schemas
55+
- **Boolean** - True/false values
5556
- **Array** - Lists, collections, or multiple results
5657

5758
### Output Behavior

en/use-dify/nodes/variable-assigner.mdx

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -37,46 +37,58 @@ Configure which conversation variables to update and specify their source data.
3737
Different variable types support different operations based on their data structure:
3838

3939
<Tabs>
40-
<Tab title="String Variables">
41-
**Overwrite** - Replace the entire string value with new content
40+
<Tab title="String">
41+
- **Overwrite** - Replace with another string variable
4242

43-
**Clear** - Empty the variable, setting it to null or blank
43+
- **Clear** - Remove the current value
4444

45-
**Set** - Manually type in a fixed value
45+
- **Set** - Manually assign a fixed value
4646
</Tab>
4747

48-
<Tab title="Number Variables">
49-
**Overwrite** - Replace the number value completely
48+
<Tab title="Number">
49+
- **Overwrite** - Replace with another number variable
5050

51-
**Clear** - Set to null or empty state
51+
- **Clear** - Remove the current value
5252

53-
**Set** - Manually enter a specific number value
53+
- **Set** - Manually assign a fixed value
5454

55-
**Arithmetic** - Add, subtract, multiply, or divide the current value
55+
- **Arithmetic** - Add, subtract, multiply, or divide the current value by another number
56+
</Tab>
57+
58+
<Tab title="Boolean">
59+
- **Overwrite** - Replace with another boolean variable
60+
61+
- **Clear** - Remove the current value
62+
63+
- **Set** - Manually assign a fixed value
5664
</Tab>
5765

58-
<Tab title="Object Variables">
59-
**Overwrite** - Replace the entire object with new data
66+
<Tab title="Object">
67+
- **Overwrite** - Replace with another object variable
6068

61-
**Clear** - Empty the object, removing all properties
69+
- **Clear** - Remove the current values
6270

63-
**Set** - Manually define object structure and values
71+
- **Set** - Manually define the object structure and values
6472
</Tab>
6573

66-
<Tab title="Array Variables">
67-
**Overwrite** - Replace the entire array with new data
74+
<Tab title="Array">
75+
- **Overwrite** - Replace with another array variable of the same type
6876

69-
**Clear** - Empty the array, removing all elements
77+
- **Clear** - Remove all elements from the array
7078

71-
**Append** - Add one item to the end of the array
79+
- **Append** - Add a single element to the end of the array
7280

73-
**Extend** - Add multiple items from another array
81+
- **Extend** - Add all elements from another array of the same type
7482

75-
**Remove** - Delete items from first or last position
83+
- **Remove First/Last** - Remove elements from the first or last position
84+
85+
<Tip>
86+
Array operations are particularly powerful for building memory systems, checklists, and conversation histories that grow over time.
87+
</Tip>
88+
7689
</Tab>
7790
</Tabs>
7891

79-
Array operations are particularly powerful for building memory systems, checklists, and conversation histories that grow over time.
8092

8193
## Common Implementation Patterns
8294

0 commit comments

Comments
 (0)