Skip to content

Flow Control Nodes ​

Flow Control nodes determine where a workflow starts, which branch it follows, what it repeats, how it controls the task, and when it ends. This guide covers all 11 flow management nodes.

Flow Control nodes
Flow Control 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.

Start Flow configuration
Start Flow configuration
No.SettingDescription
1Variable nameEnter a valid, unique global variable name
2TypeSelect a data type such as String, Number, Boolean, Array, or Object
3Default valueEnter an initial value that matches the selected type
4NotesOptionally describe the variable's purpose
5Add variableAdd another global variable configuration

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.
  • Set child nodes to stop or skip on error, individually or in bulk.
  • 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 criteria and limits.

Group node actions
Group node actions
No.FeatureDescription
1UngroupRemoves the current group, moves its nodes out, and preserves node order and connections
2Edit group nameChanges the group name for identification
3Edit / move nodeClick a configured node to edit it, or press and drag it within the group to reorder
4DeleteDeletes the selected node
5Error handlingSets the current child node to stop or skip on error. See Group Nodes and Child Nodes for behavior and group error branch configuration

Configure Child Node Error Handling in Bulk ​

To apply the same error handling strategy to all child nodes in a group, click Child Node Error Settings (Batch) in the group's floating toolbar.

Child node batch error settings entry
Child node batch error settings entry

The dialog displays the number of child nodes in the current group. Select an error handling strategy, then click Confirm to apply it to all child nodes in that group.

Child node batch error settings dialog
Child node batch error settings dialog
OptionBehavior on error
Stop: Stop the current group on errorStops the remaining nodes inside the group, then follows the group's error handling configuration
Skip: Continue execution on errorSkips the failed child node and continues with the next node inside the group

The batch setting overwrites each child node's existing error handling setting. The group's own error handling configuration remains unchanged. See Group Nodes and Child Nodes for how group and child node error handling interact.

IF ​

Reads a system or workflow variable in the current scope and chooses the True or False branch based on a comparison.

Configure a Condition ​

IF supports:

OperatorPurpose
Exists / Does Not ExistChecks whether a variable has a usable value without a comparison value
Less Than / Less Than or EqualChecks whether a number or comparable value is below the target
Equal / Not EqualChecks whether the two values match
Greater Than / Greater Than or EqualChecks whether a number or comparable value is above the target
Contains / Does Not ContainChecks whether a value contains the target
In / Not InChecks 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.

text
                 ┌→ True branch  ─┐
Start → IF       │                → Merge node
                 └→ False branch ─┘

Validation fails when either branch is missing.

IF condition and branches
IF condition and branches
No.SettingDescription
1VariableSelect the system or workflow variable to read for the condition
2OperatorSelect Exists, Equal, Contains, or another comparison
3Comparison valueEnter the target value for every operator except Exists and Does Not Exist; variables are supported

Shared Connections for Structured Loops ​

For Each Element, Repeat N Times, For Each Data Item, and While share this port structure:

text
                  ┌── Loop Start → loop body ──┐
Upstream → Loop   │                            │
                  └ ←──── Loop End ────────────┘
                     │
                     └→ nodes after the loop

The loop body must return to Loop End. Connecting it directly to the default output breaks the structure and fails validation.

Structured loop ports
Structured loop ports
No.PortPurposeConnection rule
1Main inputEnters the loop from upstreamAt most one standard input
2Loop StartEnters the current iteration bodyAt most one output connection
3Loop EndReturns from the body to the loop headerAt least one back edge; can receive several loop branches
4Default outputContinues the main flow after the loopAt most one; can remain unconnected

For Each Element ​

Uses a selector to iterate over matching page elements, handling one per iteration.

For Each Element configuration
For Each Element configuration
No.SettingDescription
1Selector typeSelect Selector, XPath, or Text
2SelectorEnter the location of the elements to iterate; variables are supported
3Extraction typeSelect text, DOM object, iframe, source, attribute, or child element; attributes and children also require an extraction target
4Save extraction result toEnter the variable name for each extracted value; the default is loopValue
5Save loop index toEnter the current index variable name; the default is loopIndex

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:

text
For Each Element → Get or process ${loopValue} → Loop End

To click the current element directly, 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.

Repeat N Times configuration
Repeat N Times configuration
No.SettingDescription
1Repeat countEnter a positive integer or reference a workflow variable; the default is 3
2Save loop index toEnter the current index variable name; the default is loopIndex

The repeat count can be a positive integer or a workflow variable. At runtime, the variable must resolve to a valid positive integer.

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.

For Each Data Item configuration
For Each Data Item configuration
No.SettingDescription
1DataSelect an input variable of type Array, Object, or Unknown
2Save current item toEnter the variable name for the current item; the default is loopItem
3Save loop index toEnter the current index variable name; the default 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:

text
For Each Data Item → Access ${loopItem} → Loop End

For 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.

While configuration
While configuration
No.SettingDescription
1Condition variableSelect a system or workflow variable in the current scope
2OperatorSelect an existence, comparison, contains, or collection operator
3Comparison valueEnter the target value except for Exists and Does Not Exist; variables are supported

The loop body must contain an operation 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:

text
Loop body → IF target found ─True→ Break Loop
                         └False→ continue → Loop End

Break 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 the node's 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.

Task Management ​

Task Management nodes control the current task during execution. Both are terminal nodes: they need no configuration and cannot connect to a following ordinary action.

Stop Task ​

Stops further execution of the current task. The node waits for already started batches to register the stop before committing task control, and no new execution batches are scheduled. Check Run History to confirm each profile's final state.

Disable Task ​

Stops the current task and sets its enabled state to off. A disabled task is not started by later scheduling. Re-enable it from Task Management before running it again. This node is also terminal and cannot connect to a following ordinary action.

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 End back 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 Is Missing ​

Check that both True and False are connected. Even when one branch has no immediate action, design a clear downstream path.

Loop Back Edge Is Missing ​

Confirm that the end of the loop body connects to Loop End, not to the main input or default output.

Loop Body Cannot Access a Variable ​

Check that the node is downstream of Loop Start and that the variable name matches the loop configuration.

Standard Node Has Invalid Multiple Inputs ​

A standard node can receive multiple standard inputs only when valid IF branches merge. A rejoining error connection does not count toward the standard input limit, so an error branch and the normal path can connect to the same downstream node. See Rejoin the Normal Path from an Error Branch. Restructure unrelated paths instead of connecting multiple independent paths directly to the same node.

A Node Remains Connected After Close Profile ​

Close Profile is terminal and has no standard output. Delete the following connection or move the operation before Close Profile.

A Task Management Node Has a Following Connection ​

Stop Task and Disable Task are terminal nodes. Delete the ordinary output connection and move required actions before the task management node.