Edit Graph
The main steps of your business process are captured in the automation graph. A graph consists of nodes and edges. Nodes are predefined actions that you instruct our agent to take such as clicking, typing or making a decision. You can add nodes by right-clicking on the canvas and connect them with each other by drawing an edge between them.Node Types
The workflow editor provides various node types to automate business processes through a graph-based interface. Action Nodes handle direct interactions likeNavigate, Click or ExtractDatamodel (structured data extraction).
Control Flow Nodes include BoolCondition for branching logic and Loop for repeated operations over arrays or ranges.
Specialized Nodes cover advanced scenarios like Tfa (two-factor authentication), FileUpload/FileDownload (file management) or UserInteraction (human-in-the-loop).
Execution Types
Nodes can use different execution strategies:- STATIC: Uses explicit XPATH selectors for deterministic targeting
- LLM_VISION: Uses AI to do an action or make a decision based off a screenshot.
- LLM_DOM: Leverages AI to extract elements in the DOM structure (for ExtractDatamodel only)
Tips and Tricks
- Use descriptive names for each node action. These are important context for the maintenance agent during recovery.
- Leverage LLM execution types when static selectors get too complex
- Use STATIC execution when possible for speed and reliability
Navigate Back
The navigation node supports navigating to the previous page. You can trigger this behavior by entering the reserved keywordback in the URL field.
Overwrite Arrays
Arrays are ‘append’ by default. If you extract into the same array twice e.g. in a loop, new items will be appended. You can override this behavior by adding the array key to theoverwriteArrayKeys array. Here’s an example JSON schema you could use in a ExtractDatamodel node:
Access Browser Variables
We allow extraction of some browser variables:- The complete URL the browser agent is on:
{{window.location.href}} - The path name of the current URL:
{{window.location.pathname}} - The query string of the current URL:
{{window.location.search}}
STATIC.
Extract Raw HTML
You can extract the HTML content of the current page using document variables:- Sanitized HTML (
{{document.sanitized}}): Extracts a simplified version of the HTML that removes most attributes and only maintains the structure, tags, and content. This is useful for cleaner data extraction and reduces noise when processing HTML. - Complete HTML (
{{document}}): Extracts the entire raw HTML with all attributes intact, including classes, IDs, data attributes, styles, and other metadata.
STATIC.
Other ExtractDatamodel Gotchas
- Extracting HTML attributes e.g. the
idvalue of an element is only supported inSTATICmode. Simply use an XPath that point to this attribute. - You can extract arrays in
STATICmode by supplying an XPath that matches several elements at once.
Edit Inputs & Outputs

{{context.inputs.my_variable}}. All the data that is extracted during runtime is returned in the execution.success webhook payload.
If you only want a subset of this returned, you can specify an optional output schema.
Data Transformation of Variables
Variables can be transformed before using them in an action. Let’s say you send a date in YYYY-MM-DD format, but you want to type it in DD/MM/YYYY format. You can use JSONata to transform the date like so:{{$fromMillis($toMillis(context.inputs.date, "[Y0001]-[M01]-[D01]"), "[M01]/[D01]/[Y0001]")}}
Here’s how the full node action would look like:

