Node Documentation
Find what each node does, inspect its real appearance, inputs, outputs and configuration, and try editing it on the page.
Showing 210 / 210 nodes
Automation
38 nodesActivate the configured target before input, bringing a desktop window forward or starting the Android package.
window.activateCapture the configured target for template recognition or an AI node.
window.captureConnect a detected center point to click it with the left button in the configured target.
mouse.clickFind a button template in the configured target and click the match center.
template.clickRequest that the target window close after the task.
window.closeProvide start/end points and a duration to drag an object within the target window.
mouse.dragContinuously sample position into a string variable and follow a connected path from the chosen start to end.
navigation.follow-pathSelect a saved route and visit its points using a continuously updated position variable.
navigation.follow-saved-pathRead the pointer position within the target client area for movement or coordinate calculations.
mouse.positionHold a movement key during an operation and pass its lease to Release held input afterward.
keyboard.holdHold the left button at a point, then release the output lease after other actions.
mouse.holdSelect an application target with a configured executable, launch it, then wait for its window.
app.launchCombine sampled X/Y and heading into a standard position with sample time and validity.
position.makeMaximize the target window before recognition.
window.maximizeMinimize the target window when a background task finishes.
window.minimizeSet the target window position and size in screen pixels for repeatable interactions.
window.move-resizeRead a position variable and approach target X/Y where a traversable straight path exists.
navigation.move-toMove the pointer smoothly to a detected location without clicking.
mouse.moveSend a small relative horizontal movement to a target that uses relative input.
mouse.move-relativeParse JSON position text from a plugin using field mappings for navigation.
position.parseReplay a saved keyboard/mouse macro in the selected target.
macro.playPress Ctrl+C once in the configured target before continuing.
keyboard.pressRead foreground status and dimensions to decide whether to activate or resize the window.
window.stateConnect the lease from Hold keys or Hold mouse button and release it when the operation ends.
input.release-heldReplay a recorded input clip with its original timing for continuous drags or mouse movement.
input-clip.playRestore a minimized or maximized target window.
window.restoreScroll down a few notches in a target region, then capture the updated view.
mouse.scrollAfter Android automation, stop the package selected by the target. The target must support stopping applications.
app.stop-targetDuring cleanup, terminate processes matching the configured path and inspect the returned count.
app.terminateTurn 90 degrees using a calibrated target configuration.
navigation.turnTurn the camera incrementally until a template is found or the search limits are reached.
navigation.search-templateClick a text field, then type Unicode text into the same target.
keyboard.type-textAfter turning a page, wait for the content region to differ sufficiently from its baseline.
observation.wait-changeWait for a region to settle after loading before capturing it for recognition.
observation.wait-stableWait for a "Loading complete" template before continuing automation.
template.waitWait for a loading-overlay template to disappear before interacting with the page.
template.wait-goneAfter launching an application, wait for a matching window before interacting with it.
window.waitAfter requesting closure, wait until all matching windows disappear.
window.wait-goneFlow
14 nodesConnect a boolean image-match result and provide separate true and false paths.
flow.branchWait 2 seconds after a click before reading the interface state; enter 2000 milliseconds.
flow.delayExplicitly end a branch that has no further work.
flow.end-branchRaise an explanatory error when required information is missing so the branch enters error handling.
flow.throwFeed in filenames and read each file in the loop body using the current item and index.
flow.for-eachListen for refresh signals during the main task and process each notification in sequence.
signal.listenMonitor for an exceptional screen while the main task follows a path; handle an interruption, then resume the main task.
flow.monitorRead window state every 1000 milliseconds; a count of 0 continues until stopped.
flow.periodicSet the count to 3 to execute the loop body three times in sequence.
flow.repeatAllow up to 3 attempts for a fallible recognition action and explicitly route retryable failure back to the retry region.
flow.retryConnect Started to a window action or Delay to begin the first step when the workflow starts.
event.run-startedSend a refresh notification and value to branches already listening under the same name.
signal.sendHandle ready, busy and done separately; configure the case count and values, with unmatched values going to Default.
flow.switchBegin waiting for ready and continue after another branch sends it.
signal.waitPanel
33 nodesAppend the current step to a legacy run-panel log.
panel.legacy.logAppend processing progress to a managed panel log component.
panel.logIn a legacy workflow, create a progress run panel before registering components with the same panel ID.
panel.legacy.createEnd a legacy run panel after processing while preserving its final display.
panel.legacy.endObtain a typed event component reference and connect it to a compatible panel node.
panel.ref-eventObtain a typed log component reference and connect it to a compatible panel node.
panel.ref-logObtain a typed number component reference and connect it to a compatible panel node.
panel.ref-numberObtain a typed text component reference and connect it to a compatible panel node.
panel.ref-textObtain a typed toggle component reference and connect it to a compatible panel node.
panel.ref-toggleListen to button interactions on a managed panel and process them sequentially.
panel.listenRead a numeric value from a managed panel for the next node.
panel.read-numberRead a text value from a managed panel for the next node.
panel.read-textRead a toggle value from a managed panel for the next node.
panel.read-toggleRead a numeric value from a registered legacy component using the same panel and component IDs.
panel.legacy.read-numberRead a text value from a registered legacy component using the same panel and component IDs.
panel.legacy.read-textRead a toggle value from a registered legacy component using the same panel and component IDs.
panel.legacy.read-toggleRegister a Continue button in an existing legacy run panel, then wait for its interaction.
panel.legacy.buttonRegister a legacy filename input, then read the text entered by the user.
panel.legacy.inputRegister a legacy mode dropdown with choices for the user.
panel.legacy.selectRegister a legacy toggle to enable an optional step.
panel.legacy.toggleUpdate an existing legacy numeric component using its panel and component IDs; register it first.
panel.legacy.write-numberUpdate an existing legacy text component using its panel and component IDs; register it first.
panel.legacy.write-textUpdate an existing legacy toggle component using its panel and component IDs; register it first.
panel.legacy.write-toggleShow the panel selected in workflow settings when the workflow starts.
panel.showDisplay the processed count in a legacy run panel.
panel.legacy.numberDisplay a status such as "Reading" in a legacy run panel.
panel.legacy.statusDisplay recognized text in a legacy run panel.
panel.legacy.textWrite a result to a managed panel's numeric component to update its display.
panel.write-numberWrite a result to a managed panel's text component to update its display.
panel.write-textWrite a result to a managed panel's toggle component to update its display.
panel.write-toggleSelect a managed panel and obtain its reference for subsequent panel nodes.
panel.useWait for the registered Continue button, including an interaction already queued.
panel.legacy.waitAfter showing a confirmation button, wait for one interaction; continue when received or take the failure path on timeout.
panel.waitData
106 nodesFor example, take the absolute value of -3 to get 3, then connect the result to a numeric input.
math.absoluteFor example, add 2 and 3 to get 5, then connect the result to a numeric input.
math.addPlace a locally recorded path in a world reference using an explicit origin and rotation.
path.alignOpen a persistent Blob as a stream when the next node needs to consume it in chunks during this run.
conversion.blob-to-streamConnect an upstream result, inspect a color blob’s area, center and bounds, and pass the required fields to later nodes.
structure.break-color-blobConnect an upstream result, inspect file size, extension and modification time from metadata, and pass the required fields to later nodes.
structure.break-file-metadataConnect an upstream result, inspect coordinates, heading, validity and sampling information from a position, and pass the required fields to later nodes.
position.breakConnect an upstream result, inspect the coordinate reference and ordered points of a path, and pass the required fields to later nodes.
path.breakConnect an upstream result, inspect a path point’s ID, coordinates and height, and pass the required fields to later nodes.
path-point.breakConnect an upstream result, inspect the frame, unit and axes of a path coordinate reference, and pass the required fields to later nodes.
path-reference.breakConnect an upstream result, inspect X, Y and unit from a point, and pass the required fields to later nodes.
structure.break-pointConnect an upstream result, inspect position, dimensions and unit from a region, and pass the required fields to later nodes.
structure.break-regionConnect an upstream result, inspect score, center and bounds from a template match, and pass the required fields to later nodes.
structure.break-template-matchAssemble a coordinate reference and an ordered point list into a path.
path.makeFor example, round 3.2 upward to 4, then connect the result to a numeric input.
math.ceilingConvert 2.2 to integer 3 when calculating how many batches are needed.
conversion.ceiling-to-integerFor example, clamp 120 to 0–100 to get 100, then connect the result to a numeric input.
math.clampFor example, clamp 120 to 0–100 to get 100; inputs and result remain integers for counts or indexes.
math.integer-clampJoin "File: " and a filename for logging.
text.concatCheck whether returned text contains success, then branch on the result.
text.containsFor example, divide 10 by 2 to get 5, then connect the result to a numeric input.
math.divideCheck whether a filename ends in .png.
text.ends-withCompare two values of the same type and branch on whether they are equal.
comparison.equalFor example, round 3.7 downward to 3, then connect the result to a numeric input.
math.floorConvert 3.8 to integer 3 for a list index.
conversion.floor-to-integerRead a path point by index, then inspect its coordinates and ID.
path.pointCheck whether the processed count has reached the target and end the branch when it has.
comparison.greater-or-equalCompare a recognition score with a threshold and continue when it is higher.
comparison.greater-thanIncrement a numeric state after each task without a read-modify-write race between branches.
state.incrementFind the first colon and handle a result of -1 when none exists.
text.index-ofConnect an upstream result, inspect identity and panel information from an event component reference, and pass the required fields to later nodes.
panel.ref.break-eventConnect an upstream result, inspect identity and panel information from a log component reference, and pass the required fields to later nodes.
panel.ref.break-logConnect an upstream result, inspect identity and panel information from a numeric component reference, and pass the required fields to later nodes.
panel.ref.break-numberConnect an upstream result, inspect identity, name and generation information from a panel reference, and pass the required fields to later nodes.
panel.ref.break-panelConnect an upstream result, inspect identity and panel information from a text component reference, and pass the required fields to later nodes.
panel.ref.break-stringConnect an upstream result, inspect identity and panel information from a toggle component reference, and pass the required fields to later nodes.
panel.ref.break-booleanFor example, take the absolute value of -3 to get 3; inputs and result remain integers for counts or indexes.
math.integer-absoluteFor example, add 2 and 3 to get 5; inputs and result remain integers for counts or indexes.
math.integer-addFor example, take the remainder of 7 divided by 3 to get 1; inputs and result remain integers for counts or indexes.
math.integer-moduloFor example, multiply 3 by 4 to get 12; inputs and result remain integers for counts or indexes.
math.integer-multiplyFor example, negate 3 to get -3; inputs and result remain integers for counts or indexes.
math.integer-negateFor example, subtract 2 from 7 to get 5; inputs and result remain integers for counts or indexes.
math.integer-subtractJoin ["red", "green", "blue"] with commas for display.
collection.joinJoin two paths in the same coordinate reference into one ordered route.
path.joinUse $.user.name to read the name from {"user":{"name":"Ada"}}.
json.pathCheck whether a distance is within the allowed tolerance.
comparison.less-or-equalCheck whether fewer than one attempt remains and stop further attempts.
comparison.less-thanAppend a filename to a work list and use the returned new list.
collection.appendCheck whether a filename list already contains report.txt and branch to avoid processing it twice.
collection.containsRead the first recognition result at index 0; check the list length first to avoid an out-of-range access.
collection.getCount a work list and send the total to a log or numeric panel.
collection.lengthTake 10 items starting at index 0 and pass the batch to For each.
collection.sliceRequire both "window exists" and "text matches" before continuing.
logic.andNegate "already complete" to continue while work remains.
logic.notContinue when either of two recognition methods succeeds.
logic.orUse X=0.5, Y=0.5 and unit ratio for the center of the target image.
geometry.make-pointFor example, take the maximum of 3 and 7 to get 7, then connect the result to a numeric input.
math.maximumFor example, take the maximum of 3 and 7 to get 7; inputs and result remain integers for counts or indexes.
math.integer-maximumFor example, take the minimum of 3 and 7 to get 3, then connect the result to a numeric input.
math.minimumFor example, take the minimum of 3 and 7 to get 3; inputs and result remain integers for counts or indexes.
math.integer-minimumFor example, take the remainder of 7 divided by 3 to get 1, then connect the result to a numeric input.
math.moduloFor example, multiply 3 by 4 to get 12, then connect the result to a numeric input.
math.multiplyFor example, negate 3 to get -3, then connect the result to a numeric input.
math.negateCompare newly recognized text with the previous value and update only when they differ.
comparison.not-equalRecord the current Unix-millisecond time at a key step for duration calculations.
time.observeOffset a template-match center horizontally to click an adjacent control.
geometry.offset-pointParse JSON text from an HTTP response before reading its fields.
json.parseMeasure the distance from the current position to a target point using matching units.
geometry.point-distanceFor example, raise 2 to the third power to get 8, then connect the result to a numeric input.
math.powerGenerate a boolean sample with probability 0.5 to choose between two test paths.
random.booleanChoose one item randomly from a nonempty list of candidate strings.
random.choiceSample an integer within configured bounds for a test-data identifier.
random.integerSample a number within configured bounds for test data or an offset.
random.numberRead a selected saved path version and pass its path data onward.
path.readSelect a workflow state variable and connect its current value to a data input.
state.readRead elapsed milliseconds from a stopwatch start time while the task continues.
time.stopwatch-readUse a regular expression to extract digits from "Order: 12345".
text.regex-extractUse ^[0-9]+$ to check whether an entire string consists of digits.
text.regex-matchReplace an old separator with commas, optionally replacing every occurrence.
text.replaceReverse a route for travel in the opposite direction.
path.reverseCreate a small region around a detected center to narrow the next recognition search.
geometry.region-around-pointFor example, round 3.14159 to two decimal places to get 3.14, then connect the result to a numeric input.
math.roundConvert 2.6 to the nearest integer, 3, for an integer input.
conversion.round-to-integerChoose between the strings "Success" and "Failure" according to a boolean condition.
logic.selectSelect a section of a route using start and end indexes.
path.sliceSplit newline-separated filenames into a string list for item-by-item processing.
collection.splitFor example, take the square root of 9 to get 3, then connect the result to a numeric input.
math.square-rootRecord a start time before an operation and pass it to Read or Stop stopwatch.
time.stopwatch-startCheck whether a line starts with ERROR.
text.starts-withRead when a state was last changed to determine how long it has gone without an update.
state.last-changeRead a state revision and modification time to detect changes during observation.
state.metadataRecord the final elapsed duration from the original start time and continue through Done.
time.stopwatch-stopCollect a stream into a persistent Blob and specify its media type.
conversion.stream-to-blobCount characters to check whether text was supplied.
text.lengthTake 4 characters from index 0; use length -1 to read to the end.
text.substringFor example, subtract 2 from 7 to get 5, then connect the result to a numeric input.
math.subtractConvert the string "12" to an integer for a repeat count.
conversion.string-to-integerConvert the lowercase string true from a text setting into a boolean condition.
conversion.string-to-booleanSerialize a structured result as JSON text for a log or text display.
json.stringifyLowercase a file extension before comparing it.
text.lowercaseConvert "12.5" to a number for an amount or distance calculation.
conversion.string-to-numberConvert a numeric count to text and prepend "Processed: " for display.
conversion.to-stringUppercase an identifier for display.
text.uppercaseTrim surrounding whitespace before comparing user input.
text.trimDiscard the fractional part of -1.9 to get integer -1.
conversion.truncate-to-integerWrite a recognition result to a state variable of the same type for other branches to read.
state.writeFiles
7 nodesRead /status from an HTTP target with a configured base URL, then parse the returned JSON text.
http.getInspect file size and modification time before deciding whether to load it.
file.statLoad templates/button.png from workflow files for use as a template image.
file.load-imageRead settings.json from workflow files, then extract a field with JSON path.
file.read-jsonRead names.txt from workflow files, split it on newlines and process each line.
file.read-textSave a window capture to captures/result.png in workflow files for later review.
file.save-imageLog "File read complete" after a key step and select an appropriate severity.
log.writeVision
5 nodesMeasure the fraction of red pixels in an image region to detect a color indicator.
vision.analyze-colorCompare the same region before and after an action to measure visual change.
vision.compare-imagesFind connected blobs in a color range, then inspect their areas or centers.
vision.find-color-blobsFind all matching icons in an image and iterate over the returned list.
vision.find-template-matchesFind the best button-template match in an image and inspect its score and center.
vision.match-templateAI
2 nodesConnect a receipt image and a prompt to extract date, merchant and amount; configure those fields and pass the structured result onward.
ai.extractConnect a window capture and ask for a summary of the page using a configured AI target.
ai.generateOther
5 nodesConnect an upstream result, inspect text and location points from a QR result, and pass the required fields to later nodes.
qr.breakConfigure the target region, inner/outer color ranges and left/right keys to keep a narrow pointer near the wide target bar.
dual-color-bar.controlConnect an image and QR region to obtain a list of decoded QR codes.
qr.decodeReshape structured input with an isolated JavaScript script and return a JSON result.
script.executeDetect the two-color bar in an image and use pointer position, target width and confidence for later control decisions.
dual-color-bar.track