Skip to main content

Node Reference

This section documents every node you can place on the canvas. Each node has its own page covering what it is for, when not to use it, every setting with its range and default, its ports, and how it behaves at run time.

How the toolbox is organised

The node toolbox has six groups. This reference follows the same order, so what you see in the app and what you read here line up.

GroupNodesWhat they do
Actions6Send input to the device
Detection3Read what is on the screen
Logic6Branch, loop, and compute
Memory2Remember things across runs
Captcha1Get past a challenge
Control5Start, stop, call, and monitor

All nodes

Actions

NodeSummary
ClickTaps — or presses and holds — one point on the screen
SwipeSwipes or drags across the screen, to scroll, flick, or move something
ZoomPinches with two fingers to zoom the screen in or out
Input TextTypes text into the input field that currently has focus
WaitPauses the flow for a fixed amount of time
Key PressSends a hardware / navigation key such as Back, Home, or Enter

Detection

NodeSummary
Find ImageWaits for a saved template image to appear, then branches on whether it was found
Check RegionTests a rectangle's colour, brightness, or change against a rule
Read Text (OCR)Reads text out of one or more rectangles into variables

Logic

NodeSummary
IfBranches on a condition — five different modes
BranchPicks one of its outputs at random
LoopRepeats the nodes between Loop and Loop End
BreakLeaves the enclosing loop early
ContinueSkips to the enclosing loop's next iteration
VariableSets, clears, deletes, or logs flow variables

Memory

NodeSummary
Memory MatchAsks whether a candidate matches anything already remembered
Runtime MemoryRemembers, forgets, clears, or counts entries

Captcha

NodeSummary
CaptchaReads a challenge, carries it out, and verifies it was accepted

Control

NodeSummary
StartWhere every run begins
StopEnds the run with a declared status and message
ReturnEnds the whole flow from anywhere, including inside a loop
Monitor ScopeWatches for a condition while the nodes in a zone run
Sub FlowCalls another saved flow as a function

Older flows may also contain node types that are no longer offered in the toolbox. See Legacy nodes.

Reading a node page

Every page uses the same structure, so you can jump straight to what you need:

  • Purpose / When to use / When not to use — is this the right node at all?
  • How it runs — what the runtime actually does, step by step.
  • Settings — every field, with type, range, default and effect.
  • Ports — every exit and what routes there.
  • Examples — a basic one and a realistic one.
  • Best practices, Performance, Memory — how to use it well at scale.
  • Common mistakes / Troubleshooting / FAQ — what goes wrong and why.

Ports every node shares

Most nodes expose some subset of these. The meaning is consistent everywhere:

PortTaken whenNotes
SuccessThe node did its jobRequired on most nodes
FailureA recoverable problem, or a detection "not found"Wire it
TimeoutThe operation did not complete in timeAction nodes only
CancelledThe run was stopped mid-nodeNever followed — the run finalizes
FatalDevice disconnected, or invalid configurationNever followed — the run finalizes
Cancelled and Fatal do not create recovery paths

The runtime finalizes the run the moment a node reports cancelled or fatal. Those ports exist on the canvas, but an edge from them is not followed during a normal run. Everything you intend to recover from must arrive on Failure.

Status is not route

For detection nodes, the node's status and the port it leaves through deliberately differ. A Find Image that does not find its template reports status success — the search worked — while routing to Failure.

The practical effect is that a "not found" never trips retry and never counts toward the consecutive-failure guardrail. This is explained in full in The Execution Model.

Nodes whose ports depend on their settings

Four nodes compute their port list from their own configuration rather than having a fixed set:

NodePorts
If — Multiple Branches modecase1caseN, plus default
If — Text-match modematch, noMatch
Find Image — Branch by templateone port per template, plus notFound
Branchbranch1branchN

Lowering a count removes the trailing ports and the editor prunes the orphaned edges.