Loop Process (Node)
The Loop functionality provides the ability to repeatedly execute the same workflow process for each element of a given array (Loop Target Items).
Key Features
Iterative Processing: Executes the specified workflow sequentially for each element in the array.
Branch Control: Moves to the 'loop' branch during loop execution and to the 'done' branch upon completion.
Result Collection: Collects the results of each iteration and provides a final array of all results.
Parameter Configuration
To use the Loop process, you must configure the following parameters:
Loop Target Items (Required)
Specifies the data array to be processed iteratively.
Can be provided as a List object or JSON array string format.
Can be dynamically generated using template variables.
// Direct array specification ["item1", "item2", "item3"] // Using template variables ${previousResult.dataList} // JSON string format "[{\"id\":1,\"name\":\"first\"},{\"id\":2,\"name\":\"second\"}]"
Branch Structure (Target ID)
The Loop process uses a special branch structure:
{
"loop": "next_process_ID_during_iteration",
"done": "next_process_ID_after_completion"
}
loop: Specifies the ID of the next process to be executed during each iteration.
done: Specifies the ID of the process to be executed after all iterations are completed.
Operation Flow
Initialization: When the Loop process starts, it parses and validates the items array.
Loop Start: Outputs the first item as a result and moves to the 'loop' branch.
Loop Progress: For each iteration, outputs the current item and collects previous results.
Completion: When all items are processed, outputs the complete results and moves to the 'done' branch.
Result Data
The Loop process provides different results depending on the iteration status:
During Iteration: JSON string of the currently processed item
Upon Completion: JSON string of an array containing all iteration results
Usage Example
The following is an example of a Loop workflow for sending emails to a user list:
// Loop process parameters
{
"items": [
{"email": "user1@example.com", "name": "John Smith"},
{"email": "user2@example.com", "name": "Jane Doe"},
{"email": "user3@example.com", "name": "Mike Johnson"}
]
}
// Data output for each iteration
// 1st iteration: {"email": "user1@example.com", "name": "John Smith"}
// 2nd iteration: {"email": "user2@example.com", "name": "Jane Doe"}
// 3rd iteration: {"email": "user3@example.com", "name": "Mike Johnson"}
// Final result upon completion: Array containing all iteration results
Limitations and Considerations
Maximum Item Count: The maximum size of the items array is limited (1000) for performance and stability.
Empty Array Handling: An error occurs when an empty array is input, so prior validation is required.
Memory Usage: Memory usage should be considered when processing large volumes of data.
Infinite Loop Prevention: Validation is included to prevent infinite loops due to incorrect branch configuration.
Template Variable Usage
The Loop process can utilize the following template variables:
// Using previous process results as items
{
"items": "${httpRequest.responseData}"
}
// Using conditionally filtered items
{
"items": "${filteredItems}"
}
Error Handling
The Loop process generates errors in the following situations:
When the items parameter is missing or null
When items is not in the correct array format
When the array is empty
When the maximum item count is exceeded
When the iteration index is invalid
These errors will halt workflow execution, so it is recommended to perform data validation beforehand.