Robot Docs
🔍 Ctrl + K

Documentation Dablio Robô

Complete reference of all automation blocks. Select a block in the sidebar or use search to get started.

74
Available blocks
10
Categories
15+
Exclusive blocks
🔐

Temporary flows via URL or CustomEvent

✦ ADVANCED
dablioroboWorkflow
URLCustomEventJSONrunToken
Entry workflow commands

This feature allows you to run a temporary flow, assembled in memory, without previously creating and saving a flow in Dablio Robô. JSON can be sent via the page URL itself or via a JavaScript event CustomEvent.

It is recommended for integrations between systems, internal panels, ERPs, quick action links, indirect webhooks, pages that need to trigger local automations in the browser and scenarios where the flow is dynamically generated by an external application.

🔐
Execution protected by a runToken
Every temporary flow requires user session validation and parameter checking runToken in the backend before any blocks are executed.

Difference for saved stream

Saved flows are run by dablioroboId or dabliorobo and already exist in the extension store. Temporary streams are sent as JSON, executed in memory, and discarded after execution begins.

Complete workflow

Use dablioroboWorkflow when you already have a complete stream object containing blocks, connections, startBlockId, trigger and other metadata.

Command list

Use dablioroboCommands when you want to send a simple, sequential list of commands. Dablio Robô converts this list into a temporary workflow automatically.

Backend validation

Before execution, the robot calls existing session validation. When runToken is sent, the endpoint checks the código de execução and confirms whether or not the flow can continue.

Parameters available in the URL

Parameter Description
dablioroboWorkflow Complete workflow in JSON encoded in Base64URL. Runs the temporary flow without saving it.
dablioroboCommands Array of commands in JSON encoded in Base64URL. The robot converts commands into sequential blocks.
runToken Password configured on the backend to authorize temporary execution. Mandatory for dablioroboWorkflow and dablioroboCommands.
dablioroboData Optional JSON in Base64URL with initial execution data/variables.
dablioroboOnce When set to 1, avoids repeated triggering of the same URL during navigation/reloading.
dablioroboNow When set to 1, attempts to execute immediately, without waiting for later automatic behavior.
⚠️
Do not send dablioroboWorkflow and dablioroboCommands together. Use only one format per shot. If both are sent, the implementation should prioritize only one of them or reject execution to avoid ambiguity.

How to encode JSON to Base64URL

The parameters dablioroboWorkflow, dablioroboCommands and dablioroboData must be sent as Base64URL to avoid problems with quotes, accents, curly braces, slashes, spaces and special characters within the URL.

JavaScript — Generate Base64URL
function toBase64Url(obj) {
  const json = JSON.stringify(obj);
  const utf8 = new TextEncoder().encode(json);
  let binary = '';

  utf8.forEach(byte => {
    binary += String.fromCharCode(byte);
  });

  return btoa(binary)
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/g, '');
}

const workflowBase64 = toBase64Url(workflowJson);
const commandsBase64 = toBase64Url(commandsJson);

Example 1 — Send complete workflow via URL

In this format you send the entire workflow, similar to a flow exported by Dablio Robô. The stream will not be saved to local storage.

JSON — Temporary workflow
{
  "nome": "Consulta rápida no Google",
  "ativo": true,
  "blockDelay": 500,
  "startBlockId": "start",
  "trigger": {
    "tipo": "manual",
    "config": {}
  },
  "blocks": [
    {
      "id": "start",
      "type": "trigger",
      "config": []
    },
    {
      "id": "abrir_google",
      "type": "new-tab",
      "config": {
        "ativo": true,
        "url": "https://www.google.com",
        "criarNa": "janelaAtual",
        "aguardarCarregamento": true,
        "definirAbaAtiva": true
      }
    },
    {
      "id": "digitar_busca",
      "type": "forms",
      "config": {
        "ativo": true,
        "seletor": "textarea[name='q'], input[name='q']",
        "aguardarSeletor": true,
        "tempoAguardarSeletor": 15000,
        "acao": "text",
        "valor": "Dablio Group",
        "limparCampo": true
      }
    },
    {
      "id": "enviar_form",
      "type": "forms",
      "config": {
        "ativo": true,
        "seletor": "form[action*='/search']",
        "aguardarSeletor": true,
        "tempoAguardarSeletor": 10000,
        "acao": "submit"
      }
    }
  ],
  "connections": [
    {
      "from": { "blockId": "start", "port": "default" },
      "to": { "blockId": "abrir_google", "port": "in" }
    },
    {
      "from": { "blockId": "abrir_google", "port": "default" },
      "to": { "blockId": "digitar_busca", "port": "in" }
    },
    {
      "from": { "blockId": "digitar_busca", "port": "default" },
      "to": { "blockId": "enviar_form", "port": "in" }
    }
  ]
}
URL — Execution with dablioroboWorkflow
https://www.google.com/?dablioroboWorkflow=BASE64URL_DO_WORKFLOW&runToken=SUA_SENHA&dablioroboOnce=1&dablioroboNow=1

Example 2 — Send sequential commands via URL

In this format you only send a list of commands. The robot automatically assembles the starting block, intermediate blocks and sequential connections.

JSON — List of commands
[
  {
    "type": "open",
    "url": "https://www.google.com",
    "wait": true
  },
  {
    "type": "type",
    "selector": "textarea[name='q'], input[name='q']",
    "value": "Dablio Group",
    "wait": true,
    "clear": true
  },
  {
    "type": "submit",
    "selector": "form[action*='/search']",
    "wait": true
  },
  {
    "type": "click",
    "selector": "h3",
    "wait": true
  }
]
URL — Execution with dablioroboCommands
https://www.google.com/?dablioroboCommands=BASE64URL_DOS_COMANDOS&runToken=SUA_SENHA&dablioroboOnce=1&dablioroboNow=1

Aliases accepted in short commands

Alias Equivalent block/action
clickclicarclique Convert to block click-element.
typedigitarpreencher Convert to block forms with text action.
submitenviar Convert to block forms with action submit.
selectselecionar Convert to block forms with selection action.
keyhotkeyatalho Convert to block press-key.
waitsleepaguardar Convert to block delay.
openopen-urlnova-aba Convert to block new-tab.
jsjavascript Convert to block javascript-code.
windows Convert to block windows, when Local Host is installed and authorized.
💡
Tip: When you need specific settings for a block, you can also send the type real block and put all the configuration inside config. Example: { type: "click-element", config: { seletor: "#botao" } }.

Send variables along with the flow

Use dablioroboData to send initial data for the run. This data enters the context of the flow and can be consumed by blocks as variables.

URL — Workflow + initial data
https://www.google.com/?dablioroboWorkflow=BASE64URL_DO_WORKFLOW&dablioroboData=BASE64URL_DAS_VARIAVEIS&runToken=SUA_SENHA&dablioroboOnce=1&dablioroboNow=1

Example 3 — Execute temporary workflow via CustomEvent

Use this format when the page is already open and you want to trigger automation via JavaScript, without reloading the URL.

JavaScript — CustomEvent with workflow
window.dispatchEvent(new CustomEvent('dabliorobo:execute-workflow', {
  detail: {
    runToken: 'SUA_SENHA',
    workflow: {
      nome: 'Fluxo temporário via evento',
      ativo: true,
      blockDelay: 500,
      startBlockId: 'start',
      trigger: {
        tipo: 'manual',
        config: {}
      },
      blocks: [
        {
          id: 'start',
          type: 'trigger',
          config: []
        },
        {
          id: 'aguardar_1s',
          type: 'delay',
          config: {
            ativo: true,
            tempoMs: 1000
          }
        }
      ],
      connections: [
        {
          from: { blockId: 'start', port: 'default' },
          to: { blockId: 'aguardar_1s', port: 'in' }
        }
      ]
    },
    data: {
      cliente: '123',
      origem: 'meu-sistema'
    }
  }
}));

Example 4 — Execute commands via CustomEvent

JavaScript — CustomEvent with commands
window.dispatchEvent(new CustomEvent('dabliorobo:execute-workflow', {
  detail: {
    runToken: 'SUA_SENHA',
    commands: [
      {
        type: 'open',
        url: 'https://www.google.com',
        wait: true
      },
      {
        type: 'type',
        selector: "textarea[name='q'], input[name='q']",
        value: 'Dablio Group',
        wait: true,
        clear: true
      },
      {
        type: 'submit',
        selector: "form[action*='/search']",
        wait: true
      }
    ],
    data: {
      origem: 'custom-event'
    }
  }
}));

Capture execution feedback

After receiving the request, the content script returns the result via the event dabliorobo:execute-workflow:result. This return informs whether the flow was received, whether it was started and what the error was in case of blocking.

JavaScript — Callback Listener
window.addEventListener('dabliorobo:execute-workflow:result', function (event) {
  console.log('Resultado Dablio Robô:', event.detail);

  if (event.detail.ok) {
    console.log('Fluxo recebido e iniciado:', event.detail.instanceId);
  } else {
    console.error('Falha ao iniciar fluxo:', event.detail.error);
  }
});

Security validation with runToken

1. User must be authenticated

The robot calls existing session validation. If the session is invalid, expired, or has no local token, execution is blocked.

2. User must have permission

In addition to the valid session, the return from the backend needs to allow flow execution, normally.

3. The execution code must be previously configured in the panel

Before taking any action, the user needs to access their panel and check if they have permission to perform this action and then configure an execution code (and this must be informed in the requests), otherwise the temporary flow is not executed.

Main blocking errors

Error When it happens
RUN_TOKEN_REQUIRED A temporary workflow was sent, but the parameter runToken was not informed.
RUN_TOKEN_INVALID The backend did not accept the runToken
AUTH_REQUIRED The user's local session is not valid or the backend refused authentication.
PERMISSION_DENIED_RUN_WORKFLOW The user is authenticated, but does not have permission to run flows.
WORKFLOW_NOT_FOUND Applies to triggers by ID/publicId when the saved stream is not found. It must not occur in a valid temporary workflow.
🛡️
Good security practice: treat the runToken as a password. Do not display this value on public pages, shared URLs, screenshots, server logs, browser history or links sent to third parties. For sensitive integrations, prefer to generate the link in an authenticated area of ​​your system and limit its validity in the backend.
Summary: use dablioroboWorkflow to send a complete stream, dablioroboCommands to send simple commands, dablioroboData for variables and runToken to authorize temporary execution on the backend.
⚙️

Trigger

trigger
homestartstart
Outputs next

The block Trigger It is the mandatory starting point of any flow. It defines when and how the flow will start. Each flow must have exactly one Trigger.

Defines how and when the flow starts. Supports manual triggering, by interval, day of the week, when visiting a website, on a specific date/time, when opening the browser, by context menu or keyboard shortcut.

⚙️ trigger ✓ Save block

Manual

Start the flow by clicking the ▶ button on the Dablio Robô panel. Ideal for tests and specific executions.

By interval

Runs the flow repeatedly every N minutes defined in the field Intervalo (minutos). The counter starts after the first manual run or activation of the flow.

When visiting a website

Fires automatically when the browser accesses a URL that matches the configured pattern. Supports plain text, exact match, Regex and SPA (Single Page Applications) sites with route change detection.

Specific date/time

Schedules the flow to run once on a specified date and time, using local system time.

Day of the week

Runs every week on a fixed day and time — for example, every Monday at 08:00.

When opening the browser

Starts automatically when the browser is opened. Ideal for system startup routines or daily data collection.

Context menu

Adds flow as an option in the right-click menu. It can be filtered by URL and by context: images, links, editable fields, selected text, etc.

Keyboard shortcut

Binds the flow to a key combination (ex: Ctrl+Shift+1). It only works on web pages — not on internal browser pages (chrome://).

Parameter Description
Tipo de disparo Manual · By interval · When visiting a website · Specific date/time · Day of the week · When opening the browser · Context menu · Keyboard shortcut
Intervalo (min) Number of minutes between each automatic execution
URL do site URL or part of the URL that triggers the flow when visited
Considerar exato The trigger only fires when the URL is exactly the same
Usar regex Interpret the URL field as a regular expression
Support SPA Also fires when URL changes in Single Page Applications
Executar automaticamente If unchecked, the flow only runs if started manually
Aguardar carregamento completo Starts the flow only after the page load event
Dia da semana / Data / Hora Date and time settings for scheduled shooting
Atalho de teclado Key combination that triggers the flow (ex: CTRL+SHIFT+1)
💡
Tip: Match the trigger When visiting a website with Executar automaticamente unchecked to display a floating button on the page, allowing the user to start the flow at the right time.
ℹ️
The trigger is the mandatory starting block of any flow. Only one trigger per flow is allowed.

Trigger via JavaScript (CustomEvent)

You can trigger a flow programmatically from any page using the CustomEvent from JavaScript:

JavaScript
// Disparar pelo ID do fluxo
window.dispatchEvent(new CustomEvent('dabliorobo:execute-workflow', {
  detail: { id: 'workflow-id' }
}));

// Passar variáveis para o fluxo
window.dispatchEvent(new CustomEvent('dabliorobo:execute-workflow', {
  detail: {
    id: 'workflow-id',
    data: {
      variables: {
        nome: 'João Silva',
        busca: 'produto XYZ'
      }
    }
  }
}));
📝
The keyboard shortcut only works when you are on a web page. URLs that start with chrome:// or chrome-extension:// do not support keyboard shortcuts.
⚙️

Execute a job

execute-workflow
sub-flowcall
Outputs default

Calls another flow as a subroutine. The child flow automatically receives the variables and tables from the parent and, after completing, the parent continues normally along the default path.

Runs another workflow from this point. Automatically shares variables, tables and the target tab between the parent and child flow.

⚙️ execute-work ✓ Save block

Context Sharing

Variables, tables, and the current target tab are automatically passed to the child. Changes made by the child to variables are visible to the parent upon return.

Recommended use

Ideal for creating libraries of reusable subroutines: login, filling out recurring forms, sending notifications, etc. Multiple flows can call the same subflow.

Parameter Description
Workflow alvo Select the flow that will be executed
💡
Tip: Pass specific data to the sub-flow by defining variables before the block Execute a job. The sub-flow will read them via {{nomeVariavel}}.
ℹ️
After the sub-stream ends, the parent stream continues normally via standard output.

Context Sharing

What is shared

The child flow automatically receives all variables, tables, and the current target tab from the parent flow. Changes made by the child to variables are visible to the parent upon return.

💡
Use subflows to create reusable automation libraries. For example: a sub-flow of Login called by several different streams, a sub-stream of Sending notification reused in multiple contexts.
⚙️

Check flow

is-workflow-running
statusrunning
Outputs truefalse

Checks in real time if another flow is running at this moment. Useful for avoiding parallel executions or waiting for a concurrent stream to finish.

Checks whether a specific flow is currently running. Returns true (running) or false (stopped).

⚙️ is-workflow- ✓ Save block

Return

Return true if the flow is running, false otherwise. The result can be saved in a variable.

Use cases

Prevent two flows from accessing the same system at the same time; create control semaphores in complex automations; Monitor the health of automatic flows.

Parameter Description
Origem do fluxo Select from list or enter ID manually
Fluxo / workflowId Flow to be checked
Salvar resultado na variável Save true/false in a variable
💡
Tip: Match with block Conditional to create logic of 'if stream X is already running, wait or skip'.
⚙️

Stop flows

stop-workflows
cancelinterrupt
Outputs

Stops the execution of the current flow or other flows in progress. It can terminate with Success status or throw an Error to activate failure handling blocks.

Stops the execution of the current flow or other flows in progress. It may terminate successfully or throw an error.

⚙️ stop-workflo ✓ Save block

Stop current flow

Immediately close this flow. Se Throw an error is checked, the status is Error and the configured message appears in the logs.

Stop all flows

For all running instances. The option Except the current stream keeps this one alive while canceling the others.

Stop specific flow

Cancels all instances of a selected flow, without affecting other running flows.

Parameter Description
O que parar Current flow · All flows · Specific flow
Exceto o fluxo atual For everyone else, but keep this one alive
Lançar um erro Terminates with Error status instead of Success
Mensagem de erro Message displayed in the logs when closing with an error
💡
Tip: Use Throw an error to integrate with monitoring systems — the Error status is recorded in the history and can trigger notifications.
⚙️

Wait a while

delay
delaywaitpausedelay
Outputs next

Pauses execution for the configured time before advancing to the next block. Essential for waiting for loads, page animations and time windows between actions.

Pauses flow execution for a configured time in milliseconds before advancing to the next block.

⚙️ delay ✓ Save block

Time in milliseconds

1 second = 1000ms · 500ms = half a second · 3000ms = 3 seconds. Set the minimum time required — too long times slow the flow unnecessarily.

Alternatives to Delay

To wait for a specific element to appear, choose the option Wait for selector in interaction blocks. It is more reliable than a fixed time because it does not depend on estimates.

Parameter Description
Tempo (ms) Pause duration in milliseconds (ex: 1000 = 1 second)
💡
Tip: Instead of a single long delay, combine shorter delays with condition checks to create adaptive waits.

Time reference

  • 500ms = half a second
  • 1000ms = 1 second
  • 3000ms = 3 seconds
  • 60000ms = 1 minute
💡
To wait for a specific element to appear instead of using a fixed time, prefer the option Wait for selector available in interaction blocks. It is more reliable because it does not rely on time estimates.
⚙️

Export data

export-data
savefiledownload
Outputs next

Exports data collected by the flow to local files. Supports data tables, individual variables and custom content, with multiple output formats.

Exports collected data (tables, variables, or custom text) to a local file in various formats.

⚙️ export-data ✓ Save block

Source: Table

Exports all data from a table created by the flow (e.g. data scraped from a website). Ideal for CSV and JSON.

Source: Variable

Exports the contents of a specific variable. Useful for saving long texts, API responses or captured HTML content.

Source: Custom Content

Assembles the file from a text template with interpolated variables: Nome: {{nome}}, E-mail: {{email}}.

Base64 format for file

Converts a Base64 string (e.g. image or PDF received from API) back to the corresponding binary file.

Choose specific location

Using the browser's file system access API, it saves the file directly to a folder chosen by the user — without going through the default Downloads folder.

Parameter Description
Fonte dos dados Data table · Variable · Custom content
Formato JSON · CSV · TXT · HTML · XML · Base64 to File · Custom MIME
Nome do arquivo Output file name. Accepts variables {{var}}
Escolher local específico Saves to a selected folder instead of the default Downloads folder
Conflito de nome Generate unique name · Overwrite · Ask user
💡
Tip: For periodic reports, use the variable {{data}} in the file name to create single files: relatorio_{{data}}.csv.

Available export formats

  • JSON — object or array formatted with indentation. Ideal for consuming via API.
  • CSV — comma separated worksheet. Compatible with Excel, Sheets and LibreOffice.
  • TXT — pure text, one line per record.
  • HTML — keeps the captured HTML structure.
  • XML — structured format for legacy integrations.
  • Base64 to file — converts a Base64 string back to the original binary file (PDF, image, etc.).
  • Custom (MIME) — specify any MIME type for unlisted formats.
💡
Use {{data}} or another date variable in the file name to create timestamp exports: relatorio_{{data}}.csv
⚙️

HTTP Request

http-request
APIPOSTGETwebhookREST
Outputs next

Makes HTTP/HTTPS requests to external APIs. Supports all REST verbs, authentication via headers, multiple body formats and response types.

Makes an HTTP request to APIs or external services. Supports all methods, custom headers, body types and receives the response as JSON, text or Base64.

⚙️ http-request ✓ Save block

Custom Headers

Add one header per line in the format Chave: Valor. For authentication: Authorization: Bearer {{token}}. Variables are automatically replaced.

Content Types

application/json for standard REST APIs; application/x-www-form-urlencoded for legacy forms; multipart/form-data for uploading files.

Path in JSON

Extracts a specific field from the response without having to process the full JSON. Use dot notation: data.users.0.email — returns the email of the first user in the array.

Base64 Response

Ideal for downloading binary files (PDFs, images, documents) from APIs. The result can be used with the Export Data block to save the file to disk.

Parameter Description
Método GET · POST · PUT · PATCH · DELETE · HEAD
URL Full API address. Accepts variables {{var}}
Tempo limite Time in ms to abort the request if it takes too long (0 = disable)
Cabeçalhos One header per line in Key: Value format
Tipo de conteúdo JSON · Form URL Encoded · Multipart · Text · HTML
Body Request body (for POST/PUT/PATCH). Accepts variables
Tipo de resposta JSON (object) · Text (string) · Base64 (binary/file)
Caminho no JSON Extracts part of the JSON using dot notation (ex: data.items.0.id)
Salvar resposta Name of the variable where the result will be stored
💡
Tip: Use type Text for response when the API returns HTML or XML — so you can process the content with Dablio Robô extraction blocks.
Example
Authorization: Bearer {{meuToken}}
Content-Type: application/json
X-Api-Key: minha-chave-secreta

Data Path

Use dot notation to extract a specific field from the JSON response. For example, for a response like:

JSON — API Response
{
  "status": 200,
  "data": {
    "nome": "Lista de preços",
    "valores": [
      { "id": 1, "preco": 4000 },
      { "id": 2, "preco": 24000 }
    ]
  }
}
  • To get the array valores: write data.valores
  • To get the first element: write data.valores.0
  • To get the price of the second item: write data.valores.1.preco

Sending with Form Data (multipart/form-data)

When the content type is multipart/form-data, the body must follow the pair array format:

JSON — Body (Form Data)
[
  ["campo", "valor"],
  ["arquivo", "C:\\Downloads\\documento.pdf"],
  ["imagem", "https://exemplo.com/foto.png"]
]

Using variables in the request body

For values of type string, wrap the variable in double quotes:

JSON — Body with variables
{
  "nome": "{{nomeCliente}}",
  "email": "{{emailCliente}}",
  "total": {{valorTotal}}
}
💡
Use $response in the field Path in data to capture the complete HTTP response, including status, statusText and the raw data.
⚙️

Clipboard

clipboard
copynecklaceclipboard
Outputs next

Reads or writes data to the system clipboard (Ctrl+C/Ctrl+V). Useful for transferring data between the stream and the operating system.

Copies text to the system clipboard or reads the current content copied by the user.

⚙️ clipboard ✓ Save block

Copy

Replaces the current clipboard contents with the configured text. Accepts variables: {{nome}} - {{email}}.

Read

Captures the current clipboard contents and saves it to a stream variable for use in future blocks.

Parameter Description
Ação Copy · Read
Texto Text to be copied (for 'copy' action). Accepts variables
Salvar na variável Variable that will receive the read text (for 'read' action)
💡
Tip: Match with block Press key (Ctrl+V) to automatically paste into fields in systems that do not respond to the Form block.

Use cases

Copy (write to clipboard)

Replaces the current content with the configured text. Accepts variables {{var}}. Useful for preparing text before pasting into a system that does not respond to the Form block.

Read (capture from clipboard)

Captures the current contents of the clipboard and saves it to a variable. Use to capture data that the user manually copied or that another program placed on the clipboard.

💡
To paste into legacy systems, combine Copy + block Press key with Ctrl+V.
⚙️

Wait for connections

wait-connections
syncparallel
Outputs next

Waits for all previous connected blocks to finish before continuing. Useful for synchronizing parallel streams.

⚙️ wait-connect ✓ Save block

When to use

When multiple parallel blocks converge to a single point in the flow, the block Wait for connections Wait for everyone to finish before continuing. Without it, the flow may advance before all branches are complete.

⚙️

Block group

block-group
organizegroupcontainer
Outputs next

Visually groups other blocks within a container to organize and structure the flow. It does not perform any action by itself.

⚙️ block-group ✓ Save block
⚙️

Comment

comment
noteannotationreminder
Outputs

Visual notepad. Does not perform any actions during the flow. It is used exclusively to document and organize the canvas.

⚙️ comment ✓ Save block
🔔

Notification

notification
alertwarningpopup
Outputs next

Displays visual alerts to the user: as native Windows notifications (corner of the screen) or as floating popups within the active page in the browser.

Displays a notification to the user on the Windows operating system and/or as an HTML popup within the active page, with different visual styles.

🔔 notification ✓ Save block

Browser

Displays a styled toast/popup within the current page. Supports 7 visual styles: standard, success, attention, failure, information and colorful alerts.

Windows

Uses the native Chrome/Edge notifications API, displaying an alert in the bottom right corner of the Windows screen, regardless of the page opened.

Duration

Set 0ms to keep the popup until the user closes it manually — ideal for important messages that shouldn't disappear automatically.

Parameter Description
Título Notification title
Mensagem Notification text. Accepts variables {{var}}
Onde exibir Browser only · Windows only · Windows and browser
Estilo Standard · Success (green) · Attention (orange) · Failure (red) · Information (blue) · Alert (purple/brown)
Duração no navegador (ms) Time until the popup disappears (0 = keep until closed)
💡
Tip: Use style notifications Success to confirm task completion and Failure in combination with error handling blocks to alert problems.
🔔

Audible alarm

✦ EXCLUSIVE
alarm
soundnoisebeep
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Plays an audible alert to attract the user's attention during or after performing tasks. Useful when the stream runs in the background.

Plays an audible alert for a set time. Useful for signaling completion of important tasks or events.

🔔 alarm ✓ Save block

Types of sound

5 options: Simple Beep (discreet notification), General alert (moderate attention), Success/Completion (task completed), Siren/Urgent (critical errors) and Digital (tech style).

Volume

Scale from 0 (mute) to 100 (maximum volume). The sound is played in the active browser tab.

Parameter Description
Escolha o som Simple Beep · General Alert · Success/Completion · Siren/Urgent · Digital
Duração (segundos) How long will the alarm ring?
Volume (0 a 100) Alarm volume level
💡
Tip: Place the Alarm block immediately before a Dialogue to ensure the user sees the message when they need to make a decision.
🔔

Processing

✦ EXCLUSIVE
processing-screen
lockloadingprocessing
Outputs default
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Displays a semi-transparent overlay with loading indicator over the page, preventing the user from clicking or interacting while the robot works.

Displays a lock screen with loading indicator to prevent user interaction while the flow is running.

🔔 processing-s ✓ Save block

Open screen

Locks the interface immediately. Configure the message, colors, and transparency to visually integrate with the target site.

Close screen

Removes the overlap, restoring normal interaction. Use whenever the flow ends or in case of an error.

Keep open when finished

Useful when the flow ends but you want the user to confirm the results before taking back control of the page.

Allow HTML in message

Enables advanced message formatting: bold, links, emojis and even custom progress bars with inline HTML/CSS.

Parameter Description
Ação Open processing screen · Close processing
Mensagem de status Text displayed to the user. Accepts variables and HTML
Tamanho da fonte (px) Message text size
Permitir HTML Renders content as HTML instead of plain text
Cor do texto e spinner Message and loading icon color
Cor de fundo Overlay color
Transparência (%) 0 = invisible (just blocks), 100 = completely dark
Manter aberto ao finalizar Does not close by itself at the end of the flow — displays CLOSE button
Exibir botão FECHAR Allows the user to unlock the screen at any time
💡
Tip: Always create a block Close processing in the flow's error path — otherwise the screen may freeze if the flow fails.
🌐

Activate tab/window

active-tab
focusselect tab
Outputs next

Defines which browser tab will be the target of the next blocks. Changes the execution context to the tab found by the configured criteria.

Focuses on a specific tab and defines it as the target for all future blocks in the flow.

🌐 active-tab ✓ Save block

By URL

Searches for the first tab whose URL contains, is equal to or matches the informed Regex.

By title

Finds the tab by the title displayed in the browser tab.

Next / Previous

Navigate to the tab to the right or left of the current tab, in circular order.

Page saved

Reference a tab by the previously saved name with the option Save ID in blocks like New Tab or New Window.

Focus tab

Brings the tab visually to the front in the browser — useful when the robot needs the tab to be visible to capture screen.

Parameter Description
Encontrar aba por Current tab · By URL · Title · Next tab · Previous tab · Index · Open tab · Saved page
Focar aba/janela Brings the tab visually to the front of the screen
💡
Tip: After opening a new window or tab in a previous step, use Save ID + Page saved to reliably return to it at any point in the flow.

Why is this block needed

Dablio Robô needs to know in which tab to perform each action. This block defines the execution context for all subsequent blocks. Use at the beginning of the flow or whenever you need to change focus to another tab.

💡
When opening a new tab with an external link or popup, WROBOBRANDOONE does not automatically change the context. Use Save ID in the new tab and then Activate tab → Saved page to regain control.
🌐

New tab

new-tab
opennew page
Outputs next

Opens a new tab in the browser with the configured URL and offers full control over window, identification and loading behavior.

Opens a new tab in the browser with advanced window controls, page identification and waiting for complete loading.

🌐 new-tab ✓ Save block

Reuse tab

Instead of opening a new tab, it updates the current tab with the new URL. Saves resources and avoids the accumulation of unnecessary tabs in repetitive flows.

Wait for loading

Pauses the flow until the page finishes loading completely (load event). Uncheck only if you want to continue immediately without waiting.

Keep flap behind

Open the tab in the background without stealing visual focus. Ideal for preloading pages while the user continues browsing.

Mute tab

Switches the tab to mute automatically — useful for opening videos or pages with audio autoplay.

Save ID

Saves a name for this tab (ex: 'abaPortal') that can be used as a reference in other blocks in the flow.

Parameter Description
URL Address of the page to open. Accepts variables
Criar na janela Current window · Active window · Specific window · By title/URL/saved page
Reutilizar aba Refreshes the existing tab instead of opening a new one
Aguardar carregamento Wait for the page to load completely before continuing
Manter aba atrás Opens without stealing visual focus from the screen
Silenciar aba Mute new tab sounds (videos, notifications)
Salvar identificação Save a name to reference this tab in other blocks
💡
Tip: For complex multi-tab automations, use Save ID in each open tab and navigate between them with the block Activate tab/window using Page saved.

Reuse tab option

Save resources in loops

When active, the block navigates the current tab instead of opening a new one. Ideal for flows that visit many URLs in sequence — avoids accumulating dozens of open tabs.

💡
Use Save ID to name the tab and then navigate back to it precisely using the block Activate tab with the option Page saved.
🌐

Toggle tab/window

switch-tab
change flapbrowse
Outputs defaultfallback (not found)

Switches the execution focus to another tab already open in the browser, identified by URL, title, index or relative position.

Switch focus to another tab based on URL, title, index, relative position or saved page.

🌐 switch-tab ✓ Save block

By URL

Searches through all open tabs and activates the first one that matches the pattern. Supports plain, exact or Regex text.

Next / Previous

Useful in loops where you need to process tabs in sequence. Navigate in circular order (after the last one, go to the first).

Fallback output

If the flap is not found, the flow continues through the exit fallback instead of generating an error — allows you to handle the 'tab not found' case gracefully.

Parameter Description
Encontrar aba por URL · Title · Next · Previous · Index · Open tab · Saved page
Definir como aba ativa This tab becomes the target of the next actions
💡
Tip: Use together with the block Repeat tasks and Next tab to process N open tabs in sequence.
🌐

New window

new-window
popupseparate window
Outputs next

Opens a new browser window, separate from the current tabs. Supports private/incognito mode, popups without address bar and custom dimensions.

Opens a new browser window with advanced options: private/incognito mode, type, initial state and custom dimensions.

🌐 new-window ✓ Save block

Incognito mode

Opens in a private window, without history or cookies from the main session. Requires permission in extension settings.

Popup type

Compact window without tab bar, address or tools — ideal for displaying specific content or simulating opening legacy web systems.

Custom State

Position the window accurately on the screen: top, left, width and height in pixels — useful for monitoring or viewing on multiple monitors.

Parameter Description
URL Address to load in the new window
Janela anônima Opens in private mode (requires extension permission)
Tipo Normal · Popup (no tabs) · Panel
Estado inicial Normal · Maximized · Minimized · Fullscreen · Custom (position/size)
Salvar identificação Saves a name to reference the window in other blocks
💡
Tip: Popup windows are perfect for opening auxiliary forms or panels without affecting the main flow window.
🌐

Back

go-back
historyprevious
Outputs next

Navigates to the previous page in the active tab's history, equivalent to the browser's back button.

Returns to the previous page in the active tab, equivalent to the browser's back button.

🌐 go-back ✓ Save block

Typical usage

Return to the listing after processing a detail item in scraping loops or forms.

💡
Tip: Combine with a block Wait for selector after Back to ensure the previous page has loaded before continuing.
🌐

Next

go-forward
historynext
Outputs next

Navigates to the next page in the active tab's history (only if it exists), equivalent to the browser's Next button.

Advances to the next page in the active tab, equivalent to the browser's Next button.

🌐 go-forward ✓ Save block

Typical usage

Useful in review flows where the user has navigated backwards and the robot needs to resume.

🌐

Close tab/page

close-tab-window
closeclose
Outputs next

Closes specific tabs or windows while streaming. It supports multiple selection criteria and can close more than one tab at once.

Closes tabs or windows by criteria: active tab, visible tab, window, by URL, title, index or saved page. Supports multiple close.

🌐 close-tab-wi ✓ Save block

By URL

Closes all tabs whose URLs match the pattern. Activate Close multiples to close them all at once; otherwise, it closes only the first one found.

Active tab vs. current tab

Active tab (Work) closes the tab that the stream is using as a target; Current tab (Visible) closes the tab the user is currently viewing.

Parameter Description
O que fechar Active tab · Current tab · Active/current window · Specific tab · By title/index/URL/saved page
Fechar múltiplos Closes ALL tabs found with the criteria
💡
Tip: Closing unnecessary tabs throughout the stream keeps the browser organized and prevents performance issues in long streams.

Closing modes

Active tab (Work) vs. Current tab (Visible)

Active tab (Work) closes the tab that the flow is using as its execution context. Current tab (Visible) closes the tab that the user is currently viewing in the browser. These can be different tabs when the robot works in the background.

💡
Closing unnecessary tabs while streaming saves memory and keeps the browser organized, especially in automations that process hundreds of pages.
🌐

Screenshot

take-screenshot
printphotoscreenshot
Outputs next

Captures screen images in 4 modes: visible area of the page, full page with scroll, specific element or complete element with a height greater than the screen.

Takes a screenshot of the visible area, full page, specific element, or full element with scroll.

🌐 take-screens ✓ Save block

Full page

Dablio Robô automatically scrolls the page from top to bottom, collecting fragments and assembling the complete image using canvas. Wait for lazy images to load with field Wait (ms).

Specific element

Scrolls and centers the element on the screen before capturing. Use the CSS or XPath selector to identify the exact element.

Complete element (with scroll)

For elements with overflow: scroll — Dablio Robô scrolls within the element to capture all content, even if it is larger than the viewport.

Save to variable

The result is a Base64 string (data:image/png;base64,...) that can be used with OCR, exported as a file, or sent to AI APIs.

Parameter Description
Alvo Visible page · Full page · One element · One complete element (with scroll)
Em qual aba Current tab or search by URL/title/index/saved page
Seletor do elemento CSS or XPath selector of the element to capture
Aguardar (ms) Pause after scrolling to load dynamic content
Salvar no computador Download the PNG/JPG file
Salvar em variável Saves the image as Base64 in a variable
💡
Tip: Use Wait (ms) between 1000–2000ms for pages with lazy-loaded images or animations — ensures content is visible before capture.

Capture Modes

Visible page (viewport)

Captures only the visible area of the browser window. Fast and requires no scrolling.

Full page

Dablio Robô automatically scrolls the page from top to bottom, captures fragments and assembles a complete image using canvas. Configure the field Wait (ms) between 1000–2000ms to ensure lazy image loading.

Specific element

Scrolls the page until the element is visible and captures only that region. Use CSS or XPath selector to identify the exact element.

Complete element (with internal scroll)

For elements with overflow: scroll, the robot rolls inside the element and stitches the fragments together, capturing all the content even if it is larger than the screen.

🌐

Listen browser

wait-browser-event
eventswaitlisten
Outputs defaultfallback (timeout)

Pauses the flow waiting for a specific browser or page event: tab open/close, click, typing, form submission, scroll and more.

Pauses the flow until a specific event occurs in the browser or on a page element.

🌐 wait-browser ✓ Save block

Tab Events

Waits for a tab to load, be created or closed. Indispensable in flows that open popups or new tabs asynchronously.

Mouse and keyboard events

Waits for user interaction: click anywhere, on a specific element, typing in a field, etc. Turns the robot into a reactive trigger.

Element Monitor

When active, the event is only accepted if it occurs within the configured selector — it ignores the same event in other parts of the page.

Fallback output

If the event does not occur within the time limit, the flow continues through the output fallback, allowing timeouts to be handled without failure.

Parameter Description
Tempo limite (ms) If the event does not occur, follow the fallback output
Evento a escutar Tab: load/close/create · Window: create/close · Mouse: click/dblclick/mouseover · Keyboard: keydown/keyup · Form: input/change/focus/blur/submit · Clipboard: copy/cut/paste · Touch · Scroll · Resize · Load
Monitorar em Active tab · By URL · Title · Index · Saved page
Monitor elemento The event must occur within the selected selector
💡
Tip: Use Wait for tab to load after opening links that may take time to load. It is more robust than a fixed Delay and does not waste waiting time.
🌐

proxy

proxy
vpnanonymitynetwork
Outputs next

Configures a proxy server for all browser navigation, useful for bypassing geographic restrictions or rotating IPs in scraping automations.

Configure a Proxy server (HTTP/HTTPS/SOCKS4/SOCKS5) for the entire browser connection or remove the current configuration.

🌐 proxy ✓ Save block

Set proxy

Configures host, port, protocol and credentials. Affects all browser connections while the proxy is active.

Clear proxy

Removes the proxy configuration and returns to the operating system's default network settings.

Exceptions

Domains listed on List of exceptions (separated by commas) do not go through the proxy: localhost, 127.0.0.1, corporate intranets.

Parameter Description
Ação Set Proxy · Clear/Disable
Protocolo HTTP · HTTPS · SOCKS4 · SOCKS5
Host/IP Proxy server address
Porta Proxy server port
Usuário/Senha Optional authentication credentials
Lista de exceções Domains that do not use proxy (comma separated)
💡
Tip: Always add a block Clear proxy at the end of the flow to not leave the proxy active after the automation ends.

Configuration

Supported protocols

HTTP, HTTPS, SOCKS4 and SOCKS5. For proxies that require authentication, fill in the fields User and Password. Credentials are automatically sent by the browser.

List of exceptions

Comma separated domains that will not go through the proxy. Always include localhost and 127.0.0.1 to not route local traffic through the proxy.

📝
Always add a block Clear proxy at the end of the stream. Without it, the proxy remains active after the automation ends, affecting all user navigation.
🌐

Toggle Frame

switch-frame
iframeframecontext
Outputs default

Changes the execution context into a <iframe> on the page. Required when the element you want to interact with is inside an inline frame.

Changes the execution focus to a specific iFrame on the page or back to the main page.

🌐 switch-frame ✓ Save block

Select frame

After focusing on a frame, all selectors in subsequent blocks look for elements within that frame — not on the main page.

Return to main page

Use the option Return to main page to exit the frame and return to the global page context.

By selector

Dablio Robô finds the element <iframe> in the DOM using the given selector and maps the frameId automatically.

Parameter Description
Modo Return to main page · By CSS/XPath selector · By frame URL · By index
Seletor <iframe> element CSS or XPath selector
URL do frame URL pattern to find the frame
Índice Frame position in the list (0 = main)
💡
Tip: Many banking systems, government portals, and payment systems embed forms in iframes for security. This block is essential for automation in these cases.
ℹ️
After switching to a frame, all selectors in subsequent blocks search for elements within that frame.

How it works

After focusing on a frame, all selectors in the following blocks they start looking for elements within that frame, not on the main page. Use Return to main page to exit the frame and return to the global context.

💡
Government portals, banking systems, and payment forms often use iframes for security reasons. This block is essential for automating these scenarios.
📝
To find out if an element is inside an iframe, open the developer tools (F12) and look for tags <iframe> or <frame> in the page structure.
🌐

Screen display

fullscreen
maximizefull screen
Outputs default

Controls how the browser window or specific page elements are displayed, useful for screenshots and systems that require full screen.

Changes the display mode: window (normal/maximized/minimized/full screen), full page or expands a specific element.

🌐 fullscreen ✓ Save block

Window

Changes the state of the window: normal, maximized, minimized or full screen. Useful before a screenshot to ensure full visibility.

Element

Calls the browser's Fullscreen API on a specific element — such as a video player or map — without affecting the rest of the window.

Parameter Description
Alterar Current window · Current page · Specific part (element)
Modo de exibição Normal · Maximized · Minimized · Fullscreen
Seletor do elemento To expand a specific element to full screen
🌐

Recharge

reload-tab
updateF5refresh
Outputs next

Reloads one or more browser tabs, equivalent to F5. Useful for updating data in dashboards or after modifications that require reloading.

Reloads one or more tabs by criteria: active tab, visible, by title, index or URL.

🌐 reload-tab ✓ Save block

Reload multiple

When searching by URL, select Reload multiple to update all tabs that match the pattern at once.

Parameter Description
Qual aba recarregar Active tab · Current tab · Specific · By title/index/URL/saved page
Recarregar múltiplos Reload ALL tabs found with the criteria
💡
Tip: After reloading, use a block Wait for selector to wait for an element to appear before continuing.

Common uses

  • Update dashboards or reports after modifications
  • Force data reload on systems with aggressive caching
  • Restart a page that got stuck during automation
  • Reload multiple monitoring tabs at once
💡
After reloading, use the block Element exists or Wait for selector to ensure the page has loaded completely before continuing.
🌐

Get URL

get-tab-url
get urladdress
Outputs next

Captures the URL and/or title of open tabs and saves them in flow variables for later use.

Gets the URL and/or title of one or more open tabs and saves it in variables.

🌐 get-tab-url ✓ Save block

Active tab

Returns the URL and title of the tab that the flow is currently targeting.

All tabs

Returns arrays with the URLs and titles of all tabs in the current window. Optional filters allow you to select only relevant tabs.

Parameter Description
Modo Active tab · All tabs
Filtros URL and title to filter when 'All tabs' is selected
Variável para URL Name of the variable that will receive the URL (or list of URLs)
Variável para título Name of the variable that will receive the title (or list)
💡
Tip: Use to dynamically check which URL the flow is at before performing page-dependent actions.

Common uses

  • Check which URL the flow is at before performing conditional actions
  • Capture the URL after a redirect to extract parameters
  • Save history of URLs visited during automation
  • Validate that the flow arrived at the expected page before continuing
🌐

Download files

handle-download
downloadimagesaudiovideomedia
Outputs next

Intercepts and manages file downloads: it can wait for a download to start, download directly via URL or extract media (images, videos, audios) from page elements.

Wait for a download to start, download file via direct URL or extract media (img, audio, video) from page elements.

🌐 handle-downl ✓ Save block

Wait for download

It waits until the browser starts a download (user click or page redirect). Useful for capturing files that the website generates dynamically.

Direct URL

Immediately download the file from the specified URL. Accepts multiple links separated per line.

Media Element

Extracts the src URLs of img, video, audio elements within a selector and downloads them. Activate Multiple to download all found media.

Rename with wildcard

Use * to preserve the original name: fotos/*.jpg saves each image with its original name in the 'photos' folder; relatorio_* keep the name and change the extension.

Parameter Description
Modo Wait for a download · Direct URL · Media element
Seletor do elemento Container where to search for media (element mode)
Múltiplos Download all found media
Aguardar conclusão Pause the stream until the download finishes
Renomear arquivo Use * to keep the original name (ex: folder/*.jpg)
Salvar em local específico Set a custom destination folder
Salvar caminho em variável Save the path of the downloaded file
💡
Tip: Match with block Loop to download multiple page files in sequence, saving each one with a dynamic name via variable.

Rename pattern with wildcard (*)

The character * preserves the original file name and only allows you to change the prefix, suffix or extension:

  • fotos/* — saves to folder photos keeping the original name
  • *.jpg — keep the name, force JPG extension
  • relatorio_* — adds prefix to original name
  • backup/*.pdf — saved in the backup folder with PDF extension
💡
To download files from multiple pages in sequence, match the block Browse data iterating over the list of URLs, using variables in the file name so that each item is saved with a unique identification.
🖱️

Click on the element

click-element
clickbuttonlink
Outputs next

Clicks on page elements using CSS or XPath selectors. The most used block in web automations.

Click on one or more elements on the page using the CSS or XPath selector, with support for waiting for the element to appear.

🖱️ click-elemen ✓ Save block

CSS Selector

Ex: #botao-salvar, .btn-primary, button[type='submit'], a.menu-link:nth-child(3).

XPath selector

Ex: //button[text()='Salvar'], //input[@placeholder='Buscar']. Use when CSS is not sufficient to identify the element.

Multiple

Clicks on all elements found by the selector in sequence. Useful for closing multiple popups, selecting checkboxes in a list, etc.

Wait for selector

The block waits for the element to appear before clicking. Eliminates the need for a Delay block before clicking.

Parameter Description
Seletor CSS or XPath of the element (ex: #btn-save, //button[@type='submit'])
Múltiplos Click on ALL elements found by the selector
Aguardar seletor Wait for the element to appear before clicking
Tempo máximo (ms) Timeout to wait for element
💡
Tip: If clicking doesn't work on elements inside iframes, use the block Toggle Frame first to focus on the correct frame.

Supported selectors

CSS Selector

Any valid CSS selector works: #id, .classe, button[type="submit"], ul.menu > li:nth-child(2) > a. Use Dablio Robô's selector tool to capture the selector directly from the page.

XPath selector

Useful when CSS is not enough. Examples: //button[text()='Confirmar'], //input[@placeholder='Buscar']. XPath starts with // or (//.

📝
This block requires an active tab. Use the block New tab or Activate tab before performing clicks.
🖱️

Get content

get-text
capture textvaluehtmlextract
Outputs default

Extracts content from page elements: plain text, internal HTML, or form field values. Saves it to a variable for use in subsequent blocks.

Extracts text, internal HTML, or values from page elements. Supports multiple elements (returns array).

🖱️ get-text ✓ Save block

innerText vs textContent

innerText returns visible text (respects display:none and formatting). textContent returns all node text, including content hidden by CSS.

Multiple elements

Returns an array (list) with the contents of all found elements. Use with block Browse data to process each item.

Include HTML

Captures innerHTML instead of plain text — useful for extracting HTML structures for further processing.

Parameter Description
Seletor CSS or XPath of the target element
Salvar em variável Name of the variable that will receive the value
Múltiplos elementos Captures all found elements as a list
Incluir tags HTML Capture innerHTML instead of plain text
Usar textContent Uses .textContent (raw text) instead of .innerText (visible)
Aguardar elemento Waits for element to appear before capturing
💡
Tip: To extract text from entire HTML tables, select the element table with Include HTML active — you will have the full HTML of the table to process.

Capture Modes

innerText (default)

Returns only visible text, respecting CSS as display:none. It is the closest behavior to what the user sees on the screen.

textContent

Returns all node text, including content hidden by CSS and whitespace. Useful when the element has hidden text that you need to capture.

innerHTML

Captures the element's internal HTML code. Activate Include HTML tags when you need to process the element structure, not just the text.

Multiple elements

When active, returns a array with the content of all elements found by the selector. Match with block Browse data to process each item individually.

🖱️

Form

forms
fillinputtypefieldselect
Outputs next

The most versatile block for interacting with forms: fill in text fields, select options, mark checkboxes, click on radio buttons and can extract all data from a form at once.

Interact with forms: fill in text fields, select options from lists, mark checkboxes and radio buttons, or extract data from the form.

🖱️ forms ✓ Save block

Text field

Enter the value in the field. Use Clear field to delete the previous content. Typing delay simulates human typing character by character.

Selection list (select)

Selects by internal value, option text, position (index) or first/last option. Accepts variables for dynamic selection.

Get values

Extracts all form fields at once, returning in JSON, URL Encoded or text format. Ideal for auditing completed forms.

Submit

Click the submit button or call submit() on the form directly.

Parameter Description
Seletor CSS of the form field or container
Aguardar elemento Wait for the field to be available
Múltiplos Apply the action to all fields found
Obter valores Extract data from the form instead of filling it out
Tipo de ação Text field · Selection list · Checkbox · Radio · Submit
Valor Text to enter or value to select
Limpar campo Clean content before writing
Atraso de digitação (ms) Time between each character entered
Modo de seleção By value · First option · Last option · By position
Formato de extração JSON · Encoded URL · Text (when getting values)
💡
Tip: For fields that require slow typing (avoid bot detection), configure Typing delay between 50–150ms per character.

Supported field types

Text field (input/textarea)

Fills in the field value. Use Clear content to clear the previous value before typing. The field Typing delay simulates human typing character by character — set between 50–150ms for systems that detect autocomplete.

Selection list (select)

Select an option based on your internal value (attribute value HTML), not the displayed text. To find the correct value, inspect the element with the browser's developer tools (F12 → select the <option> desired).

Checkbox and Radio

The field Select option defines whether the element should be marked (true) or unchecked (false). For radio buttons, selecting one automatically deselects the others in the same group.

📝
This block requires an active tab. Make sure you use the block New tab or Activate tab before interacting with forms.
🖱️

Scrolling

scroll
rollscrolloverflow
Outputs next

Scrolls the page or an element with scrollbar to a specific position or to display an element on the screen.

Scrolls the page or a specific element horizontally and/or vertically, with scrolling support for smooth preview and animation.

🖱️ scroll ✓ Save block

Absolute position vs. incremental

No increment: go to the exact X/Y position from the top/left. With increment: adds the value to the current scroll position.

Scroll to view

Automatically scrolls until the target element is visible in the viewport, either up or down — without needing to calculate positions.

Overflow element

To scroll within elements with overflow: scroll (lists, tables, panels), enter the selector in the field Target element.

Parameter Description
Elemento alvo CSS/XPath selector of the element to scroll (empty = full page)
Rolagem horizontal (px) Positive = right, negative = left
Rolagem vertical (px) Positive = down, negative = up
Rolar para visualização Scroll until the target element is visible on the screen
Rolagem suave Uses scrolling animation instead of instantaneous
Incrementar Adds to current position instead of going to absolute position
💡
Tip: Use Scroll to view before clicking on elements that may be outside the visible area — some systems only respond to clicks on visible elements.

Scrolling modes

Absolute position vs. incremental

Without incrementing: scrolls to the exact coordinate entered (X/Y from the top left corner). With increment: adds the value to the current position. For example, +300px moves down 300 pixels from where it is.

Scroll Into View

Automatically scrolls the page until the target element is visible in the visible area of the screen, without having to calculate coordinates. Dablio Robô discovers the position of the element on its own.

Overflow elements

To scroll within a container with its own scroll (lists, tables, panels), enter the container's CSS/XPath selector in the field Target element instead of leaving it blank.

🖱️

Attributes

attribute-value
hrefsrcclassdate
Outputs next

Reads, sets, or removes HTML attributes from any element. Covers from standard attributes (href, src, class) to custom data attributes (data-id, data-value).

Reads, sets or removes HTML attributes from elements such as href, src, class, style, data-id and any other custom attributes.

🖱️ attribute-va ✓ Save block

Get

Reads the attribute value and saves it in the configured variable. Ex: read the href of a link before clicking, or the data-id of a list item.

Set

Modifies the attribute in the DOM on the fly. Ex: change the src of an image, disable/enable a button via disabled.

Remove

Deletes the attribute completely from the element — useful for removing readonly or disabled of blocked fields.

Parameter Description
Seletor CSS or XPath of the target element
Ação Get value · Set value · Delete attribute
Nome do atributo Ex: href, src, class, data-id, placeholder
Salvar em variável Variable that will receive the read value ('get' action)
Valor a atribuir New attribute value. Accepts variables
Múltiplos Applies the action to all found elements
💡
Tip: To enable fields blocked by disabled or readonly, use this block with the action Remove before trying to fill in with the Form block.

Most used attributes

  • href — Link URL, useful for capturing destinations before browsing
  • src — path of images, videos and scripts
  • value — current value of hidden fields or inputs that cannot be modified by the Form block
  • data-id, data-* — identifiers and metadata embedded by the website
  • disabled, readonly — field restrictions; use Remove to unlock them
  • class, style — visual control of elements
🖱️

Run JS

javascript-code
scriptcodeinjectJSprogram
Outputs default

Injects and executes JavaScript directly into the page (MAIN world context) or service worker. It has full access to the DOM, flow variables and extension APIs.

Executes JavaScript on the page (page context) or in the background (service worker). Use 'return' to save the result in a stream variable.

🖱️ javascript-c ✓ Save block

Page context

The code executes as if it were part of the page's own JavaScript. It has access to window, document, global page variables and frameworks (React, Vue, etc.).

Background context

Runs on service worker with access to Chrome APIs like chrome.tabs, chrome.storage, chrome.downloads. It does not have access to the DOM.

Flow variables

Use vars.minhaVariavel to read and vars.minhaVariavel = 'valor' to write. Use globals.varGlobal for global variables between streams.

Return

The value of return is saved in the variable configured in Return variable. Supports objects, arrays, numbers and strings.

Parameter Description
Contexto In the active tab (page) · Background (service worker)
Tempo antes de executar (ms) Wait before injecting code
Código JS JavaScript running. Has access to vars (flow variables) and globals
Variável de retorno Variable that will receive the 'return' value
Executar em cada nova aba Automatically reruns on new tabs opened
Executar antes da página Injects as soon as the tab starts loading
💡
Tip: For asynchronous code (fetch, setTimeout), use async/await — Dablio Robô waits for the Promise to resolve before continuing the flow.
Example
// Lê variável do fluxo
const usuario = vars.nomeUsuario;

// Manipula DOM
document.querySelector('#campo-login').value = usuario;

// Faz uma requisição assíncrona
const resp = await fetch('/api/verificar?user=' + usuario);
const dados = await resp.json();

// Salva resultado no fluxo
vars.usuarioAtivo = dados.ativo;

// Retorna para variável configurada
return dados.ultimoAcesso;
ℹ️
The code has access to `vars` (stream local variables) and `globals` (global variables). Changes to `vars` within the code are propagated back to the stream.

Utility functions available in the code

vars — Read and write stream variables

Use vars.nomeVar to read and vars.nomeVar = valor to record. The changed variables are available in all subsequent blocks of the flow.

globals — Global variables across streams

Use globals.nomeVar to access variables shared between multiple streams. Useful for configurations, tokens, or global state of the automation.

return — Return value to a variable

The value returned by return is saved in the variable configured in the field Return variable. Supports any type: string, number, object or array.

JavaScript — Usage Examples
// Ler variável do fluxo
const cliente = vars.nomeCliente;

// Modificar DOM da página
document.querySelector('#campo-busca').value = cliente;

// Fazer requisição assíncrona (await funciona normalmente)
const resp = await fetch('https://api.exemplo.com/dados?q=' + cliente);
const dados = await resp.json();

// Gravar resultado de volta no fluxo
vars.totalResultados = dados.total;

// Retornar valor para a variável configurada no bloco
return dados.items[0].nome;
📝
Dablio Robô supports async/await directly in the block code. The flow automatically waits for the Promise to resolve before continuing.
🖱️

Trigger event

trigger-event
clickchangeinputDOM event
Outputs next

Triggers DOM events on page elements, simulating interactions that other blocks do not cover. Essential for systems that only respond to native JavaScript events.

Triggers DOM events on page elements: mouse, keyboard, form, clipboard, touch and others, with advanced modifier and coordinate options.

🖱️ trigger-even ✓ Save block

Mouse Events

click, dblclick, mousedown, mouseup, mouseover, contextmenu. Configure the button (left/right/center) and modifier keys (Ctrl, Shift, Alt).

Keyboard Events

keydown, keyup, keypress. Configure key, code and keyCode to simulate specific keys accurately.

Form events

input, change, focus, blur, submit. Useful for forcing field re-validation or triggering JavaScript logic linked to value changes.

Multiple

Fires the event on all elements found by the selector sequentially.

Parameter Description
Seletor CSS or XPath of the element that will receive the event
Evento Mouse: click/dblclick/mousedown/mouseover · Keyboard: keydown/keyup/keypress · Form: input/change/focus/blur/submit · Clipboard: copy/cut/paste · Touch · Scroll · Resize
Botão do mouse Left · Center · Right
Modificadores CTRL · SHIFT · ALT · META
Múltiplos Shoot ALL elements found
Opções avançadas bubbles, cancelable, coordinates, key, keyCode, deltaX/Y
💡
Tip: When the Form block doesn't work to fill in fields (frameworks like React/Vue control input via internal state), use Trigger event of the type input after filling in the value via JavaScript.

When to use this block

Modern frameworks (React, Vue, Angular)

These frameworks control inputs via internal state — filling in the field directly does not trigger the update. After filling in the value via the Form or JavaScript block, fire the event input or change to force the framework to recognize the change.

Hidden validations and listeners

Some sites perform validations or load new fields only when a specific event occurs. Use this block to trigger this behavior programmatically.

🖱️

Hover

hover-element
hovermouseover
Outputs next

Simulates hovering over a page element (mouseover/hover), revealing dropdown menus, tooltips and content that only appear with the cursor over the element.

Simulates hovering the mouse over a page element (mouseover/hover event), useful for displaying menus, tooltips and dynamic content.

🖱️ hover-elemen ✓ Save block

Typical usage

Navigation menus that expand on hover; nested submenus; tooltips with extra information; action buttons that appear when hovering over a table row.

Parameter Description
Seletor CSS or XPath of the target element
Aguardar seletor Wait for the element to appear before simulating hover
💡
Tip: Combine with a Delay 300–500ms after hover to wait for the content display CSS animation before clicking.

Use cases

  • Reveal dropdown menus that only appear on hover
  • Display tooltips with extra information
  • Show action buttons on table rows (edit, delete)
  • Enable CSS animations that reveal content
💡
Combine with a Wait 300–500ms after hover to wait for the display CSS animation to finish before clicking.
🖱️

Drag element

drag-element
drag and dropdrag
Outputs next

Simulates the action of dragging and dropping page elements. Useful for interfaces with Kanban boards, list ordering, sliders and editing tools.

Simulates dragging an element from point A to point B with position, speed and button press settings.

🖱️ drag-element ✓ Save block

Human simulation

Dablio Robô divides the movement into multiple intermediate steps with configurable interval, simulating the natural movement of the human mouse instead of teleporting.

Anchor points

Configure where on the source element the click will start (center, corners) and where on the destination the item will be dropped. Offsets allow fine-tuning of pixels.

Button pressed

Most drag-and-drops use the left button. Some interfaces use the middle or right button — configure according to expected behavior.

Parameter Description
Botão pressionado None · Left · Right · Center
Seletor de origem Element to be dragged
Seletor de destino Element or area where the item will be dropped
Ponto de origem/destino Center · Top left/right · Bottom left/right
Offsets X/Y Additional travel at points of origin and destination
Passos Number of intermediate mouse movements
Intervalo entre passos (ms) Pause between each movement to simulate human drag
Segurar antes de arrastar (ms) Time to hold the button down before moving
💡
Tip: If native drag and drop doesn't work, try using block Trigger event with the sequence: mousedown → mousemove (várias vezes) → mouseup.
🖱️

Send file

upload-file
uploadfileattach
Outputs next

Upload files into fields input[type=file], bypassing the limitation that the browser does not allow direct automation of the operating system's file selector.

Uploads files via URL/Base64, local folder, absolute path or simulates click for the user to select manually.

🖱️ upload-file ✓ Save block

URL or Base64

Provides the file as a public URL or Base64 string. Dablio Robô downloads and injects the file directly into the input without opening the system selector.

Local folder

Select a previously authorized folder on your computer and enter the file name. Dablio Robô automatically reads and injects it.

Absolute path

Provides the full path of the file (C:\Users\arquivo.pdf or URL). Requires local file access permission in extension settings.

Manual

Click the upload button and pause — the user selects the file manually. The flow continues after selection.

Parameter Description
Seletor CSS or XPath from input[type=file]
Aguardar seletor Wait for the input to appear
Múltiplos Fill in all found upload fields
Origem do arquivo Manual · URL/Base64 · Local folder · Absolute path
💡
Tip: To generate a file in the stream and then upload it (e.g. create a CSV and send it to a system), combine Export Data + Convert Data (for Base64) + Send File.

Supported file sources

Public URL or Base64

Dablio Robô downloads the file from the URL or decodes Base64 and injects directly into the field input[type=file] without opening the operating system selector.

Local folder

Select a folder on your computer (the browser asks for permission once). Enter the name of the file within this folder — accepts variables for dynamic names.

Absolute path

Enter the full path of the file (ex: file:///C:/Users/arquivo.pdf). Requires access permission to file URLs in extension settings.

Manual (click button)

The robot just clicks the upload button and pauses. A notification appears asking the user to select the file manually. The flow resumes after selection.

🖱️

Press key

press-key
keyboardshortcuttype
Outputs next

Simulates key presses and keyboard shortcuts, or types complete text key by key with configurable timing.

Press a keyboard shortcut (e.g. CTRL+S) or type text key by key, with optional focus on the target element.

🖱️ press-key ✓ Save block

Press shortcut

Perform combinations such as Ctrl+S (save), Ctrl+A (select all), F2 (rename), Enter, Escape, Tab. Use the shortcut recorder to capture the desired combination.

Enter text

Enter text character by character with configurable time between keys. Unlike the Form block that sets the value directly, this one simulates real typing.

target element

When configured, Dablio Robô focuses on the element before each key — ensuring that keys are sent to the correct element even if the focus has changed.

Parameter Description
Ação Press a shortcut · Enter text
Tecla/combinação Ex: CTRL+SHIFT+1, ALT+Q (use the shortcut recorder)
Tempo de pressão (ms) How long will the key be pressed
Texto para reproduzir Text that will be typed key by key
Target element Selector of the element that will receive focus before each key
💡
Tip: Note: due to browser security limitations, native system shortcuts (such as Alt+F4 or Ctrl+Alt+Del) cannot be simulated by the extension.

Common shortcuts

  • Enter — confirm forms and dialogs
  • Tab — navigate between fields
  • Escape — close modes and menus
  • Ctrl+A — select all
  • Ctrl+C / Ctrl+V — copy and paste
  • F2 — enter edit mode (Excel, desktop applications)
  • Delete / Backspace — delete selected content
📝
Due to browser security limitations, native system shortcuts such as Alt+F4 or Ctrl+Alt+Del cannot be simulated by the extension.
🖱️

Create HTML

create_element
injecthtmlcssinsert
Outputs default

Injects custom HTML, CSS, and JavaScript directly into the page in a position relative to the target element. Allows you to visually extend any website without modifying its code.

Inserts HTML, CSS and JavaScript code into the page at a specific position in relation to the target element.

🖱️ create_eleme ✓ Save block

Insertion positions

First/last child: inside element; Previous/later sibling: next to the element; Replace: exchanges the element with the injected content.

tag script

Tags <script> included in HTML are executed immediately after injection. Ideal for adding JavaScript logic to the page.

Run before loading

Inject content into the event loading of the tab, before the page finishes loading — to overwrite original scripts or styles.

Parameter Description
Elemento alvo CSS or XPath of the reference element
Posição As first child · As last child · Previous sibling · Next sibling · Replace element
Executar antes do carregamento Injects at the beginning of page load
HTML/CSS/SCRIPT Code to be inserted. <script> tags will be executed
💡
Tip: Use to add action buttons to the interface of systems that do not have an API — e.g. an 'Export to CSV' button on a table that does not offer this feature.
Example
<div style='position:fixed;bottom:20px;right:20px;z-index:9999;background:#1a6eff;color:white;padding:12px 20px;border-radius:8px;cursor:pointer;font-family:sans-serif;box-shadow:0 4px 20px rgba(26,110,255,0.4)' onclick='window.__dablioExportar()'>&#128190; Exportar Dados</div>
<script>
window.__dablioExportar = function(){
  window.dispatchEvent(new CustomEvent('dablio-export'));
};
</script>
🖱️

Element exists

element-exists
checkconditionalDOM
Outputs existsfallback (not found)

Checks whether an element is present in the page's DOM, with configurable multiple retries before completing. Return exists or fallback.

Checks whether an element exists on the page with multiple attempts before going through the success or fallback port.

🖱️ element-exis ✓ Save block

Attempts

Each attempt waits the configured interval before repeating. If the element appears on any attempt, it immediately returns along the path exists.

Use in loops

Use at the beginning of loops to check if there are still items to process. When the element no longer exists (e.g. 'Next page' button), the loop ends naturally through fallback.

Parameter Description
Seletor CSS or XPath of the element to check
Número de tentativas How many checks before concluding that it does not exist
Intervalo (ms) Time between each verification attempt
💡
Tip: For more complex checks (element exists AND has certain text), combine this block with a Conditional at the exit exists.

Block outputs

Output exists (element found)

The flow follows this path when the element is located in the DOM within the configured number of attempts. Dablio Robô returns on the first successful attempt, without waiting for the others.

Fallback output (not found)

The flow follows this path when all attempts are exhausted without finding the element. Use to handle alternative scenarios: skipping a step, trying a different action, or ending the loop.

💡
To check if an element exists AND contains specific text, combine this block with a Conditional at the exit exists using the type Element text.
🖱️

File exists?

check-local-file
filecheck folder
Outputs truefalse

Checks the existence of a file in a local folder before trying to process it, preventing errors in flows that depend on external files.

Checks whether a file exists in a selected local folder. Supports search by exact name, base name or regular expression.

🖱️ check-local- ✓ Save block

Search by exact name

If the name includes an extension (e.g. report.pdf), the search is accurate. Without extension, searches for any file with that base name regardless of the extension.

Search by Regex

Allows advanced patterns: ^fatura_\d{8}\.pdf$ finds invoices with a date in the name; .*\.xlsx$ finds any Excel spreadsheet.

Parameter Description
Pasta Local Folder where the file will be searched
Nome do arquivo Exact name, base name (without extension) or Regex pattern
Usar Regex Interpret the field as a regular expression
💡
Tip: Combine with a Conditional on output to download the file if it doesn't exist, or skip to processing if it already exists — avoiding duplicate downloads.
🔀

Conditional

conditions
ifelselogiccompare
Outputs truefalse

Decision block that compares two values and directs the flow to the path True or False.

Compares two values and directs the flow along the True or False path. Supports literal values, variables, element texts, HTML attributes and JavaScript code.

🔀 conditions ✓ Save block

Basic operators

Equal (==): case insensitive. Equal (SM): sensitive. Different (!=).

Numeric operators

Greater, less, greater or equal, less than or equal — values are converted to numbers automatically.

Text operators

Contains, does not contain (insensitive/sensitive), begins with, ends with.

Regular expression

Tests the 1st value against the Regex of the 2nd. Ex: check CPF format, email, date.

DOM element

Checks existence, visibility (in the DOM and viewport) or attribute value of page elements — without needing a separate selector.

JavaScript code

The 1st value can be a block of JS code that returns true/false for arbitrarily complex logic.

Parameter Description
Tipo do 1º valor Literal value · Variable exists · Variable value · JS code · Text/attribute/element visibility
Operador Equal · Not equal · Greater/Less (than) · Greater/Less than or equal · Contains · Does not contain · Starts/Ends with · RegEx
Tipo do 2º valor Value · Variable · Element text/attribute
Sensível a maiúsculas SM versions of operators are case sensitive
💡
Tip: For AND/OR conditions between multiple comparisons, use the type JS Code: return vars.x > 10 && vars.status === 'ativo';
ℹ️
Visibility operators (visible, hidden, visible element on screen) do not need a 2nd value — they directly return true/false.

Available operators

  • Equal (==) — case-insensitive comparison. "John" == "John" → true.
  • Equal (Sensitive) — exact comparison, case sensitive.
  • Contains / Does not contain — checks whether the first value includes the second.
  • Starts with / Ends with — checks the prefix or suffix of the text.
  • Biggest / Smallest / ≥ / ≤ — numerical comparison. Values ​​are converted to numbers automatically.
  • RegEx — tests the first value against a regular expression. Example: ^\d{3}\.\d{3}\.\d{3}-\d{2}$ validates CPF.
  • Element exists/visible — checks presence or visibility of a selector on the page, without a second value.
  • JS Code — executes JavaScript code that returns true/false for arbitrary logic.
💡
For complex AND/OR conditions, use the type JS Code: return vars.x > 10 && vars.status === 'ativo';
🔀

Cycle through elements

each-element
loopforEachiterate DOM
Outputs loop-start

Iterates over all elements found by a selector, executing the internal blocks for each. The equivalent of forEach in web automation.

Cycles through all occurrences of a CSS/XPath selector executing the inner blocks for each element found.

🔀 each-element ✓ Save block

Loop identifier

Each element receives the attribute wRobo-loop='nome_N' (where N is the index). Use the selector [wRobo-loop='nome_0'] inside the loop to specifically interact with the current element.

Maximum occurrences

Limits the number of iterations — useful when a page has hundreds of elements but you only want to process the first N.

Reverse order

Processes elements from bottom to top — necessary when removing items or pagination affects indexes.

Parameter Description
Seletor CSS or XPath that returns the list of elements
Aguardar elemento Wait for the elements to appear
Inverter ordem Starts from the last element to the first
Máximo de ocorrências Limits the number of iterations (0 = all)
Identificador personalizado Adds wRobo-loop attribute to each element to reference it
💡
Tip: For loops in tables, select the rows (table tbody tr) and inside the loop select the cells ([wRobo-loop='linha_N'] td:nth-child(2)) to access each column.
ℹ️
Inside the loop, use the [wRobo-loop='identifier_N'] selector to interact specifically with the current element.

Loop identifier

Dablio Robô automatically adds the attribute wRobo-loop on each element encountered during the loop. Use this attribute on inner blocks to specifically interact with the current element:

CSS selector — inside the loop
/* Se o identificador do loop for "linha" */
[wRobo-loop="linha_0"]              /* primeiro elemento */
[wRobo-loop="linha_0"] td:nth-child(2)  /* segunda coluna do primeiro elemento */
[wRobo-loop="linha_0"] .btn-acao    /* botão dentro do primeiro elemento */
💡
For HTML tables, select rows with table tbody tr and inside the loop access the columns with [wRobo-loop="linha_N"] td:nth-child(X).
🔀

Repeat tasks

repeat-task
loopwhilerepetitionaccountant
Outputs loop-start

Repeats internal blocks a fixed number of times. The equivalent of a loop for(i=0; i<N; i++).

Repeats internal blocks a set number of times.

🔀 repeat-task ✓ Save block

Automatic counter

Dablio Robô automatically injects the variable {{loopIndex}} with the current index (0-based) within each iteration.

Interrupt with Stop repeat

Use the block Stop repeat inside the loop to exit before completing all iterations when a condition is met.

Parameter Description
Repetir quantas vezes Number of loop iterations
💡
Tip: Use to process a known number of pages (e.g. 10 pages of results), combining with URL increment: https://site.com/lista?page={{pagina}}.

Automatic index variable

Dablio Robô automatically injects the variable {{loopIndex}} within each iteration, starting at 0. Use to build dynamic URLs, file names, or conditional logic based on the current iteration:

Example — Navigate numbered pages
/* URL na Nova aba (loopIndex começa em 0, então somamos 1) */
https://site.com/produtos?pagina={{loopIndex + 1}}

/* Ou inicialize uma variável separada e use Incrementar Variável */
https://site.com/produtos?pagina={{pagina}}
🔀

Browse data

loop-data
looparraylistiterate
Outputs loop-start

Iterates over lists of data: variable arrays, numeric ranges, or custom JSON data. The current item is accessible via the configured variable.

Iterates through a list (variable array, sequential numbers, or JSON data) repeating the internal blocks for each item.

🔀 loop-data ✓ Save block

Source: Variable

Iterates over an array saved in a variable (e.g. list of emails, list of CNPJs). The current item variable is accessible as {{loopItem}}.

Source: Numbers

Generates a sequence of integers from start to end value. {{loopItem}} contains the current number.

Source: JSON

Iterates over a JSON array defined directly in the block. Each item is an object with configured properties.

Home index

Skip the first N items — useful for resuming interrupted processing.

Parameter Description
Fonte de dados Variable · Numbers · JSON
ID do loop Name of the variable that will receive the current item (ex: {{loopItem}})
Do número / Até o número Range for 'Numbers' mode
Dados JSON JSON in [{key, value}] format for JSON mode
Inverter ordem Starts with the last item in the list
Índice inicial Starts from the given index
Máximo de ocorrências Limits the number of iterations (0 = all)
💡
Tip: Combine with Export Data inside the loop to accumulate results line by line in a flow table, exporting at the end as CSV or JSON.

Supported data sources

Variable (Array)

Iterates over an array saved in a stream variable. The current item is available in {{loopItem}} and the index in {{loopIndex}} inside the loop.

Numeric range

Generates a sequence of numbers from start to end value. Ideal for browsing numbered pages or repeating N times with index control.

Custom JSON

Defines a JSON array directly in the block. Each item can be an object with multiple properties, accessed within the loop as {{loopItem.propriedade}}.

💡
Use the field Home index to resume interrupted processing from a specific item, without having to reprocess previous items.
🔀

Stop repeat

loop-break
breakbreak loop
Outputs break

Immediately breaks the nearest loop (Repeat Tasks, Traverse Data, or Traverse Elements) and continues the flow after the loop block.

Immediately stops the nearest loop or repetition (Repeat tasks, Cycle through data, or Cycle through elements).

🔀 loop-break ✓ Save block

Use with Conditional

Combine with a block Conditional to exit the loop when a condition is met, such as 'if price is greater than X, stop searching'.

💡
Tip: Different from Stop flows, this block just exits the current loop — the flow continues normally after the loop.

Difference between Stop Replay and Stop Streams

  • Stop repeat — interrupts only the nearest loop. The flow continues normally after the loop block.
  • Stop flows — ends execution of the entire stream (or other streams). Use only when you want to finish everything.
💡
Combine with Conditional to exit the loop when a specific condition is met, such as "if the price is greater than X, stop searching" or "if no more results are found, exit the loop".
📊

Enter data

insert-data
variabletablecreatestore
Outputs next

The most straightforward variable creation block: sets the value of a variable, adds data to a stream table, or reads contents from files.

Populates variables, stream tables, or local storage tables. Accepts manual text, variables and file contents.

📊 insert-data ✓ Save block

Variable

Sets or overrides the value of a variable. The Data field accepts free text, interpolated variables ({{nome}}) and expressions.

Flow table

Adds a row of data to the specified table, one column at a time. Combine multiple Insert Data blocks to build complete records.

Report file

Reads the contents of a local file or URL and stores it in a variable. Supports plain text and Base64 conversion for binary files.

Parameter Description
Aplicar em Variable · Flow table · Storage table
Nome da variável Target variable (variable mode)
Dados Content to insert. Accepts variables {{var}}
Informar arquivo Reads content from a local file or URL
Formato Pattern (text) · Convert to Base64
💡
Tip: To construct complex JSON objects, use the block Set data or the block Run JS: vars.objeto = {id: vars.id, nome: vars.nome};

Available destinations

Flow variable

Creates or replaces the value of a variable. Accepts free text, interpolated variables {{var}} and any type of data: strings, numbers, arrays or JSON objects.

Flow table

Adds a row of data to the flow's internal table (column by column). Use multiple blocks Enter data in sequence to build complete records before exporting with the block Export data.

Local file (URL or path)

Reads the contents of a computer file or a public URL and stores it in a variable. Activate Convert to Base64 for binary files like PDFs and images.

📊

Set data

create-data
variablesliceregexreplace
Outputs default

Transforms and extracts data from existing variables: string slicing, extraction by content type and regular expressions.

Creates, updates, or extracts parts of content into a new variable. Supports text/data slicing, extraction by type and regular expressions.

📊 create-data ✓ Save block

Text slice

Extracts a substring by position: start and end in character index. Ex: extract the first 4 digits of a ZIP code (0 to 4).

Data slice

For arrays and objects, extract by index. Ex: picking the first 3 items from a list.

Extract numbers/text

Filters only the digits or only the alphabetic characters in a string. Useful for clearing CPF/CNPJ/phone number.

RegEx Expression

Extracts text that matches the pattern. Activate Multiple to return all occurrences as array. Activate Replace to replace rather than extract.

Parameter Description
Valor/Conteúdo Source text or variable {{var}}
Tratamento None · Extract index from text (slice) · Extract index from data · Extract numbers · Extract text · RegEx expression
Início / Final Positions for slice operations
RegEx Regular expression for extraction or replacement
Substituir Replaces the found snippet instead of extracting
Nome da variável Variable that will receive the result
💡
Tip: To clear a formatting CPF (123.456.789-0912345678909), use the treatment Extract only numbers.

Available text treatments

Text slice (index extraction)

Extracts a substring by character position. Index 0 = start, negative index = from end. Example: extract the first 8 digits of a date 20240115 → index 0 to 4 returns 2024.

Extract only numbers

Removes all non-numeric characters. Useful for clearing CPF, CNPJ, telephone number and ZIP code: 123.456.789-0912345678909.

Regular Expression (RegEx)

Extracts or replaces parts of text using patterns. Activate Multiple to return all occurrences as array. Activate Replace to exchange the found pattern with another text.

📊

Increment variable

increase-variable
addaccountantnumberaccumulate
Outputs next

Increments or decrements a numeric value of a variable by a configured amount. The simplest block for creating counters.

Increments or decrements the numerical value of a variable by a given value.

📊 increase-var ✓ Save block

Loop Counter

Create a variable pagina with value 1 and increment by 1 at each iteration to navigate through numbered pages.

Negative value

To decrement, configure a positive value — Dablio Robô will always add this value to the current one. To subtract, use the block Calculator.

Parameter Description
Variável Name of the variable to increment
Valor incremento Value to add (positive) or subtract (negative)
💡
Tip: Initialize the variable with the block Enter Data before the loop. Increment Variable does not create the variable — it must previously exist.

Use as a loop counter

Classic pattern for browsing numbered pages:

Configuration
/* Antes do loop: Inserir dados */
Variável: pagina
Valor: 1

/* URL na Nova aba */
https://site.com/lista?page={{pagina}}

/* Dentro do loop: Incrementar variável */
Variável: pagina
Incremento: 1
📝
The variable must exist before being incremented. Use the block Enter data to initialize it to the initial value before the loop.
📊

Delete data

delete-data
remove variableclean
Outputs default

Removes a variable from stream memory. Useful for freeing up space in long streams or ensuring variables don't carry values ​​from previous iterations.

Removes a variable or data from memory during flow execution.

📊 delete-data ✓ Save block

Nested paths

Supports dot notation to remove properties from objects: usuario.senha only removes the password field from the user object.

Parameter Description
Dados de Variable · Table
Nome da variável Variable to be deleted. Supports nested paths (ex: obj.campo)

Nested paths

Use dot notation to remove just one property from an object, without deleting the entire object:

  • usuario — removes the variable user completely
  • usuario.senha — removes only the field password of the object user
  • lista.0 — removes the first item from the array list
📊

Calculator

✦ EXCLUSIVE
calculator
mathematicsadddividecountaccount
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Performs mathematical calculations with support for specialized functions for Brazilian business scenarios, including currency formatting in Real (BRL).

Performs mathematical calculations with standard operators and specialized functions, including Brazilian currency conversion.

📊 calculator ✓ Save block

Basic operators

+ sum, - subtraction, * multiplication, / division, ^ power, % module (remainder of the division).

Rounding Functions

Calc.arredonda(valor, casas) — standard mathematical rounding. Calc.arredondaBaixo — always down (floor). Calc.arredondaCima — always upwards (ceil).

Currency Functions

Calc.valorBRL(1500.5, 2)'1.500,50' — formats number to the Brazilian standard. Calc.valorUSD('1.500,50', 2)1500.50 — converts BRL text to number.

Statistical functions

Calc.max(a, b, c...) — highest value among arguments. Calc.min(a, b, c...) — lower value.

Parameter Description
Expressão matemática Ex: Calc.max({{v1}}, {{v2}}, 50) + 10.50
Funções disponíveis Calc.max · Calc.min · Calc.rounded · Calc.roundedBow · Calc.roundedUp · Calc.removeDecimals · Calc.turnPositive · Calc.rootSquare · Calculation.power · Calc.random · Calc.sine · Calc.cosine · Calc.tangent · Calc.logarithm · Calc.valueBRL · Calc.valueUSD
Variável de retorno Variable that will receive the result
Casas decimais Rounding of the final result
💡
Tip: All functions accept stream variables: Calc.max({{preco1}}, {{preco2}}, {{preco3}}). Variables are replaced before calculation.
Example
// Calcular valor com desconto e formatar em BRL
Calc.valorBRL({{valor}} * (1 - {{desconto}} / 100), 2)

// Calcular juros compostos
Calc.arredonda({{principal}} * Calc.potencia(1 + {{taxa}}/100, {{meses}}), 2)

// Maior entre dois preços e aplicar margem
Calc.max({{precoA}}, {{precoB}}) * 1.15
ℹ️
Use Calc.valorBRL(num, 2) to format in Brazilian currency (ex: 1,500.50) and Calc.valorUSD('1,500.50', 2) to convert back to number.
📊

Convert data

✦ EXCLUSIVE
converter-dados
base64jsonnumberdateconvert
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Data conversion center: transforms between file formats, data types and textual representations.

Multi-format converter: files and URLs to Base64, JSON parse/stringify, text to number/integer, date formatting and Base64 decoding.

📊 convert ✓ Save block

File → Base64

Converts files from public URL, local folder or absolute path to Base64 string, ready for sending via APIs, WhatsApp or email.

JSON parse/stringify

Converts JSON strings to JavaScript objects (parse) or objects to JSON text (stringify). Use after receiving responses from APIs as text.

Text → Number

Converts strings like '42.5' or '1,234.56' (BRL format) to numbers. Required before using values ​​in calculations.

Format date

Transforms timestamps or ISO dates to the configured format: DD/MM/YYYY, YYYY-MM-DD HH:mm:ss, etc.

Decode Base64

Converts a Base64 string back to text. Useful for reading contents of files received as Base64 from APIs.

Parameter Description
Tipo de conversão Text→Base64 · URL→Base64 · Local file→Base64 · Absolute path→Base64 · File (input)→Base64 · Object→Text · JSON parse · JSON stringify · Text→Number · Text→Integer · Format date · Decode Base64
Conteúdo/Variável Data to be converted
Origem do arquivo For file conversions: local folder, URL, absolute path
Formato de data Output mask: YYYY, MM, DD, HH, mm, ss
Variável de retorno Variable that will receive the result
💡
Tip: To convert a BRL-formatted string number to calculation: use Text → Number. To format the result back for display: use Calculator with Calc.valorBRL().
🌍

WhatsApp

✦ EXCLUSIVE
whatsapp
wppmessagezapcommunication
Outputs truefallback
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Full integration with WhatsApp Web using the WA-JS library. No paid API, no mandatory Business account — works with any number with WhatsApp Web active in the browser.

Send automatic messages via WhatsApp Web using WA-JS or manual mode. Supports text, image, video, audio, document and status posting.

🌍 whatsapp ✓ Save block

Check WhatsApp

Confirm that WhatsApp Web is logged in. Optionally validates that the connected account is the configured number — ensures that the robot is sending from the correct account.

Send text (WA-JS mode)

Sends messages directly via WA-JS to the specified recipient (number with area code + 55, e.g. 5511999999999). WhatsApp can be open or in the background.

Send text (manual mode)

Opens a temporary popup window with the URL web.whatsapp.com/send?phone=..., click the Send button and close the window. Fallback for when WA-JS is not available.

Send file

Supports image, video, audio and documents. The file can come from public URL, Base64, local folder or absolute path. Accepts custom caption and name.

Single view

For images: send as a single-view message — the recipient can only see it once before it disappears. Similar to the app's native feature.

Status

Publish content on WhatsApp Status (Stories). Supports text with background color and images with caption.

Parameter Description
Ação Check WhatsApp · Send Text · Send Image · Send Video · Send Audio · Send Document · Text Status · Image Status
Destinatário Telephone with area code (ex: 5511999999999) or chatId (@c.us)
Mensagem Text to send. Accepts variables {{var}}
Origem do arquivo URL/Base64 · Local folder · Absolute path · Local file
Visualização única Send image with single view (disappears after viewing)
Mensagem de voz Send audio as a voice message instead of a file
Abrir/Fechar/Focar WhatsApp Control the WhatsApp Web tab
Verificar conta Confirms that the connected account matches the number entered
💡
Tip: To send in bulk (e.g. customer list), combine with the block Browse data iterating over an array of numbers. Set up a Wait 3–5 seconds between sends to avoid blocking.
ℹ️
To work, WhatsApp Web must be logged in to the browser. Manual mode opens a temporary popup window for sending.
🌍

Facebook

✦ EXCLUSIVE
facebook
goalsocial networklogin
Outputs truefalse
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Facebook authentication verification and automation. Detects login status via session cookies and page DOM.

Checks if Facebook is logged in in the browser and automatically logs in with email/phone and password.

🌍 facebook ✓ Save block

Login verification

Analyzes cookies (c_user), interface elements and URL to accurately determine whether the user is authenticated.

Automatic login

Fill in the email and password fields and click enter. Supports 'Use another profile' flow when multiple accounts are detected.

Parameter Description
Ação Verify Facebook · Facebook Graph API
Fazer login Performs automatic login if not logged in
E-mail/Telefone Access credentials. Accepts variables
Senha Facebook password. Accepts variables
Aguardar após entrar (ms) Time for login to complete before verification
Abrir Facebook Do not open · New window · New tab
💡
Tip: After logging in, wait at least 3–5 seconds for the interface to redirect and load before performing actions on the platform.
🌍

Messenger

✦ EXCLUSIVE
messenger
goalmessagechat
Outputs truefalse
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Authentication verification and automation in Messenger Web. Includes handling of conversation history restoration PIN modal.

Checks whether Messenger is logged in, performs automatic login, and supports chat history restoration PIN.

🌍 messenger ✓ Save block

Reset PIN

When Messenger asks for PIN to restore encrypted chat history, WROBOBRANDOONE can automatically enter or dismiss the modal by clicking 'Continue without restoring'.

Parameter Description
Ação Check Messenger · Messenger Graph API
Fazer login Performs automatic login if not logged in
E-mail/Telefone / Senha Access credentials
PIN History restore PIN (if requested)
Abrir Messenger Do not open · New window · New tab
💡
Tip: Leave the field PIN empty so that Dablio Robô automatically dismisses the modal without trying to restore the history.
🌍

Instagram

✦ EXCLUSIVE
instagram
goalsocial networklogin
Outputs truefalse
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Authentication verification and automation on Instagram Web. Detects login via session cookie (sessionid) and interface elements.

Checks if Instagram is logged in to the browser and automatically logs in with email/username/phone number and password.

🌍 instagram ✓ Save block

Post login

After successful login, Dablio Robô automatically handles the 'Save login information?' clicking 'Not now', avoiding blockages in the flow.

Parameter Description
Ação Verify Instagram · Instagram Graph API
Fazer login Performs automatic login if not logged in
E-mail/Telefone / Senha Access credentials
Abrir Instagram Do not open · New window · New tab
🌍

Telegram

✦ EXCLUSIVE
telegram
messagechatbot
Outputs truefalse
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Authentication check on Telegram Web. Analyzes localStorage and cookies to determine login status and validate account phone number.

Checks whether Telegram Web is logged in, with optional specific phone number validation.

🌍 telegram ✓ Save block

Number validation

Enter a phone number to check if the account connected to Telegram Web matches. Supports multiple formats: with country code, without code, etc.

Parameter Description
Telefone Number to check (ex: 559912345678). Accepts variables
Aguardar após login (ms) Time for page to load
Abrir Telegram Do not open · New window · New tab
🌍

Google Sheets

google-sheets
spreadsheetgooglesheets
Outputs next

Direct integration with Google Sheets for reading and writing data in spreadsheets.

Read or write data to a Google Sheets spreadsheet via API integration.

🌍 google-sheet ✓ Save block

Read data

Returns data from a range of cells as an array for processing in the stream.

Append

Adds new rows to the end of the worksheet without overwriting existing data.

Parameter Description
ID da planilha ID extracted from spreadsheet URL
Range Cell range (ex: A1:D10)
Modo Read · Append (add lines)
💡
Tip: Match with block Browse data to process each row of the spreadsheet individually.

Authentication required

📝
To use the integration with Google Sheets, you need to connect your Google account in the WROBOBRANDOONE settings and authorize access to the spreadsheets.

Available operations

Read data

Returns data from a range of cells as an array for use in subsequent blocks. Combine with Browse data to process line by line.

Add (Append)

Inserts new rows at the end of the spreadsheet without overwriting existing data. Ideal for accumulating scraping results over time.

🌍

OCR: Read images

google-vision
ocrgoogle visiontext imagerecognition
Outputs next

Integration with Google Cloud Vision API for OCR (text recognition in images) and other computer vision analyses.

Sends an image to the Google Cloud Vision API for OCR, detection of labels, objects, faces, logos and security analysis.

🌍 google-visio ✓ Save block

Simple vs. Simple OCR document

Simple OCR is for images with sparse text. OCR Document is optimized for dense documents such as forms, scanned PDFs and invoices.

Other types of detection

Labels (object categorization), Face detection, Company logos, Tourist attractions, SafeSearch (inappropriate content) and Web Detection (reverse search).

Result

For OCR, returns the extracted text as a string. For other types, returns the full JSON from the API for processing with the block Set data.

Parameter Description
API Key Google Cloud Vision API Key
Origem do arquivo Manual · URL/Base64 · Local folder · Absolute path
Tipo Simple OCR · Document OCR · Labels · Objects · Face · Logo · SafeSearch · Web detection...
Máx. resultados Maximum number of detection results
Variável de retorno For OCR, saves the extracted text; for other types, save the full JSON
💡
Tip: To extract text from screenshots or invoice images, combine Screenshot (save to variable as Base64) → Convert Data (for pure Base64) → OCR: Read images.
🌍

Google Document AI

✦ EXCLUSIVE
google-document-ai
ocrpdfparserextraction
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Advanced document processing with Google Cloud Document AI. Uses specialized Processors to extract structured fields from invoices, contracts, identities and forms.

Send documents (PDF or image) to Google Cloud Document AI for advanced processing with configured Processors.

🌍 google-docum ✓ Save block

Processors

Each Processor is trained for a type of document. Create and configure in the Google Cloud Console before using in WROBOBRANDOONE.

Access Token

Unlike Vision API, Document AI requires OAuth 2.0 authentication (not API Key). Use the Bearer token obtained via Google Auth.

Result

For OCR, returns the full text. For Form Parser and Invoice Parser, returns structured JSON with extracted fields and their values.

Parameter Description
Access Token (OAuth) Token Bearer OAuth 2.0 with Document AI permission
Project ID Project ID in Google Cloud
Location us · me
Processor ID Processor ID created in the Document AI console
Processor Version Specific processor version (optional)
Origem do arquivo Manual · URL/Base64 · Local folder · Absolute path
MIME Type application/pdf image/png image/jpeg
Variável de retorno For OCR, save the text; for parsers, save the JSON
💡
Tip: For electronic invoice automation, the Invoice Parser Processor automatically extracts fields such as CNPJ, value, date and items, eliminating the need for manual parsing.
🌍

N8N

✦ EXCLUSIVE
n8n
webhookworkflowautomationintegration
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Bidirectional integration with the N8N to trigger more complex automation flows or integrate with the hundreds of connectors available on the N8N.

Run an existing flow via webhook or create and run a new flow on the N8N with the option to automatically delete it after use.

🌍 n8n ✓ Save block

Run existing flow

Sends an HTTP request to the webhook of a flow already created and configured on the N8N. Configure method, headers and body as the webhook expects.

Create and run flow

Creates a new flow in N8N via API, activates it, triggers the webhook and optionally deletes the flow after execution. Ideal for temporary or dynamic flows.

Wait for return

Dablio Robô waits for N8N's response before continuing. Configure the timeout according to the estimated duration of the flow on the N8N.

Parameter Description
Modo Run N8N flow (webhook) · Create new flow in N8N
URL do webhook Full URL of existing stream
Método HTTP GET · POST · PUT · PATCH · DELETE
Cabeçalhos/Body Request headers and body
Aguardar retorno Pause the stream until N8N responds
JSON do novo fluxo JSON exported from N8N to create the flow (creation mode)
Executar fluxo criado Trigger the webhook after creating
Manter salvo no N8N If unchecked, deletes the flow after execution
Salvar retorno Variable that will receive the response
💡
Tip: Use N8N for integrations with services that Dablio Robô does not natively cover (Slack, Salesforce, databases, etc.). Dablio Robô collects the data and N8N takes care of the integration.
🌍

Send Email

send-email
emailsmtpcommunication
Outputs default

Sends emails via backend API configured on the server. Supports HTML, multiple recipients and flow variables in content.

Sends email through a configured backend API, supporting HTML and multiple recipients.

🌍 send-email ✓ Save block

HTML in the body

The Message field accepts full HTML—use to create emails formatted with tables, images, inline styles, and clickable links.

Multiple recipients

In the Cc field, separate the emails with a comma for copying to multiple recipients simultaneously.

Parameter Description
De (remetente) Sender email (must match backend account)
Para (destinatário) Recipient email
Cc Copy — multiple emails separated by comma
Assunto Email subject. Accepts variables
Mensagem Email body in HTML or text. Accepts variables
💡
Tip: For automatic reports, build the email HTML dynamically with flow variables: <p>Total processado hoje: <strong>{{total}}</strong></p>
🌍

Artificial Intelligence

✦ EXCLUSIVE
IA
AIChatGPTGeminiDeepSeekLLM
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Integration with Artificial Intelligence models from major providers. Ideal for classification, summarization, information extraction, text generation and content-based decision making.

Integration with AI models: ChatGPT (OpenAI), DeepSeek and Gemini (Google). Configure the context, requirements, and prompt for intelligent responses.

🌍 AI ✓ Save block

OpenAI (ChatGPT)

GPT-5, GPT-4.1 models and variants. Use Requirements as a system prompt to define the AI role and context, and Prompt for the content to be processed.

DeepSeek

V3.1 (standard) and V3.1-Think (extended reasoning) models. Excellent cost-benefit for text analysis tasks in Portuguese.

Google Gemini

2.5 Flash and Pro models. Flash is faster and more economical; Pro is more capable for complex tasks.

Use case: extraction

Configure the Requirement like: 'You are a data extractor. Return only JSON without markdown formatting.' — the block saves the JSON to the variable for immediate use.

Parameter Description
Fornecedor OpenAI (ChatGPT) · DeepSeek · Google (Gemini)
Modelo GPT-5/4.1/o3 · DeepSeek-V3.1 · Gemini 2.5 flash/pro
Requisitos/Contexto System instructions that define the role and behavior of the AI
Prompt Question or content to process. Accepts variables {{var}}
Variável de resposta Variable that will receive the AI response
💡
Tip: Pass the content captured from the web as a variable in the Prompt: Analise o seguinte texto e extraia o valor total da fatura: {{textoCapturado}}
🖥️

Windows

✦ EXCLUSIVE
windows
RPAcmdmousekeyboardprocesssystem
Outputs defaultfallback (error)
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Exclusive Dablio Robô block that expands automation to the Windows operating system level, controlling any desktop application beyond the browser.

Sends automation commands to the Local Host installed on Windows. Allows you to control the operating system in addition to the browser: mouse, keyboard, windows, processes, screen OCR, PowerShell and much more.

🖥️ windows ✓ Save block

Move and click

Controls the mouse cursor in absolute screen coordinates. Use together with mode Capture position to discover the coordinates of elements in legacy systems.

Enter text

Simulates typing in any active window or field in the system. It works on ERPs, terminals, Java applications, legacy systems that do not have an API.

Window/process exists?

Checks by title (supports Regex) or process name (.exe). Returns window coordinates if enabled Return coordinates.

Find element on screen (UI)

Finds interface elements using the Windows Accessibility API (UIAutomation). For Java systems, enable Java Access Bridge (JAB).

Find text on screen (OCR)

Captures the screen and uses optical character recognition to find text. It works in any application, including those that do not expose accessibility elements.

PowerShell

Runs full PS1 scripts with full system access. The result (stdout) can be captured in a stream variable.

Multi-actions

Defines a JSON array with multiple actions in sequence: more efficient than using several separate blocks for login on desktop systems.

Parameter Description
Ação Connection test (Ping) · Move mouse · Click · Type text · Press ENTER · Wait (sleep) · Scroll (scroll) · Capture position · Shut down computer · Cancel shutdown · Window/process exists? · Find element on screen (UI) · Find text on screen (OCR) · Open/run file · PowerShell · Multi-actions · Custom commands
Coordenadas X/Y Position on screen for mouse actions
Botão do mouse Left · Right
Número de cliques Single, double or personalized
Texto Text to enter into the system
Título da janela Text or Regex to identify the window
Nome do processo Ex: SistemaXYZ.exe
Usar JAB Enables Java Access Bridge for Java applications
Aguardar retorno Pauses the stream until it receives a response from the Host
Variável de retorno Variable that will receive the response from the Host
💡
Tip: To find out the coordinates of buttons on legacy systems, use the action Capture position: the robot waits N seconds for you to position the cursor and then saves the X,Y coordinates in a variable.
Example
[
  {"cmd":"move", "x":450, "y":320},
  {"cmd":"click", "x":450, "y":320, "button":"left", "clicks":1},
  {"cmd":"sleep", "ms":800},
  {"cmd":"type", "text":"{{usuario}}"},
  {"cmd":"type", "text":"\t"},
  {"cmd":"type", "text":"{{senha}}", "enter":true}
]
ℹ️
Requires Local Host (DablioRoboHost) installed on the computer where the automations will run. For corporate environments, release the localhost:37777 port on the firewall.
🔧

CAPTCHA

✦ EXCLUSIVE
captcha
recaptchahcaptchaturnstilebotsecurity
Outputs true (solved)false (unresolved/timeout)default (not found)
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Complete CAPTCHA management: detect, wait for manual resolution or resolve automatically via AI with a high success rate.

Detects the presence of CAPTCHA on the page and waits to be solved manually or automatically via AI. Supports the main types on the market.

🔧 captcha ✓ Save block

Automatic detection

Identifies reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile, FunCaptcha, GeeTest, Amazon WAF, DataDome, and more without manual configuration.

Wait for manual resolution

Focus on the tab (bring it to the front) and wait until the CAPTCHA disappears from the DOM or the response token is filled. Saves the CAPTCHA coordinates in a variable if necessary.

Automatic resolution

Detects the necessary parameters (SiteKey, pageURL, User-Agent) automatically on the page. Sends it to the AI ​​service and injects the response token into the correct field.

Custom selector

For unmapped CAPTCHAs: enter the CSS/XPath selector of the CAPTCHA element. The block waits until the selector disappears, or configure a 'resolved CAPTCHA' selector that should appear.

Outputs

true: CAPTCHA has been detected and solved. false: timeout or unresolved. default: No CAPTCHA was detected on the page.

Parameter Description
Tipo Auto (detects) · reCAPTCHA v2/v3 · hCaptcha · Cloudflare Turnstile · FunCaptcha · GeeTest v3/v4 · Amazon WAF · DataDome · CyberSiara · Imperva · MtCaptcha · Friendly · Tencent · Capy · CutCaptcha · Lemin · Custom
Tempo máx. espera (ms) Time to wait for manual resolution
Intervalo de verificação (ms) Frequency of checking whether the CAPTCHA is still present
Focar aba quando detectar Brings the tab forward for the user to solve
Resolver automaticamente Uses AI with high success rate (requires credits)
Timeout de resolução (seg) Maximum time for AI to automatically resolve
Parâmetros manuais SiteKey, pageURL, UserAgent and specific fields of each type
Salvar resposta Saves response token to variable for manual injection
💡
Tip: Configure Max time wait with at least 3 minutes (180000ms) to leave enough time in cases of manual resolution. For fully unattended automation, use AI-powered auto resolution.
🔧

PDF to Image

✦ EXCLUSIVE
pdf-to-image
pdfconvertpngjpgrender
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Convert PDF pages to PNG or JPG images using PDF.js, directly in the browser. Useful for extracting images from documents or preparing PDFs for OCR.

Converts a specific page of a PDF to a PNG or JPG image using PDF.js, with scaling quality control.

🔧 pdf-to-image ✓ Save block

Scale/Quality

1.0 = native resolution. 2.0 = double the resolution (ideal for OCR). 3.0 = high resolution for printing. The larger it is, the larger the resulting file.

Save to variable

Returns the image as Base64 for use with OCR (Google Vision), sending via WhatsApp, API or exporting as a file.

Specific page

Enter the page number to convert (1 = first). To convert all pages, match the block Browse data iterating from 1 to the total number of pages.

Parameter Description
Origem do PDF Manual · URL/Base64 · Local folder · Absolute path
Número da página Which page to convert (1 = first)
Escala/Qualidade 1.0 = original, 2.0 = double the resolution (more quality)
Formato PNG (best quality) · JPG (smallest size)
Destino Save Base64 to variable · Download file
💡
Tip: For OCR of scanned documents, use scale 2.0 or higher — low-resolution images drastically reduce text recognition accuracy.
🔧

Database Connection

✦ EXCLUSIVE
banco-dados
sqlbankquery
Outputs next
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Direct connection to databases to execute SQL queries, insertion and retrieval of data during automation.

Executes SQL queries on databases connected to the system.

🔧 database ✓ Save block

Configuration

Connect databases in Dablio Robô settings. Multiple connections can be configured for different environments (dev, prod).

Result

The data returned by the query is saved in the variable configured as an array of objects, ready for iteration with the loop blocks.

Parameter Description
Banco de dados Select the configured connection
Consulta SQL SQL query to be executed
Variável de resposta Variable that will receive the results
🔧

Excel

excel
spreadsheetxlsxlsxods
Outputs next

Advanced reading and writing in Excel files (XLS, XLSX, ODS, XLSB) with support for multiple processing engines.

Reading, writing and advanced utilities for Excel files. Supports multiple read/write engines and XLS, XLSX, ODS and XLSB formats.

🔧 excel ✓ Save block

List tabs

Returns the names of all tabs in the worksheet as a list. Useful for dynamically processing spreadsheets with a variable number of tabs.

Read data (Excel Input)

Reads data from a specific tab in a configurable range, with options to handle headers, empty lines, encoding and errors.

Export (Excel Output)

Creates a new Excel file with the flow data. Supports templates, tab protection, automatic column adjustment and dynamic names with date/time.

Advanced writing (Excel Writer)

Writes to specific cells of an existing file, with fine control of position (start cell), conflict behavior and style preservation.

Parameter Description
Recurso List tabs · Read data (Excel Input) · Export (Excel Output) · Advanced writing (Excel Writer)
Caminho do arquivo Full path of the Excel file
Motor XLS (JXL) · XLSX (POI) · XLSX Streaming · ODS · XLSB
Aba Name or index of the tab to process
Linha/coluna inicial Starting point for reading or writing
Cabeçalho Ignore or include first line as header
Formato de saída Name, extension, split, protection and template settings
💡
Tip: To process spreadsheets with multiple tabs, combine List tabsBrowse dataRead data using the tab name as a variable.
🔧

Antivirus

✦ EXCLUSIVE
antivirus
virustotalmalwaresecurityscan
Outputs nextfallback (malicious)
Dablio Robô Exclusive Feature
This block is not available in other automation extensions.

Integration with VirusTotal (Google) to check the security of files, URLs and hashes before processing them in automation.

Scans file, URL or hash on VirusTotal (Google) and returns full security report with configurable blocking policy.

🔧 antivirus ✓ Save block

Check hash

Checks MD5, SHA1 or SHA256 of a file. If the file is not in the VirusTotal database, it returns undefined results.

Check URL

Analyzes whether a URL is malicious. Returns the report with detections by antivirus engine.

Blocking policy

Configure thresholds: if ≥ N engines detect it as malicious or suspicious, the block goes through the fallback output, allowing the file to be treated as a threat.

Parameter Description
Ação Check hash · Check URL · Check file
API Key VirusTotal VirusTotal Service API Key
Hash MD5, SHA1 or SHA256 of the file
URL Address to check
Limite de detecções maliciosas Block if ≥ N antiviruses mark as malicious
Limite de suspeitos Block if ≥ N antiviruses mark as suspicious
Campo de saída Name of the field where the JSON report will be written
💡
Tip: Use before downloading and processing files received from external sources or automated emails to ensure automation security.