Skip to content

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.

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.

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.

Group node actions
Group node actions
No.FeatureDescription
1UngroupRemoves the group while preserving node order and connections
2Edit group nameChanges the group name for identification
3Edit / move nodeClick a configured node to edit it, or drag it within the group to reorder
4DeleteDeletes the node
5Error handlingStops 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:

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 a system or workflow variable to read
2OperatorSelect Exists, Equal, Contains, or another comparison
3Comparison valueEnter 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:

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.

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:

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

To 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:

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.

Clearly define:

  1. The system or workflow variable to read.
  2. The comparison operator.
  3. The comparison value, except for Exists and Does Not Exist.
  4. 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:

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