Flow Control Nodes
Flow Control nodes determine where a workflow starts, which branch it follows, what it repeats, and when it ends. This guide covers all 9 flow management nodes.

Start
Start is the single fixed entry for every workflow. It is added automatically, cannot be deleted, and does not appear in the addable node list.
Use it to define global variables. They are injected at workflow start and available to downstream nodes across the workflow.
When debugging from an intermediate node, Start variables are still injected. Ordinary nodes before the selected node do not run and do not produce output variables.
Group
Collects a sequence of linear operations into an ordered execution block. Nodes inside a group run in display order.
Inside a group, you can:
- Drag in ordinary nodes.
- Reorder nodes.
- Edit or delete child nodes.
- Stop or skip a child on error.
- Drag child nodes back to the top-level canvas.
- Ungroup the complete group.
These nodes cannot be placed in a group:
- Start.
- Another Group.
- IF.
- For Each Element, Repeat N Times, For Each Data Item, and While.
- Break Loop.
Group nodes can use upstream variables and output variables from earlier nodes in the same group.
Review the Main Flow After Grouping
Dragging a top-level node into a group deletes its existing edges. The editor does not reconnect the original predecessor and successor. Review the main flow after the operation.
See Use the Workflow Editor for automatic grouping limits.

| No. | Feature | Description |
|---|---|---|
| 1 | Ungroup | Removes the group while preserving node order and connections |
| 2 | Edit group name | Changes the group name for identification |
| 3 | Edit / move node | Click a configured node to edit it, or drag it within the group to reorder |
| 4 | Delete | Deletes the node |
| 5 | Error handling | Stops or skips group nodes on error. A child node cannot have an independent error branch; configure it through the group error handling |
IF
Reads a system or visible workflow variable and chooses the True or False branch based on a comparison.
Configure a Condition
IF supports:
| Operator | Purpose |
|---|---|
| Exists / Does Not Exist | Checks whether a variable has a usable value without a comparison value |
| Less Than / Less Than or Equal | Checks whether a number or comparable value is below the target |
| Equal / Not Equal | Checks whether the two values match |
| Greater Than / Greater Than or Equal | Checks whether a number or comparable value is above the target |
| Contains / Does Not Contain | Checks whether a value contains the target |
| In / Not In | Checks whether a value belongs to a target collection |
Every operator except Exists and Does Not Exist requires a comparison value and uses the selected comparison type.
IF reads existing variables; it does not create an output variable with the same name.
Connect Branches
IF has no implicit standard output. Connect both:
True: Executes when the condition is satisfied.False: Executes when it is not.
The branches can merge later through a valid ordinary node. Nested IF nodes also support merges, but every branch must remain complete and structurally identifiable.
┌→ True branch ─┐
Start → IF │ → Merge node
└→ False branch ─┘Validation fails when either branch is missing.

| No. | Setting | Description |
|---|---|---|
| 1 | Variable | Select a system or workflow variable to read |
| 2 | Operator | Select Exists, Equal, Contains, or another comparison |
| 3 | Comparison value | Enter the target value for every operator except Exists and Does Not Exist |
Shared Connections for Structured Loops
For Each Element, Repeat N Times, For Each Data Item, and While share this port structure:
┌── Loop Start → loop body ──┐
Upstream → Loop │ │
└ ←──── Loop End ────────────┘
│
└→ nodes after the loopThe loop body must return to Loop End. Connecting it directly to the default output breaks the structure and fails validation.

| No. | Port | Purpose | Connection rule |
|---|---|---|---|
| 1 | Main input | Enters the loop from upstream | At most one standard input |
| 2 | Loop Start | Enters the current iteration body | At most one output connection |
| 3 | Loop End | Returns from the body to the loop header | At least one back edge; can receive several loop branches |
| 4 | Default output | Continues the main flow after the loop | At most one; can remain unconnected |
For Each Element
Uses a selector to iterate over matching page elements, handling one per iteration.
Each iteration can:
- Skip extraction.
- Extract text.
- Extract a DOM object.
- Extract an iframe.
- Extract source.
- Extract a specified attribute.
- Extract a specified child element.
The default current value variable is loopValue; the default index is loopIndex. Nodes in the loop body can use them.
For example, read product card text one by one:
For Each Element → Get or process ${loopValue} → Loop EndTo click the current element, extract its DOM object and use that element object variable in Click Element.
Repeat N Times
Repeats the body for a positive integer. The default count is 3 and the default index variable is loopIndex.
Enter a positive integer or reference a workflow variable that resolves to one at runtime.
Suitable uses:
- Retry a fixed number of times.
- Turn a page a specified number of times.
- Repeat input or checks according to a configuration.
Do not use a fixed loop for unlimited retries. Set a reasonable count and combine error handling or conditions to stop.
For Each Data Item
Iterates through an array, object, or unknown variable. The default current item is loopItem, and the default index is loopIndex.
Common sources:
- An array from Start.
- A full array imported from Excel.
- An array or object from JSON parsing or field extraction.
- A list in an upstream request response.
For example, visit a URL array:
For Each Data Item → Access ${loopItem} → Loop EndFor an object or Unknown value, inspect debug data first, then configure field extraction or page actions using the actual loopItem and loopIndex values.
While
Repeats while a condition is true. It uses the same variables and operators as IF, with Exists as the default operator.
Clearly define:
- The system or workflow variable to read.
- The comparison operator.
- The comparison value, except for Exists and Does Not Exist.
- The operation in the body that eventually makes the condition false.
Prevent an Endless Loop
If the body never changes the condition, While can run until the workflow or task times out. Provide a clear exit condition and set a reasonable workflow or per-profile timeout.
Break Loop
Ends the current loop early without additional business configuration.
It is commonly placed in an IF branch:
Loop body → IF target found ─True→ Break Loop
└False→ continue → Loop EndBreak Loop is valid only on a loop path. It cannot be placed in a group or used as the termination node for an ordinary workflow.
Close Profile
Closes the current browser profile and ends its execution path. It has no business configuration.
Connection rules:
- One standard input only.
- No standard output.
- An error branch can still be connected according to its error handling.
Use it to end a profile after a branch completes or clean it up when a stop condition is detected. Whether a formal task closes profiles after normal completion is controlled by Browser Behavior.
Variable Scope
Flow Control variables follow execution paths:
- IF and While can read only variables already produced upstream.
- A loop body can read index, current item, or extracted-value variables produced by the loop.
- When calculating variables available at a loop header, the editor ignores the
Loop Endback edge to prevent body variables from leaking into the header prematurely. - Group children can read upstream group variables and output from earlier nodes inside the group.
- A later definition with the same name overwrites the earlier value.
Common Validation Errors
IF Branch Missing
Connect both True and False. Even when one branch has no immediate action, design a clear downstream path.
Loop Back Edge Missing
Connect the end of the body to Loop End, not to the main input or default output.
Loop Body Cannot Use a Variable
Confirm that the node is downstream of Loop Start and that its name matches the loop configuration.
Standard Node Has Multiple Invalid Inputs
A standard node can receive multiple standard inputs only when valid IF branches merge. Restructure unrelated paths instead of connecting them directly.
A Node Is Connected After Close Profile
Close Profile is terminal and has no standard output. Delete the following connection or move that operation before Close Profile.
Related Guides
- Use the Workflow Editor: Learn groups, error branches, and graph validation.
- Variables and Data: Review variable scope in loops and branches.
- Data Processing Nodes: Transform data in a loop body.
- Debug Automation Workflows: Review structured IF, loop, and group logs.