MaskifiMaskifi
Download

Block reference

This page describes every block type available in the Maskifi scenario builder. Blocks are the individual steps that make up a scenario.

All string fields in any block support variable interpolation — insert {{variableName}} anywhere a string is accepted and Maskifi substitutes the value at run time. See Variables & secrets for the full syntax.


Action

The most versatile block. The Action field determines what the browser does. All action blocks share a common set of optional parameters:

Parameter Description
Selector CSS selector for the target element
Value Action-specific text, URL, key name, or other value
Timeout Maximum wait time in milliseconds (default: 30 000)

Supports {{variableName}} in Selector, Value, and other text fields.

Click

Standard left click on the matched element.

Use: Submit forms, open links, toggle checkboxes.


Human click

Same as Click but uses humanised cursor movement when the profile's browser is launched with that option enabled.

Use: Clicking where natural mouse movement is needed to reduce bot-detection signals.


Double click

Double left-click on the matched element.

Use: Edit inline text, select a word, open files.


Right click

Right-click (context menu) on the matched element.

Use: Open context menus, trigger custom right-click handlers.


Type

Clicks the element, then types text character by character with human-like delays and occasional typos. Clears any existing content first.

Parameter Required Description
Selector yes Input element
Value yes Text to type; supports {{variableName}}

Use: Fill forms, search boxes, login credentials.


Navigate the active tab to a URL.

Parameter Required Description
Value yes Full URL

Waits for the page to load before proceeding.

Use: Open pages, follow links programmatically.


Scroll

Scroll an element into view, or scroll the page by a fixed pixel amount.

Parameter Required Description
Selector no If provided, scrolls that element into view
Value no Pixel amount to scroll when no selector is set (default: 300)

Use: Reach lazy-loaded content, scroll to specific elements.


Hover

Move the mouse pointer over the matched element.

Parameter Required Description
Selector yes Element to hover

Use: Open dropdown menus, trigger tooltips, reveal hidden elements.


Press

Press a keyboard key, optionally focused on an element.

Parameter Required Description
Selector no Element to focus before pressing the key
Value yes Key name

Common key names: Enter, Escape, Tab, ArrowDown, ArrowUp, Backspace, Delete, Control+A, Shift+Tab.

Use: Submit with Enter, close modals, keyboard navigation.


Wait

Wait for an element to become visible before continuing.

Parameter Required Description
Selector yes Element to wait for
Timeout no Max wait in milliseconds (default: 30 000)

Use: Wait for content that loads after the page, animations, page transitions.


Select

Select an option in a dropdown.

Parameter Required Description
Selector yes The dropdown element
Value yes The option to select

Use: Form dropdowns, filter selectors.


Mouse move

Move the mouse to a specific position on the page.

Parameter Required Description
X yes Horizontal position in pixels
Y yes Vertical position in pixels
Steps no How many intermediate steps to use for smooth movement (default: 10)

Use: Simulate human mouse movement, interact with canvas elements.


Upload

Upload a file via a file input element.

Parameter Required Description
Selector yes The file input element
Value yes Path to the file on your computer

Use: Upload avatars, documents, import files.


Drag and drop

Drag one element to another.

Parameter Required Description
Selector yes Element to drag
Value yes Selector of the element to drop onto

Use: Kanban boards, sortable lists, file drop zones.


New tab

Open a new browser tab, optionally navigating to a URL.

Parameter Required Description
Value no URL to open in the new tab

After this block runs, subsequent blocks operate in the new tab.

Use: Open links in new tabs, parallel page work.


Switch tab

Switch to an existing tab by its number (first tab = 1).

Parameter Required Description
Value yes Tab number

Use: Return to the original tab after working in a new one.


Close tab

Close a tab by its number, or the current tab if no number is given.

Parameter Required Description
Value no Tab number; leave empty to close the current tab

After closing, execution continues in the first remaining tab.

Use: Clean up tabs after extracting data.


Switch iframe

Move focus into an embedded iframe on the page, or back to the main page.

Parameter Required Description
Value no Selector of the iframe to switch into; leave empty to return to the main page

After switching, all actions operate inside the iframe until you switch back.

Use: Payment forms, embedded widgets, third-party iframes.


Close browser

Close the browser for the current profile. Any blocks after this are skipped.

No parameters.

Use: Final clean-up step at the end of a scenario.


Delay

Pause execution for a random duration between a minimum and maximum.

Parameter Required Description
Min yes Minimum pause in milliseconds
Max yes Maximum pause in milliseconds

Use: Simulate human-like pauses between actions, wait for animations to finish.


Extract

Extract data from the page and store it in a named variable for use in later blocks.

Parameter Required Description
Variable name yes Name to store the result under
What to extract yes Text, Attribute, or Count
Selector yes Element to read
Attribute name if Attribute Name of the HTML attribute to read (e.g. href)

Text

Reads the visible text content of the matched element.

Attribute

Reads a specific HTML attribute from the element (for example href, src).

Count

Counts how many elements match the selector and stores the number.

Use: Get text from elements, read link targets, count items for loop conditions.


API

Make an HTTP request and store the response in a variable.

Parameter Required Description
Method yes GET, POST, PUT, or DELETE
URL yes Request URL; supports {{variableName}}
Headers no Request headers as key/value pairs
Body no Request body (for POST/PUT requests)
Response variable yes Variable name to store the response
Timeout no Timeout in milliseconds (default: 30 000)

The response is stored as a JSON object. Access nested fields in later blocks: {{responseVariable.data.id}}.

Use: Send webhooks, fetch external data, integrate with third-party APIs.


Condition

Execute one set of blocks if a condition is true, and optionally a different set if it is false.

You define a condition by choosing a left value, an operator, and a right value. Supported operators: equals, not equals, greater than, less than, greater than or equal, less than or equal, contains (checks whether one value appears inside another), and exists (checks whether a variable has a value at all).

The "If true" branch runs when the condition passes; the optional "If false" branch runs when it does not.

Use: Conditional navigation, error handling, different paths based on page state.


Loop

Repeat a set of blocks a fixed number of times or while a condition remains true.

Parameter Required Description
Loop type yes Times (fixed count) or While (repeat while a condition holds)
Times if Times Number of iterations
Condition if While Condition to check before each iteration
Max iterations yes Safety limit — loop stops after this many iterations regardless

Inside the loop body, {{$index}} holds the current iteration number (starting at 0).

Use: Pagination scraping, clicking "load more" N times, repeating a step while a condition holds.


Script

Execute arbitrary JavaScript in the page and optionally store the return value.

Parameter Required Description
Code yes JavaScript to run
Result variable no Variable to store the return value

The script runs inside the browser page. You can use {{variableName}} inside the code. Return a value to store it in the result variable.

return document.querySelectorAll('.product').length
return JSON.parse(localStorage.getItem('userData'))?.token

Use: Complex page interactions, reading page storage, custom calculations.


Try/Catch

Wrap blocks in an error handler. If any block in the "Try" section fails, execution continues with the "Catch" section instead of stopping the scenario.

Parameter Required Description
Try yes Blocks to attempt
Catch yes Blocks to run if any Try block fails
Error variable no Variable to store the error message

Without a Try/Catch block, any block failure stops the entire scenario immediately. Wrapping risky steps in Try/Catch lets the scenario handle errors gracefully.

Use: Handle optional popups (cookie banners, modals) that may or may not appear, graceful error recovery, retry patterns.


Log

Output a message to the execution log. Supports {{variableName}} interpolation.

Parameter Required Description
Message yes Message text

Messages appear in the execution log panel during and after a run.

Processing item {{$index}} of {{totalItems}}
Extracted email: {{userEmail}}
API response: {{apiResponse.status}}

Use: Debug scenarios, track progress, log extracted values.


AI Agent

Run an AI agent that autonomously operates the browser to achieve a stated goal.

Parameter Required Description
Goal yes Plain-language description of what the agent should accomplish
Max steps no Maximum number of browser actions before giving up (default: 25)
Output variable no Variable to store data returned by the agent
Provider no AI provider to use
Model no Model to use for the selected provider

Use: Open-ended browser tasks where the exact steps are not known in advance.


Generate

Generate a new identity for the active profile (name, locale, age).

Parameter Required Description
Locale yes Language/region for the generated data, or Auto
Gender yes Random, Male, or Female
Min age yes Minimum age for the generated persona
Max age yes Maximum age for the generated persona

Use: Generating realistic persona data before a registration flow.


Variable interpolation reference

All text fields accept {{...}} expressions:

Syntax Value
{{myVar}} Value of a variable you defined
{{$index}} Current loop iteration (starting at 0)
{{$timestamp}} Current time as a numeric timestamp
{{$random}} Random number between 0 and 1
{{response.data.id}} A nested field inside an object variable
{{items[0]}} First item in a list variable