Extraction Types
Common Properties
These properties sit on theextraction_action object itself, regardless of extraction type:
allow_none
By default, if you declare output_variable_names and any of those variables comes back null, the workflow fails immediately with an error like:
allow_none: true on the extraction_action when the value may legitimately be absent on some pages:
LLM Extraction
The most powerful extraction method. Uses AI to parse page content into structured data.Properties
Source Selection
Extraction Format
Define output structure with type hints:Only
str and List[str] are supported types.Storing as Variables
Useoutput_variable_names to make extracted values available for subsequent actions:
{order_ids[0]}, {order_ids[index]}, or iterate with for_loop_node.
Writing Good Instructions
Good examples:Locator Extraction
Extract text from a specific element on the page using a Playwright locator — no LLM tokens consumed. If the locator fails, it can fall back to LLM extraction.Properties
Fallback Behavior
If the locator fails to find the element or find text content, two outcomes are possible:- With
extraction_instructions— falls back to LLM extraction automatically - Without
extraction_instructions— variable is set toNone
When to Use Locator vs LLM
Network Call Extraction
Capture data from API requests and responses:Properties
API Call Extraction
Make an outbound REST API call directly from the automation—useful for hitting webhooks, triggering backend jobs, enriching data from a third-party service, or polling an async endpoint until it’s ready. The full response is stored as a variable for use in later actions.Properties
Response Shape
The stored variable holds a dict with the following keys:Using the Response
Reference fields of the response in later actions with dot-path syntax:{var.field}, {var.nested.field}, and {var.array[0].field}. Both object keys and array indices are supported.
{create_result.body.id} resolves to the new customer’s ID, and {create_result.status_code} resolves to 201.
Dot-path resolution (
{var.field}) applies only to dict-valued variables such as API responses. The existing list-indexing format {var[0]} from llm extraction is unaffected.Polling
For asynchronous endpoints, setpoll_condition to keep re-requesting until the condition is met (or max_poll_attempts is reached). The condition is a Python-style boolean expression evaluated against the response dict, supporting both top-level keys and dot-paths:
If the condition is never met within
max_poll_attempts, the last response is stored and the automation continues.
Screenshot Extraction
Save a screenshot for later analysis:State Extraction
Capture page state, including URL/title plus browser storage and cookies:Output
state extraction appends an OutputData.json_data object with the following shape:
Python Script Extraction
Run a custom Python function to extract data from the current page’s accessibility tree or perform any computed logic.Properties
The
code_fn function receives the page’s accessibility tree as a plain string (axtree) and the Playwright browser object. Return None to skip storing any output.Two-Factor Authentication Extraction
Wait for and extract 2FA code:Properties
Action Types
For more information on how to use the 2FA code in your automation, please refer to the Two-Factor Authentication Integration documentation.
Timing
Extraction actions have different timing defaults to allow pages to fully load:
Override if needed: