Robô Docs
🔍 Ctrl + K

Documentação Dablio Robô

Referência completa de todos os blocos de automação. Selecione um bloco na barra lateral ou utilize a pesquisa para começar.

74
Blocos disponíveis
10
Categorias
15+
Blocos exclusivos
🔐

Fluxos temporários via URL ou CustomEvent

✦ AVANÇADO
dablioroboWorkflow
URLCustomEventJSONrunToken
Entrada workflow commands

Esta funcionalidade permite executar um fluxo temporário, montado em memória, sem criar e guardar previamente um fluxo no Dablio Robô. O JSON pode ser enviado pelo próprio URL da página ou por um evento JavaScript CustomEvent.

É indicado para integrações entre sistemas, painéis internos, ERPs, links de ação rápida, webhooks indiretos, páginas que necessitem de acionar automações locais no browser e cenários onde o fluxo é gerado dinamicamente por uma aplicação externa.

🔐
Execução protegida por um token de execução (runToken)
Todo o fluxo temporário requer a validação da sessão do utilizador e a conferência do parâmetro runToken no backend antes de qualquer bloco ser executado.

Diferença para o fluxo salvo

Os fluxos guardados são executados por dablioroboId ou dabliorobo e já existem no armazenamento da extensão. Os fluxos temporários são enviados como JSON, executados em memória e descartados após o início da execução.

Workflow completo

Use dablioroboWorkflow quando já tiver um objeto de fluxo completo contendo blocks, connections, startBlockId, trigger e outros metadados.

Lista de comandos

Use dablioroboCommands quando pretende enviar uma lista simples e sequencial de comandos. O Dablio Robô converte esta lista num workflow temporário automaticamente.

Validação no backend

Antes da execução, o robô chama a validação de sessão existente. Quando runToken é enviado, o endpoint verifica o código de execução e confirma se o fluxo pode ou não continuar.

Parâmetros disponíveis no URL

Parâmetro Descrição
dablioroboWorkflow Workflow completo em JSON codificado em Base64URL. Executa o fluxo temporário sem o guardar.
dablioroboCommands Array de comandos em JSON codificado em Base64URL. O robô converte os comandos em blocos sequenciais.
runToken Password configurada no backend para autorizar execução temporária. Obrigatória para dablioroboWorkflow e dablioroboCommands.
dablioroboData JSON opcional em Base64URL com dados/variáveis iniciais da execução.
dablioroboOnce Quando definido como 1, evita o disparo repetido do mesmo URL durante a navegação/recarregamento.
dablioroboNow Quando definido como 1, tenta executar de imediato, sem aguardar por comportamento automático posterior.
⚠️
Não envie dablioroboWorkflow e dablioroboCommands juntos. Utilize apenas um formato por disparo. Se os dois forem enviados, a implementação deverá priorizar apenas um deles ou rejeitar a execução para evitar ambiguidade.

Como codificar o JSON para Base64URL

Os parâmetros dablioroboWorkflow, dablioroboCommands e dablioroboData devem ser enviados como Base64URL para evitar problemas com aspas, acentos, chaves, barras, espaços e caracteres especiais dentro do URL.

JavaScript — Gerar 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);

Exemplo 1 — Enviar workflow completo através do URL

Neste formato envia o workflow inteiro, semelhante a um fluxo exportado pelo Dablio Robô. O fluxo não será guardado no armazenamento local.

JSON — Workflow temporário
{
  "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 — Execução com dablioroboWorkflow
https://www.google.com/?dablioroboWorkflow=BASE64URL_DO_WORKFLOW&runToken=SUA_SENHA&dablioroboOnce=1&dablioroboNow=1

Exemplo 2 — Enviar comandos sequenciais através do URL

Neste formato envia apenas uma lista de comandos. O robô monta automaticamente o bloco inicial, os blocos intermédios e as ligações sequenciais.

JSON — Lista de comandos
[
  {
    "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 — Execução com dablioroboCommands
https://www.google.com/?dablioroboCommands=BASE64URL_DOS_COMANDOS&runToken=SUA_SENHA&dablioroboOnce=1&dablioroboNow=1

Aliases aceites em comandos curtos

Alias Bloco/ação equivalente
clickclicarclique Converte para o bloco click-element.
typedigitarpreencher Converte para o bloco forms com ação de texto.
submitenviar Converte para o bloco forms com ação submit.
selectselecionar Converte para o bloco forms com ação de seleção.
keyhotkeyatalho Converte para o bloco press-key.
waitsleepaguardar Converte para o bloco delay.
openopen-urlnova-aba Converte para o bloco new-tab.
jsjavascript Converte para o bloco javascript-code.
windows Converte para o bloco windows, quando o Host Local estiver instalado e autorizado.
💡
Dica: Quando precisar de configurações específicas de um bloco, também pode enviar o type real do bloco e colocar toda a configuração dentro de config. Exemplo: { type: "click-element", config: { seletor: "#botao" } }.

Enviar variáveis juntamente com o fluxo

Use dablioroboData para enviar dados iniciais para a execução. Estes dados entram no contexto do fluxo e podem ser consumidos pelos blocos como variáveis.

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

Exemplo 3 — Executar workflow temporário através do CustomEvent

Utilize este formato quando a página já está aberta e pretende acionar a automatização por JavaScript, sem recarregar o URL.

JavaScript — CustomEvent com 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'
    }
  }
}));

Exemplo 4 — Executar comandos através do CustomEvent

JavaScript — CustomEvent com 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'
    }
  }
}));

Capturar o retorno da execução

Após receber o pedido, o content script devolve o resultado pelo evento dabliorobo:execute-workflow:result. Este retorno informa se o fluxo foi recebido, se foi iniciado e qual o erro em caso de bloqueio.

JavaScript — Listener de retorno
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);
  }
});

Validação de segurança com runToken

1. Utilizador precisa de estar autenticado

O robô chama a validação de sessão existente. Se a sessão estiver inválida, expirada ou sem token local, a execução é bloqueada.

2. Utilizador precisa de ter permissão

Para além da sessão válida, o backend return necessita de permitir a execução de fluxo, normalmente.

3. O código de execução necessita de ser previamente configurado no painel

Antes de qualquer ação o utilizador necessita de aceder ao seu painel e verificar se tem permissão para executar essa ação e de seguida configurar um código de execução (e esse mesmo terá de ser informado nos pedidos), caso contrário o fluxo temporário não é executado.

Principais erros de bloqueio

Erro Quando acontece
RUN_TOKEN_REQUIRED Foi enviado um workflow temporário, mas o parâmetro runToken não foi informado.
RUN_TOKEN_INVALID O backend não aceitou o runToken
AUTH_REQUIRED A sessão local do utilizador não está válida ou o backend recusou a autenticação.
PERMISSION_DENIED_RUN_WORKFLOW O utilizador está autenticado, mas não tem permissão para executar fluxos.
WORKFLOW_NOT_FOUND Aplica-se aos disparos por ID/publicId quando o fluxo guardado não é encontrado. Não deve ocorrer em workflow temporário válido.
🛡️
Boa prática de segurança: trate o runToken como uma palavra-passe. Não exponha este valor em páginas públicas, URLs partilhados, prints, registos do servidor, histórico do browser ou links enviados para terceiros. Para integrações sensíveis, prefira gerar o link numa área autenticada do seu sistema e limitar a sua validade no backend.
Resumo: use dablioroboWorkflow para enviar um fluxo completo, dablioroboCommands para enviar comandos simples, dablioroboData para variáveis e runToken para autorizar a execução temporária no backend.
⚙️

Gatilho

trigger
inicioiniciarcomeçar
Saídas next

O bloco Gatilho é o ponto de partida obrigatório de qualquer fluxo. Ele define quando e como o fluxo será iniciado. Cada fluxo deve ter exatamente um Trigger.

Define como e quando o fluxo começa. Suporta disparo manual, por intervalo, dia da semana, quando visita um site, numa data/hora específica, quando abre o browser, por menu de contexto ou atalho de teclado.

⚙️ trigger ✓ Guardar bloco

Manual

Inicia o fluxo ao clicar no botão ▶ do painel do Dablio Robô. Ideal para testes e execuções pontuais.

Por intervalo

Executa o fluxo repetidamente a cada N minutos definidos no campo Intervalo (minutos). O contador inicia-se após a primeira execução manual ou ativação do fluxo.

Ao visitar um site

Dispara automaticamente quando o browser acede a um URL que corresponde ao padrão configurado. Suporta texto simples, correspondência exata, Regex e sites SPA (Single Page Applications) com deteção de mudança de rota.

Data/hora específica

Agenda o fluxo para executar uma única vez numa data e hora determinadas, utilizando a hora local do sistema.

Dia da semana

Executa todas as semanas num dia e hora fixos — por exemplo, todas as segundas-feiras às 08:00.

Ao abrir o browser

Inicia automaticamente quando o browser é aberto. Ideal para rotinas de arranque de sistemas ou recolha diária de dados.

Menu de contexto

Adiciona o fluxo como opção no menu do botão direito do rato. Pode ser filtrado por URL e por contexto: imagens, links, campos editáveis, texto selecionado, etc.

Atalho de teclado

Liga o fluxo a uma combinação de teclas (ex: Ctrl+Shift+1). Funciona apenas em páginas web — não em páginas internas do browser (chrome://).

Parâmetro Descrição
Tipo de disparo Manual · Por intervalo · Quando visita um site · Data/hora específica · Dia da semana · Quando abre o browser · Menu de contexto · Atalho de teclado
Intervalo (min) Quantidade de minutos entre cada execução automática
URL do site URL ou parte do URL que dispara o fluxo quando é visitado
Considerar exato O trigger só dispara quando o URL é exatamente igual
Usar regex Interpreta o campo URL como expressão regular
Support SPA Também dispara quando o URL muda em Single Page Applications
Executar automaticamente Se desmarcado, o fluxo só corre se for iniciado manualmente
Aguardar carregamento completo Inicia o fluxo apenas após o evento load da página
Dia da semana / Data / Hora Definições de data e hora para disparo programado
Atalho de teclado Combinação de teclas que dispara o fluxo (ex: CTRL+SHIFT+1)
💡
Dica: Combine o gatilho Ao visitar um site com Executar automaticamente desmarcado para exibir um botão flutuante na página, permitindo ao utilizador iniciar o fluxo no momento certo.
ℹ️
O gatilho é o bloco inicial obrigatório de qualquer fluxo. Apenas é permitido um disparo por fluxo.

Disparar via JavaScript (CustomEvent)

É possível acionar um fluxo programaticamente a partir de qualquer página utilizando a API de CustomEvent do 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'
      }
    }
  }
}));
📝
O atalho de teclado só funciona quando se está numa página web. Os URLs que começam por chrome:// ou chrome-extension:// não suportam atalhos de teclado.
⚙️

Executar um trabalho

execute-workflow
sub-fluxochamar
Saídas default

Chama outro fluxo como sub-rotina. O fluxo filho recebe automaticamente as variáveis ​​e tabelas do pai e, após a conclusão, o pai continua normalmente pelo caminho padrão.

Executa outro fluxo de trabalho a partir deste ponto. Partilha automaticamente variáveis, tabelas e o separador alvo entre o fluxo pai e o filho.

⚙️ executar-trabalho ✓ Guardar bloco

Partilha de contexto

As variáveis, tabelas e o separador alvo atual são passados automaticamente ao filho. As alterações feitas pelo filho nas variáveis são visíveis no pai após o retorno.

Uso recomendado

Ideal para criar bibliotecas de sub-rotinas reutilizáveis: login, preenchimento de formulários recorrentes, envio de notificações, etc. Vários fluxos podem chamar o mesmo sub-fluxo.

Parâmetro Descrição
Workflow alvo Selecione o fluxo que será executado
💡
Dica: Passe dados específicos para o sub-fluxo definindo variáveis antes do bloco Executar um trabalho. O sub-fluxo lê-las-á via {{nomeVariavel}}.
ℹ️
Após o sub-fluxo terminar, o fluxo pai continua normalmente pela saída padrão.

Partilha de contexto

O que é partilhado

O fluxo filho recebe automaticamente todas as variáveis, tabelas e o separador alvo atual do fluxo pai. As alterações feitas pelo filho nas variáveis ​​são visíveis no pai após o retorno.

💡
Utilize sub-fluxos para criar bibliotecas de automatização reutilizáveis. Por exemplo: um sub-fluxo de Login chamado por vários fluxos diferentes, um sub-fluxo de Envio de notificação reutilizado em múltiplos contextos.
⚙️

Verificar fluxo

is-workflow-running
statusexecutando
Saídas verdadeirofalso

Verifica em tempo real se outro fluxo está a ser executado neste momento. Útil para evitar execuções paralelas ou aguardar que um fluxo concorrente termine.

Verifica se um fluxo específico está a ser executado neste momento. Retorna verdadeiro (em execução) ou falso (parado).

⚙️ is-workflow- ✓ Guardar bloco

Retorno

Retorna true se o fluxo estiver em execução, false caso contrário. O resultado pode ser guardado em variável.

Casos de uso

Evitar que dois fluxos acedam ao mesmo sistema ao mesmo tempo; criar semáforos de controlo em automatizações complexas; monitorizar a saúde dos fluxos automáticos.

Parâmetro Descrição
Origem do fluxo Selecionar da lista ou informar ID manualmente
Fluxo / workflowId Fluxo a verificar
Salvar resultado na variável Guarda true/false numa variável
💡
Dica: Combine com o bloco Condicional para criar lógica de 'se o fluxo X já está a correr, aguardar ou saltar'.
⚙️

Parar fluxos

stop-workflows
cancelarinterromper
Saídas

Interrompe a execução do fluxo atual ou de outros fluxos em curso. Pode terminar com o estado de Sucesso ou lançar um Erro para ativar os blocos de tratamento de falhas.

Interrompe a execução do fluxo atual ou de outros fluxos em curso. Pode terminar com sucesso ou lançar um erro.

⚙️ stop-workflo ✓ Guardar bloco

Parar o fluxo atual

Encerra imediatamente este fluxo. Se Lançar um erro estiver marcado, o estado fica como Erro e a mensagem configurada aparece nos logs.

Parar todos os fluxos

Para todas as instâncias em execução. A opção Exceto o fluxo atual mantém este vivo enquanto cancela os restantes.

Parar fluxo específico

Cancela todas as instâncias de um fluxo selecionado, sem afetar outros fluxos em execução.

Parâmetro Descrição
O que parar Fluxo atual · Todos os fluxos · Fluxo específico
Exceto o fluxo atual Para todos os outros, mas mantém este vivo
Lançar um erro Encerra com o estado de Erro em vez de Sucesso
Mensagem de erro Mensagem apresentada nos logs ao terminar com erro
💡
Dica: Use Lançar um erro para integrar com sistemas de monitorização — o estado Erro fica registado no histórico e pode desencadear notificações.
⚙️

Aguardar um tempo

delay
delayesperarpausaratraso
Saídas next

Pausa a execução durante o tempo configurado antes de avançar para o bloco seguinte. Essencial para aguardar carregamentos, animações de página e janelas de tempo entre ações.

Faz uma pausa na execução do fluxo durante um tempo configurado em milissegundos antes de avançar para o bloco seguinte.

⚙️ delay ✓ Guardar bloco

Tempo em milissegundos

1 segundo = 1000ms · 500ms = meio segundo · 3000ms = 3 segundos. Configure o tempo mínimo necessário — tempos demasiado longos tornam o fluxo lento desnecessariamente.

Alternativas ao Delay

Para aguardar que apareça um elemento específico, prefira a opção Aguardar seletor nos blocos de interação. É mais fiável do que um tempo fixo porque não depende de estimativas.

Parâmetro Descrição
Tempo (ms) Duração da pausa em milissegundos (ex: 1000 = 1 segundo)
💡
Dica: Em vez de um delay longo único, combine delays mais pequenos com verificações de condições para criar esperas adaptativas.

Referência de tempo

  • 500ms = meio segundo
  • 1000ms = 1 segundo
  • 3000ms = 3 segundos
  • 60000ms = 1 minuto
💡
Para aguardar que um elemento específico apareça em vez de utilizar um tempo fixo, prefira a opção Aguardar seletor disponível nos blocos de interação. É mais fiável porque não depende de estimativas de tempo.
⚙️

Exportar dados

export-data
salvararquivodownload
Saídas next

Exporta os dados recolhidos pelo fluxo para ficheiros locais. Suporta tabelas de dados, variáveis ​​individuais e conteúdo personalizado, com múltiplos formatos de saída.

Exporta os dados recolhidos (tabelas, variáveis ou texto personalizado) para um ficheiro local em vários formatos.

⚙️ export-data ✓ Guardar bloco

Fonte: Tabela

Exporta todos os dados de uma tabela criada pelo fluxo (ex: dados raspados de um site). Ideal para CSV e JSON.

Fonte: Variável

Exporta o conteúdo de uma variável específica. Útil para guardar textos longos, respostas de API ou conteúdo HTML capturado.

Fonte: Conteúdo personalizado

Monta o ficheiro a partir de um template de texto com variáveis interpoladas: Nome: {{nome}}, E-mail: {{email}}.

Formato Base64 para ficheiro

Converte uma string Base64 (ex: imagem ou PDF recebido de API) de volta para o ficheiro binário correspondente.

Escolher local específico

Utilizando a API de acesso ao sistema de ficheiros do browser, guarda o ficheiro diretamente numa pasta escolhida pelo utilizador — sem passar pela pasta padrão de Downloads.

Parâmetro Descrição
Fonte dos dados Tabela de dados · Variável · Conteúdo personalizado
Formato JSON · CSV · TXT · HTML · XML · Base64 para ficheiro · MIME personalizado
Nome do arquivo Nome do ficheiro de saída. Aceita variáveis {{var}}
Escolher local específico Guarda numa pasta selecionada em vez da pasta Downloads padrão
Conflito de nome Gerar nome único · Sobrescrever · Perguntar ao utilizador
💡
Dica: Para relatórios periódicos, utilize a variável {{data}} no nome do ficheiro para criar ficheiros únicos: relatorio_{{data}}.csv.

Formatos de exportação disponíveis

  • JSON — objeto ou array formatado com indentação. Ideal para consumir via API.
  • CSV — folha de cálculo separada por vírgula. Compatível com Excel, Sheets e LibreOffice.
  • TXT — texto puro, uma linha por registo.
  • HTML — mantém a estrutura HTML capturada.
  • XML — formato estruturado para integrações legadas.
  • Base64 para ficheiro — converte uma string Base64 de volta para o ficheiro binário original (PDF, imagem, etc.).
  • Personalizado (MIME) — especifique qualquer tipo MIME para formatos não listados.
💡
Use {{data}} ou outra variável de data no nome do ficheiro para criar exportações com timestamp: relatorio_{{data}}.csv
⚙️

Requisição HTTP

http-request
APIPOSTGETwebhookREST
Saídas next

Realiza pedidos HTTP/HTTPS para APIs externas. Suporta todos os verbos REST, autenticação através de cabeçalhos, múltiplos formatos de corpo e tipos de resposta.

Faz um pedido HTTP para APIs ou serviços externos. Suporta todos os métodos, cabeçalhos personalizados, tipos de corpo e recebe a resposta como JSON, texto ou Base64.

⚙️ http-request ✓ Guardar bloco

Cabeçalhos personalizados

Adicione um cabeçalho por linha no formato Chave: Valor. Para autenticação: Authorization: Bearer {{token}}. As variáveis ​​são substituídas automaticamente.

Tipos de conteúdo

application/json para APIs REST padrão; application/x-www-form-urlencoded para formulários legados; multipart/form-data para upload de ficheiros.

Caminho no JSON

Extrai um campo específico da resposta sem ter de processar o JSON completo. Utilize notação de ponto: data.users.0.email — devolve o e-mail do primeiro utilizador do array.

Resposta Base64

Ideal para descarregar ficheiros binários (PDFs, imagens, documentos) de APIs. O resultado pode ser utilizado com o bloco Exportar Dados para guardar o ficheiro no disco.

Parâmetro Descrição
Método GET · POST · PUT · PATCH · DELETE · HEAD
URL Endereço completo da API. Aceita variáveis {{var}}
Tempo limite Tempo em ms para abortar o pedido se demorar muito tempo (0 = desativar)
Cabeçalhos Um cabeçalho por linha no formato Chave: Valor
Tipo de conteúdo JSON · Form URL Encoded · Multipart · Texto · HTML
Body Corpo do pedido (para POST/PUT/PATCH). Aceita variáveis
Tipo de resposta JSON (objecto) · Texto (string) · Base64 (binário/ficheiro)
Caminho no JSON Extrai parte do JSON utilizando notação de ponto (ex: data.items.0.id)
Salvar resposta Nome da variável onde será armazenado o resultado
💡
Dica: Utilize o tipo Texto para resposta quando a API retorna HTML ou XML — assim pode processar o conteúdo com os blocos de extração do Dablio Robô.
Exemplo
Authorization: Bearer {{meuToken}}
Content-Type: application/json
X-Api-Key: minha-chave-secreta

Caminho nos dados (Data Path)

Utilize a notação de pontos para extrair um campo específico da resposta JSON. Por exemplo, para uma resposta como:

JSON — Resposta da API
{
  "status": 200,
  "data": {
    "nome": "Lista de preços",
    "valores": [
      { "id": 1, "preco": 4000 },
      { "id": 2, "preco": 24000 }
    ]
  }
}
  • Para obter o array valores: escreva data.valores
  • Para obter o primeiro elemento: escreva data.valores.0
  • Para obter o preço do segundo artigo: escreva data.valores.1.preco

Envio com Form Data (multipart/form-data)

Quando o tipo de conteúdo for multipart/form-data, o corpo deve seguir o formato array de pares:

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

Utilizando variáveis no corpo da requisição

Para valores do tipo corda, envolva a variável em aspas duplas:

JSON — Body com variáveis
{
  "nome": "{{nomeCliente}}",
  "email": "{{emailCliente}}",
  "total": {{valorTotal}}
}
💡
Use $response no campo Caminho nos dados para capturar a resposta HTTP completa, incluindo status, statusText e os dados brutos.
⚙️

Área de transferência

clipboard
copiarcolarclipboard
Saídas next

Lê ou escreve dados na área de transferência do sistema (Ctrl+C/Ctrl+V). Útil para transferir dados entre o fluxo e o sistema operativo.

Copia texto para a área de transferência do sistema ou lê o conteúdo atual copiado pelo utilizador.

⚙️ clipboard ✓ Guardar bloco

Copiar

Substitui o conteúdo atual da área de transferência pelo texto configurado. Aceita variáveis: {{nome}} - {{email}}.

Ler

Captura o conteúdo atual da área de transferência e guarda-o numa variável do fluxo para utilização nos próximos blocos.

Parâmetro Descrição
Ação Copiar · Ler
Texto Texto a copiar (para ação 'copiar'). Aceita variáveis
Salvar na variável Variável que vai receber o texto lido (para ação 'ler')
💡
Dica: Combine com o bloco Pressionar tecla (Ctrl+V) para colar automaticamente nos campos dos sistemas que não respondem ao bloco Formulário.

Casos de uso

Copiar (gravar na área de transferência)

Substitui o conteúdo atual pelo texto configurado. Aceita variáveis {{var}}. Útil para preparar texto antes de colar num sistema que não responde ao bloco Formulário.

Ler (capturar da área de transferência)

Captura o conteúdo atual da área de transferência e guarda-o em variável. Utilize para capturar dados que o utilizador copiou manualmente ou que outro programa colocou na área de transferência.

💡
Para colar em sistemas legados, combine Copiar + bloco Pressionar tecla com Ctrl+V.
⚙️

Esperar ligações

wait-connections
sincronizarparalelo
Saídas next

Espera que todos os blocos anteriores ligados terminem antes de continuar. Útil para sincronizar fluxos paralelos.

⚙️ wait-connect ✓ Guardar bloco

Quando usar

Quando múltiplos blocos paralelos convergem para um único ponto do escoamento, o bloco Esperar ligações aguarda que todos terminem antes de continuar. Sem ele, o fluxo pode avançar antes de todos os ramos estarem completos.

⚙️

Grupo de blocos

block-group
organizaragruparcontentor
Saídas next

Agrupa visualmente outros blocos dentro de um contentor para organizar e estruturar o fluxo. Não executa qualquer ação por si só.

⚙️ block-group ✓ Guardar bloco
⚙️

Comentário

comment
notaanotaçãolembrete
Saídas

Bloco de anotação visual. Não executa qualquer ação durante o fluxo. Serve exclusivamente para documentar e organizar o canvas.

⚙️ comment ✓ Guardar bloco
🔔

Notificação

notification
alertaavisopopup
Saídas next

Apresenta alertas visuais para o utilizador: como notificações nativas do Windows (canto do ecrã) ou como popups flutuantes dentro da página ativa no browser.

Apresenta uma notificação para o utilizador no sistema operativo Windows e/ou como popup HTML dentro da página ativa, com diferentes estilos visuais.

🔔 notificação ✓ Guardar bloco

Navegador

Apresenta um toast/popup estilizado dentro da página atual. Suporta 7 estilos visuais: padrão, sucesso, atenção, falha, informação e alertas coloridos.

Windows

Utiliza a API de notificações nativas do Chrome/Edge, apresentando um alerta no canto inferior direito do ecrã do Windows, independentemente da página aberta.

Duração

Configure 0ms para manter o popup até o utilizador fechar manualmente — ideal para mensagens importantes que não devem desaparecer automaticamente.

Parâmetro Descrição
Título Título da notificação
Mensagem Texto da notificação. Aceita variáveis {{var}}
Onde exibir Apenas navegador · Apenas Windows · Windows e navegador
Estilo Padrão · Sucesso (verde) · Atenção (laranja) · Falha (vermelho) · Informação (azul) · Alerta (roxo/castanho)
Duração no navegador (ms) Tempo até o popup desaparecer (0 = manter até fechar)
💡
Dica: Utilize notificações de estilo Sucesso para confirmar a conclusão das tarefas e Falha em combinação com blocos de tratamento de erros para alertar problemas.
🔔

Alarme sonoro

✦ EXCLUSIVO
alarm
sombarulhobip
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Reproduz um alerta sonoro para chamar a atenção do utilizador durante ou após a execução de tarefas. Útil quando o fluxo corre em segundo plano.

Toca um alerta sonoro durante um tempo determinado. Útil para sinalizar a conclusão de tarefas ou eventos importantes.

🔔 alarme ✓ Guardar bloco

Tipos de som

5 opções: Beep simples (notificação discreta), Alerta geral (atenção moderada), Sucesso/Conclusão (tarefa terminada), Sirene/Urgente (erros críticos) e Digital (estilo tech).

Volume

Escala de 0 (mudo) a 100 (volume máximo). O som é reproduzido no separador ativo do navegador.

Parâmetro Descrição
Escolha o som Bip simples · Alerta geral · Sucesso/Conclusão · Sirene/Urgente · Digital
Duração (segundos) Por quanto tempo o alarme ficará a tocar
Volume (0 a 100) Nível de volume do alarme
💡
Dica: Coloque o bloco Alarme imediatamente antes de um Diálogo para garantir que o utilizador vê a mensagem quando necessita de tomar uma decisão.
🔔

Processamento

✦ EXCLUSIVO
processing-screen
bloqueiocarregandoprocessando
Saídas default
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Exibe uma sobreposição semitransparente com indicador de carregamento sobre a página, impedindo o utilizador de clicar ou interagir enquanto o robô trabalha.

Apresenta um ecrã de bloqueio com indicador de carregamento para impedir a interação do utilizador enquanto o fluxo está em execução.

🔔 processing-s ✓ Guardar bloco

Abrir ecrã

Bloqueia a interface imediatamente. Configure a mensagem, as cores e a transparência para se integrar visualmente no site alvo.

Fechar ecrã

Remove a sobreposição, restaurando a interação normal. Utilize sempre que o fluxo terminar ou em caso de erro.

Manter aberto ao finalizar

Útil quando o fluxo termina mas pretende que o utilizador confirme os resultados antes de retomar o controlo da página.

Permitir HTML na mensagem

Activa a formatação avançada na mensagem: negrito, links, emojis e até barras de progresso personalizadas com HTML/CSS inline.

Parâmetro Descrição
Ação Abrir ecrã de processamento · Fechar processamento
Mensagem de status Texto apresentado ao utilizador. Aceita variáveis e HTML
Tamanho da fonte (px) Tamanho do texto da mensagem
Permitir HTML Renderiza o conteúdo como HTML em vez de texto puro
Cor do texto e spinner Cor da mensagem e do ícone de carregamento
Cor de fundo Cor da sobreposição
Transparência (%) 0 = invisível (apenas bloqueia), 100 = totalmente escuro
Manter aberto ao finalizar Não fecha sozinho no fim do fluxo — apresenta botão FECHAR
Exibir botão FECHAR Permite ao utilizador desbloquear o ecrã a qualquer momento
💡
Dica: Crie sempre um bloco Fechar processamento no caminho de erro do fluxo — caso contrário, o ecrã poderá ficar bloqueado se o fluxo falhar.
🌐

Ativar separador/janela

active-tab
focarselecionar separador
Saídas next

Define qual o separador do browser que será o alvo dos próximos blocos. Altera o contexto de execução para o separador encontrado pelo critério configurado.

Foca-se numa aba específica e define-a como alvo para todos os próximos blocos do fluxo.

🌐 active-tab ✓ Guardar bloco

Por URL

Procura o primeiro separador cujo URL contém, é igual ou corresponde à Regex informada.

Por título

Localiza o separador pelo título apresentado na guia do navegador.

Seguinte / Anterior

Navega para o separador à direita ou à esquerda do separador atual, por ordem circular.

Página guardada

Referencia um separador pelo nome guardado anteriormente com a opção Guardar identificação em blocos como Nova aba ou Nova janela.

Focar aba

Traz o separador visualmente para a frente no browser — útil quando o robô precisa que o separador esteja visível para capturar ecrã.

Parâmetro Descrição
Encontrar aba por Separador atual · Através do URL · Título · Próximo separador · Separador anterior · Índice · Separador aberto · Página guardada
Focar aba/janela Traz a aba visualmente para a frente no ecrã
💡
Dica: Após abrir uma nova janela ou separador num passo anterior, utilize Guardar identificação + Página guardada para voltar a ela de forma fiável em qualquer ponto do fluxo.

Por que razão este bloco é necessário

O Dablio Robô necessita de saber em que separador executar cada ação. Este bloco define o contexto de execução para todos os blocos seguintes. Utilize no início do fluxo ou sempre que necessitar de mudar o foco para outro separador.

💡
Ao abrir um novo separador com link externo ou popup, o Dablio Robô não altera automaticamente o contexto. Use Guardar identificação na nova aba e depois Ativar separador → Página guardada para retomar o controlo.
🌐

Nova aba

new-tab
abrirnova página
Saídas next

Abre um novo separador no browser com o URL configurado e oferece controlo total sobre a janela, identificação e comportamento de carregamento.

Abre um novo separador no browser com controlos avançados de janela, identificação de página e aguardo de carregamento completo.

🌐 new-tab ✓ Guardar bloco

Reutilizar separador

Em vez de abrir um novo separador, atualiza o separador atual com o novo URL. Poupa recursos e evita a acumulação de separadores desnecessários em fluxos repetitivos.

Aguardar carregamento

Faz uma pausa no fluxo até a página terminar de carregar completamente (evento load). Desmarque apenas se pretender continuar imediatamente sem esperar.

Manter aba atrás

Abre o separador em segundo plano sem roubar o foco visual. Ideal para pré-carregar páginas enquanto o utilizador continua a navegar.

Silenciar aba

Muda o separador para silenciar automaticamente — útil para abrir vídeos ou páginas com autoplay de áudio.

Guardar identificação

Guarda um nome para este separador (ex: 'separadorPortal') que pode ser utilizado como referência noutros blocos do fluxo.

Parâmetro Descrição
URL Endereço da página a abrir. Aceita variáveis
Criar na janela Janela atual · Janela ativa · Janela específica · Por título/URL/página guardada
Reutilizar aba Atualiza o separador existente em vez de abrir uma nova
Aguardar carregamento Aguarda que a página carregue completamente antes de continuar
Manter aba atrás Abre sem roubar o foco visual do ecrã
Silenciar aba Silencia os sons do novo separador (vídeos, notificações)
Salvar identificação Guarda um nome para referenciar esse separador em outros blocos
💡
Dica: Para automatizações multi-tab complexas, utilize Guardar identificação em cada separador aberto e navegue entre eles com o bloco Ativar separador/janela usando Página guardada.

Opção Reutilizar separador

Poupar recursos em loops

Quando ativo, o bloco navega no separador atual em vez de abrir um novo. Ideal para fluxos que visitam muitos URLs em sequência — evita acumular dezenas de separadores abertos.

💡
Use Guardar identificação para nomear a aba e depois navegar de volta para ela com precisão usando o bloco Ativar separador com a opção Página guardada.
🌐

Alternar separador/janela

switch-tab
trocar abanavegar
Saídas defaultfallback (não encontrado)

Alterna o foco de execução para outro separador já aberto no browser, identificado por URL, título, índice ou posição relativa.

Alterna o foco para outro separador com base no URL, título, índice, posição relativa ou página guardada.

🌐 switch-tab ✓ Guardar bloco

Por URL

Pesquisa entre todas as abas abertas e ativa a primeira que corresponde ao padrão. Suporta texto simples, exato ou Regex.

Seguinte / Anterior

Útil em loops onde precisa de processar os separadores em sequência. Navega por ordem circular (depois da última, vai para a primeira).

Saída fallback

Se a patilha não for encontrada, o fluxo segue pela saída fallback em vez de gerar erro — permite tratar o caso de ‘separador não encontrado’ graciosamente.

Parâmetro Descrição
Encontrar aba por URL · Título · Seguinte · Anterior · Índice · Separador aberto · Página guardada
Definir como aba ativa Esta aba torna-se o alvo das próximas ações
💡
Dica: Utilize juntamente com o bloco Repetir tarefas e Próxima aba para processar N separadores abertos em sequência.
🌐

Nova janela

new-window
popupjanela separada
Saídas next

Abre uma nova janela do browser, separada dos separadores atuais. Suporta o modo privado/anónimo, popups sem barra de endereço e dimensões personalizadas.

Abre uma nova janela do browser com opções avançadas: modo privado/anónimo, tipo, estado inicial e dimensões personalizadas.

🌐 nova-janela ✓ Guardar bloco

Modo anônimo

Abre numa janela privada, sem histórico ou cookies da sessão principal. Requer permissão nas definições da extensão.

Tipo popup

Janela compacta sem barra de separadores, endereço ou ferramentas — ideal para exibir conteúdo específico ou simular a abertura de sistemas web legados.

Estado personalizado

Posicione a janela com precisão no ecrã: topo, esquerda, largura e altura em pixéis — útil para monitorização ou visualização em múltiplos monitores.

Parâmetro Descrição
URL Endereço a carregar na nova janela
Janela anônima Abre em modo privado (requer permissão nas extensões)
Tipo Normal · Popup (sem separadores) · Painel
Estado inicial Normal · Maximizado · Minimizado · Ecrã completo · Personalizado (posição/tamanho)
Salvar identificação Guarda um nome para referenciar a janela noutros blocos
💡
Dica: As janelas popup são perfeitas para abrir formulários ou painéis auxiliares sem afetar a janela principal do fluxo.
🌐

Voltar

go-back
históricoanterior
Saídas next

Navega para a página anterior no histórico do separador ativo, equivalente ao botão Voltar do browser.

Volta à página anterior no separador ativo, equivalente ao botão Voltar do browser.

🌐 go-back ✓ Guardar bloco

Uso típico

Regressar à listagem após o processamento de um item de detalhe em loops de scraping ou formulários.

💡
Dica: Combine com um bloco Aguardar seletor após o Voltar para garantir que a página anterior foi carregada antes de continuar.
🌐

Avançar

go-forward
históricopróxima
Saídas next

Navega para a página seguinte no histórico do separador ativo (apenas se existir), equivalente ao botão Seguinte do browser.

Avança para a página seguinte no separador ativo, equivalente ao botão Seguinte do navegador.

🌐 go-forward ✓ Guardar bloco

Uso típico

Útil em fluxos de revisão em que o utilizador navegou para trás e o robô precisa de retomar.

🌐

Fechar separador/página

close-tab-window
fecharencerrar
Saídas next

Fecha separadores ou janelas específicas durante o fluxo. Suporta múltiplos critérios de seleção e pode fechar mais do que um separador de uma só vez.

Fecha separadores ou janelas por critério: separador ativo, separador visível, janela, por URL, título, índice ou página guardada. Suporta fechar múltiplos.

🌐 close-tab-wi ✓ Guardar bloco

Por URL

Fecha todos os separadores cujos URLs correspondam ao padrão. Ative Fechar múltiplos para fechar todas de uma vez; caso contrário, fecha apenas a primeira encontrada.

Aba ativa vs. aba atual

Separador ativo (Trabalho) fecha o separador que o fluxo está a usar como alvo; Separador atual (Visível) fecha o separador que o utilizador está a ver no momento.

Parâmetro Descrição
O que fechar Separador ativo · Separador atual · Janela ativa/atual · Separador específico · Por título/índice/URL/página guardada
Fechar múltiplos Fecha TODAS as abas encontradas com o critério
💡
Dica: Fechar separadores desnecessários ao longo do fluxo mantém o browser organizado e evita problemas de desempenho em fluxos longos.

Modos de fecho

Separador ativo (Trabalho) vs. Separador atual (Visível)

Separador ativo (Trabalho) fecha o separador que o fluxo está a usar como contexto de execução. Separador atual (Visível) fecha o separador que o utilizador está a ver no navegador no momento. Podem ser separadores diferentes quando o robô trabalha em segundo plano.

💡
Fechar separadores desnecessários durante o fluxo poupa memória e mantém o browser organizado, especialmente em automatizações que processam centenas de páginas.
🌐

Captura de ecrã

take-screenshot
imprimirfotoscreenshot
Saídas next

Capta imagens do ecrã em 4 modos: área visível da página, página completa com scroll, elemento específico ou elemento completo com altura superior ao ecrã.

Tira uma captura de ecrã da área visível, página completa, elemento específico ou elemento completo com scroll.

🌐 take-screens ✓ Guardar bloco

Página completa

O Dablio Robô percorre automaticamente a página do topo para o fim, recolhendo fragmentos e montando a imagem completa através de canvas. Aguarde o carregamento de imagens lazy com o campo Aguardar (ms).

Elemento específico

Percorre e centra o elemento no ecrã antes de capturar. Utilize o seletor CSS ou XPath para identificar o elemento exato.

Elemento completo (com scroll)

Para elementos com overflow: scroll — o Dablio Robô faz scroll dentro do elemento para capturar todo o conteúdo, mesmo que seja maior que a viewport.

Guardar em variável

O resultado é uma string Base64 (data:image/png;base64,...) que pode ser utilizada com OCR, exportada como ficheiro ou enviada para APIs de IA.

Parâmetro Descrição
Alvo Página visível · Página completa · Um elemento · Um elemento completo (com scroll)
Em qual aba Separador atual ou pesquisa por URL/título/índice/página guardada
Seletor do elemento Seletor CSS ou XPath do elemento a capturar
Aguardar (ms) Pausa após scroll para carregar conteúdo dinâmico
Salvar no computador Faz download do ficheiro PNG/JPG
Salvar em variável Guarda a imagem como Base64 numa variável
💡
Dica: Use Aguardar (ms) entre 1000–2000ms para páginas com imagens lazy-load ou animações — garante que o conteúdo está visível antes da captura.

Modos de captura

Página visível (viewport)

Captura apenas a área visível da janela do browser. Rápido e não requer scroll.

Página completa (full page)

O Dablio Robô percorre automaticamente a página do topo para o fim, captura fragmentos e monta uma imagem completa utilizando canvas. Configure o campo Aguardar (ms) entre 1000–2000ms para garantir o carregamento de imagens lazy.

Elemento específico

Percorre a página até o elemento ficar visível e captura apenas essa região. Utilize o seletor CSS ou XPath para identificar o elemento exato.

Elemento completo (com scroll interno)

Para elementos com overflow: scroll, o robô rola dentro do elemento e cose os fragmentos, capturando todo o conteúdo mesmo que seja maior que o ecrã.

🌐

Escutar navegador

wait-browser-event
eventosesperarescutar
Saídas defaultfallback (timeout)

Faz uma pausa no fluxo aguardando um evento específico do browser ou da página: separador aberto/fechado, clique, digitação, envio de formulários, scroll e muito mais.

Faz uma pausa no fluxo até que um evento específico ocorra no browser ou num elemento da página.

🌐 wait-browser ✓ Guardar bloco

Eventos de aba

Aguarda que uma aba carregue, seja criada ou fechada. Indispensável em fluxos que abrem popups ou novos separadores de forma assíncrona.

Eventos de rato e teclado

Aguarda interação do utilizador: clique em qualquer lugar, num elemento específico, digitação em campo, etc. Transforma o robô num gatilho reativo.

Elemento monitor

Quando ativo, o evento só é aceite se ocorrer dentro do seletor configurado — ignora o mesmo evento noutras partes da página.

Saída fallback

Se o evento não ocorrer dentro do tempo limite, o fluxo segue pela saída fallback, permitindo tratar timeouts sem falha.

Parâmetro Descrição
Tempo limite (ms) Se o evento não ocorrer, segue pela saída fallback
Evento a escutar Separador: carregar/fechar/criar · Janela: criar/fechar · Rato: click/dblclick/mouseover · Teclado: keydown/keyup · Formulário: input/change/focus/blur/submit · Clipboard: copy/cut/paste · Touch · Scroll · Resize · Load
Monitorar em Separador ativo · Através do URL · Título · Índice · Página guardada
Monitor elemento O evento deve ocorrer dentro do seletor informado
💡
Dica: Use Aguardar separador carregar após abrir links que podem demorar a carregar. É mais robusto que um Delay fixo e não desperdiça tempo de espera.
🌐

Proxy

proxy
vpnanonimatorede
Saídas next

Configura um servidor proxy para toda a navegação do browser, útil para contornar restrições geográficas ou rotacionar IPs em automatizações de scraping.

Configura um servidor Proxy (HTTP/HTTPS/SOCKS4/SOCKS5) para toda a ligação do browser ou remove a configuração atual.

🌐 proxy ✓ Guardar bloco

Definir proxy

Configura o host, a porta, o protocolo e as credenciais. Afeta todas as ligações do browser enquanto o proxy estiver ativo.

Limpar proxy

Remove a configuração de proxy e volta às definições de rede padrão do sistema operativo.

Exceções

Os domínios listados em Lista de exceções (separados por vírgula) não passam pelo proxy: localhost, 127.0.0.1, intranets empresariais.

Parâmetro Descrição
Ação Definir Proxy · Limpar/Desativar
Protocolo HTTP · HTTPS · SOCKS4 · SOCKS5
Host/IP Endereço do servidor proxy
Porta Porta do servidor proxy
Usuário/Senha Credenciais opcionais de autenticação
Lista de exceções Domínios que não utilizam proxy (separados por vírgula)
💡
Dica: Adicione sempre um bloco Limpar proxy no final do fluxo para não deixar o proxy ativo após o término da automatização.

Configuração

Protocolos suportados

HTTP, HTTPS, SOCKS4 e SOCKS5. Para proxies que exijam autenticação, preencha os campos Usuário e Senha. As credenciais são enviadas automaticamente pelo browser.

Lista de exceções

Domínios separados por vírgula que não passarão pelo proxy. Inclua sempre localhost e 127.0.0.1 não encaminhar tráfego local pelo proxy.

📝
Adicione sempre um bloco Limpar proxy no final do fluxo. Sem ele, o proxy permanece ativo após o encerramento da automatização, afetando toda a navegação do utilizador.
🌐

Alternar Frame

switch-frame
iframeframecontexto
Saídas default

Muda o contexto de execução para dentro de um <iframe> na página. Necessário quando o elemento com o qual se pretende interagir está dentro de um frame embebido.

Muda o foco de execução para um iFrame específico da página ou volta para a página principal.

🌐 switch-frame ✓ Guardar bloco

Selecionar frame

Após focar um frame, todos os seletores dos blocos seguintes procuram elementos dentro desse frame — e não na página principal.

Voltar à página principal

Utilize a opção Voltar à página principal para sair do frame e voltar ao contexto global da página.

Por seletor

O Dablio Robô encontra o elemento <iframe> no DOM pelo selector informado e mapeia o frameId automaticamente.

Parâmetro Descrição
Modo Voltar à página principal · Por selector CSS/XPath · Por URL do frame · Por índice
Seletor Seletor CSS ou XPath do elemento <iframe>
URL do frame Padrão URL para localizar o frame
Índice Posição do frame na lista (0 = principal)
💡
Dica: Muitos sistemas bancários, portais governamentais e sistemas de pagamento incorporam formulários em iframes por segurança. Este bloco é essencial para a automatização nestes casos.
ℹ️
Após a mudança para um frame, todos os seletores dos blocos seguintes procuram elementos dentro desse frame.

Como funciona

Após focar um frame, todos os seletores dos blocos seguintes passam a procurar elementos dentro desse frame, não na página principal. Use Voltar à página principal para sair do frame e voltar ao contexto global.

💡
Os portais governamentais, os sistemas bancários e os formulários de pagamento utilizam frequentemente iframes por razões de segurança. Este bloco é indispensável para automatizar estes cenários.
📝
Para saber se um elemento está dentro de um iframe, abra as ferramentas de programador (F12) e procure por tags <iframe> ou <frame> na estrutura da página.
🌐

Exibição da tela

fullscreen
maximizartela cheia
Saídas default

Controla o modo de visualização da janela do browser ou de elementos específicos da página, útil para capturas de ecrã e sistemas que exijam ecrã completo.

Altera o modo de visualização: janela (normal/maximizado/minimizado/ecrã inteiro), página inteira ou expande um elemento específico.

🌐 fullscreen ✓ Guardar bloco

Janela

Altera o estado da janela: normal, maximizado, minimizado ou ecrã completo. Útil antes de uma captura de ecrã para garantir a visibilidade total.

Elemento

Chama a API Fullscreen do browser num elemento específico — como um leitor de vídeo ou de mapas — sem afetar o resto da janela.

Parâmetro Descrição
Alterar Janela atual · Página atual · Parte específica (elemento)
Modo de exibição Normal · Maximizado · Minimizado · Ecrã completo
Seletor do elemento Para expandir um elemento específico em ecrã inteiro
🌐

Recarregar

reload-tab
atualizarF5refresh
Saídas next

Recarrega um ou mais separadores do browser, equivalente ao F5. Útil para atualizar dados em dashboards ou após modificações que exijam recarga.

Recarrega um ou mais separadores por critério: separador ativo, visível, por título, índice ou URL.

🌐 reload-tab ✓ Guardar bloco

Recarregar múltiplos

Quando pesquisar por URL, marque Recarregar múltiplos para atualizar todas as abas que correspondam ao padrão de uma só vez.

Parâmetro Descrição
Qual aba recarregar Separador ativo · Separador atual · Específico · Por título/índice/URL/página guardada
Recarregar múltiplos Recarrega TODAS as abas encontradas com o critério
💡
Dica: Após recarregar, utilize um bloco Aguardar seletor para aguardar que um elemento apareça antes de continuar.

Usos comuns

  • Atualizar dashboards ou relatórios após modificações
  • Forçar o recarregamento de dados em sistemas com cache agressivo
  • Reiniciar uma página que ficou bloqueada durante a automatização
  • Recarregar múltiplas abas de monitorização de uma só vez
💡
Após recarregar, utilize o bloco Elemento existe ou Aguardar seletor para garantir que a página carregou completamente antes de continuar.
🌐

Obter URL

get-tab-url
pegar urlendereço
Saídas next

Captura o URL e/ou o título de separadores abertos e guarda-os em variáveis do fluxo para utilização posterior.

Obtém o URL e/ou o título de um ou mais separadores abertos e guarda-os em variáveis.

🌐 obter-tab-url ✓ Guardar bloco

Aba ativa

Retorna o URL e o título do separador que o fluxo está a utilizar como alvo no momento.

Todas as abas

Retorna arrays com os URLs e títulos de todos os separadores da janela atual. Os filtros opcionais permitem selecionar apenas os separadores relevantes.

Parâmetro Descrição
Modo Separador ativo · Todos os separadores
Filtros URL e título para filtrar quando estiver selecionado 'Todos os separadores'
Variável para URL Nome da variável que vai receber o URL (ou lista de URLs)
Variável para título Nome da variável que vai receber o título (ou lista)
💡
Dica: Utilize para verificar dinamicamente em que URL se encontra o fluxo antes de executar ações que dependem da página.

Usos comuns

  • Verificar em que URL está o fluxo antes de executar ações condicionais
  • Capturar o URL após um redireccionamento para extrair parâmetros
  • Guardar o histórico de URLs visitados durante a automatização
  • Validar se o fluxo chegou à página esperada antes de continuar
🌐

Baixar ficheiros

handle-download
downloadimagensáudiovídeomedia
Saídas next

Interceta e gere downloads de ficheiros: pode aguardar que um download inicie, descarregar diretamente por URL ou extrair media (imagens, vídeos, áudios) de elementos da página.

Aguarda um download iniciar, descarrega ficheiro por URL direto ou extrai media (img, audio, video) de elementos da página.

🌐 handle-downl ✓ Guardar bloco

Aguardar download

Fica em espera até que o browser inicie um download (clique de utilizador ou redirect de página). Útil para capturar ficheiros que o site gera dinamicamente.

URL direta

Descarrega imediatamente o ficheiro do URL informado. Aceita múltiplos links separados por linha.

Elemento de media

Extrai os URLs de src dos elementos img, video, audio dentro de um selector e descarrega-os. Ative Múltiplos para descarregar todas as mídias encontradas.

Renomear com wildcard

Use * para preservar o nome original: fotos/*.jpg guarda cada imagem com o seu nome original na pasta 'fotos'; relatorio_* mantém o nome e troca a extensão.

Parâmetro Descrição
Modo Aguardar um download · URL direto · Elemento de media
Seletor do elemento Contentor onde pesquisar os media (modo elemento)
Múltiplos Descarrega todas as mídias encontradas
Aguardar conclusão Faz uma pausa no fluxo até o download terminar
Renomear arquivo Utilize * para manter o nome original (ex: pasta/*. jpg)
Salvar em local específico Define uma pasta de destino personalizada
Salvar caminho em variável Guarda o caminho do ficheiro baixado
💡
Dica: Combine com o bloco Loop para descarregar ficheiros de múltiplas páginas em sequência, guardando cada um com um nome dinâmico através de uma variável.

Padrão de renomeação com wildcard (*)

O caractere * preserva o nome original do ficheiro e apenas permite alterar prefixo, sufixo ou extensão:

  • fotos/* — guarda na pasta fotos mantendo o nome original
  • *.jpg — mantém o nome, força extensão JPG
  • relatorio_* — acrescenta prefixo ao nome original
  • backup/*.pdf — guarda na pasta backup com extensão PDF
💡
Para descarregar ficheiros de várias páginas em sequência, combine com o bloco Percorrer dados iterando sobre a lista de URLs, utilizando variáveis no nome do ficheiro para cada item ser guardado com identificação única.
🖱️

Clique no elemento

click-element
clicarbotãolink
Saídas next

Realiza cliques em elementos da página utilizando seletores CSS ou XPath. O bloco mais utilizado nas automatizações web.

Clica num ou mais elementos da página utilizando o seletor CSS ou XPath, com suporte para aguardar que o elemento apareça.

🖱️ click-elemen ✓ Guardar bloco

Seletor CSS

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

Seletor XPath

Ex: //button[text()='Salvar'], //input[@placeholder='Buscar']. Utilize quando o CSS não é suficiente para identificar o elemento.

Múltiplos

Clica em todos os elementos encontrados pelo seletor em sequência. Útil para fechar múltiplos popups, selecionar checkboxes em lista, etc.

Aguardar seletor

O bloco aguarda que o elemento apareça antes de clicar. Elimina a necessidade de um bloco Delay antes do clique.

Parâmetro Descrição
Seletor CSS ou XPath do elemento (ex: #btn-salvar, //button[@type='submit'])
Múltiplos Clica em TODOS os elementos encontrados pelo seletor
Aguardar seletor Aguarda que o elemento apareça antes de clicar
Tempo máximo (ms) Tempo limite para aguardar que o elemento
💡
Dica: Se o clique não funcionar em elementos dentro de iframes, utilize o bloco Alternar Frame primeiro para focar o frame correto.

Seletores suportados

Seletor CSS

Qualquer seletor CSS válido funciona: #id, .classe, button[type="submit"], ul.menu > li:nth-child(2) > a. Utilize a ferramenta seletor do Dablio Robô para capturar o seletor diretamente da página.

Seletor XPath

Útil quando o CSS não é suficiente. Exemplos: //button[text()='Confirmar'], //input[@placeholder='Buscar']. O XPath começa com // ou (//.

📝
Este bloco requer um separador ativo. Utilize o bloco Nova aba ou Ativar separador antes de executar cliques.
🖱️

Obter conteúdo

get-text
capturar textovalorhtmlextrair
Saídas default

Extrai conteúdo de elementos da página: texto puro, HTML interno ou valores de campos de formulário. Guarda em variável para utilização nos blocos seguintes.

Extrai texto, HTML interno ou valores de elementos da página. Suporta múltiplos elementos (retorna array).

🖱️ obter-texto ✓ Guardar bloco

innerText vs textContent

innerText devolve o texto visível (respeita display:none e formatação). textContent devolve todo o texto do nó, incluindo o conteúdo escondido por CSS.

Múltiplos elementos

Retorna um array (lista) com o conteúdo de todos os elementos encontrados. Utilize com o bloco Percorrer dados para processar cada item.

Incluir HTML

Captura o innerHTML em vez do texto puro — útil para extrair estruturas HTML para processamento posterior.

Parâmetro Descrição
Seletor CSS ou XPath do elemento alvo
Salvar em variável Nome da variável que vai receber o valor
Múltiplos elementos Captura todos os elementos encontrados como lista
Incluir tags HTML Captura innerHTML em vez do texto puro
Usar textContent Utiliza . textContent (texto em bruto) em vez de . innerText (visível)
Aguardar elemento Aguarda que o elemento apareça antes de capturar
💡
Dica: Para extrair textos de tabelas HTML inteiras, seleccione o elemento table com Incluir HTML ativo — terá o HTML completo da tabela para processar.

Modos de captura

innerText (padrão)

Retorna apenas o texto visível, respeitando o CSS como display:none. É o comportamento mais próximo do que o utilizador vê no ecrã.

textContent

Retorna todo o texto do nó, incluindo conteúdo oculto por CSS e espaços em branco. Útil quando o elemento tem texto escondido que precisa de capturar.

innerHTML

Captura o código HTML interno do elemento. Ative Incluir tags HTML quando necessita de processar a estrutura do elemento, e não apenas o texto.

Múltiplos elementos

Quando ativo, devolve um array com o conteúdo de todos os elementos encontrados pelo selector. Combine com o bloco Percorrer dados para processar cada item individualmente.

🖱️

Formulário

forms
preencherinputdigitarcamposelect
Saídas next

O bloco mais versátil para a interação com formulários: preenche campos de texto, seleciona opções, marca checkboxes, clica em radio buttons e pode extrair todos os dados de um formulário de uma só vez.

Interage com formulários: preenche campos de texto, seleciona opções em listas, marca checkboxes e radio buttons, ou extrai dados do formulário.

🖱️ formulários ✓ Guardar bloco

Campo de texto

Introduza o valor no campo. Use Limpar campo para apagar o conteúdo anterior. Atraso de digitação simula a digitação humana caractere a caractere.

Lista de seleção (select)

Seleciona por valor interno, pelo texto da opção, posição (índice) ou primeira/última opção. Aceita variáveis ​​para seleção dinâmica.

Obter valores

Extrai todos os campos do formulário de uma só vez, retornando em formato JSON, URL Encoded ou texto. Ideal para auditar formulários preenchidos.

Submit

Clica no botão de envio ou chama submit() no formulário diretamente.

Parâmetro Descrição
Seletor CSS do campo ou contentor do formulário
Aguardar elemento Aguarda que o campo esteja disponível
Múltiplos Aplica a ação em todos os campos encontrados
Obter valores Extrai dados do formulário em vez de preencher
Tipo de ação Campo de texto · Lista de seleção · Checkbox · Radio · Submit
Valor Texto a digitar ou valor a selecionar
Limpar campo Limpa o conteúdo antes de escrever
Atraso de digitação (ms) Tempo entre cada caractere introduzido
Modo de seleção Por valor · Primeira opção · Última opção · Por posição
Formato de extração JSON · URL Encoded · Texto (ao obter valores)
💡
Dica: Para campos que exijam digitação lenta (evitar deteção de bot), configure Atraso de digitação entre 50–150ms por caractere.

Tipos de campo suportados

Campo de texto (input / textarea)

Preenche o valor do campo. Use Limpar conteúdo para apagar o valor anterior antes de digitar. O campo Atraso de digitação simula a digitação humana caractere a caractere — configure entre 50–150ms para sistemas que detetam o preenchimento automático.

Lista de seleção (select)

Seleciona uma opção pelo seu valor interno (atributo value do HTML), e não pelo texto apresentado. Para descobrir o valor correto, inspecione o elemento com as ferramentas de programador do browser (F12 → selecione o <option> desejado).

Checkbox e Rádio

O campo Marcar opção define se o elemento deve ficar marcado (true) ou desmarcado (false). Para os botões de rádio, a seleção de um desmarca automaticamente os outros do mesmo grupo.

📝
Este bloco requer um separador ativo. Certifique-se de que utiliza o bloco Nova aba ou Ativar separador antes de interagir com formulários.
🖱️

Rolagem

scroll
rolarscrolloverflow
Saídas next

Desloca a página ou um elemento com scrollbar para uma posição específica ou para apresentar um elemento no ecrã.

Faz scroll na página ou num elemento específico na horizontal e/ou vertical, com suporte de scroll para visualização e animação suave.

🖱️ scroll ✓ Guardar bloco

Posição absoluta vs. incremental

Sem incrementar: vai para a posição X/Y exata a partir do topo/esquerda. Com incrementar: adiciona o valor à posição atual de scroll.

Percorrer para visualização

Percorre automaticamente até o elemento alvo ficar visível na janela de visualização, seja para cima ou para baixo — sem ter de calcular posições.

Elemento com overflow

Para rolar dentro de elementos com overflow: scroll (listas, tabelas, painéis), informe o seletor no campo Elemento alvo.

Parâmetro Descrição
Elemento alvo Seletor CSS/XPath do elemento a percorrer (vazio = página inteira)
Rolagem horizontal (px) Positivo = direita, negativo = esquerda
Rolagem vertical (px) Positivo = baixo, negativo = cima
Rolar para visualização Rola até o elemento alvo ficar visível no ecrã
Rolagem suave Utiliza animação de rolagem em vez de instantânea
Incrementar Soma à posição atual em vez de ir para a posição absoluta
💡
Dica: Use Percorrer para visualização antes de clicar em elementos que possam estar fora da área visível — alguns sistemas apenas respondem a cliques em elementos visíveis.

Modos de rolagem

Posição absoluta vs. incremental

Sem incrementar: rola para a coordenada exata informada (X/Y a partir do canto superior esquerdo). Com incrementar: soma o valor à posição atual. Por exemplo, +300px desce 300 pixéis a partir de onde está.

Percorrer para visualização (Scroll Into View)

Percorre a página automaticamente até o elemento alvo ficar visível na área visível do ecrã, sem ter de calcular coordenadas. O Dablio Robô descobre sozinho a posição do elemento.

Elementos com overflow

Para fazer scroll dentro de um contentor com scroll próprio (listas, tabelas, painéis), informe o seletor CSS/XPath do contentor no campo Elemento alvo em vez de deixar em branco.

🖱️

Atributos

attribute-value
hrefsrcclassdata
Saídas next

Lê, define ou remove atributos HTML de qualquer elemento. Abrange desde os atributos standard (href, src, class) até aos atributos de dados personalizados (data-id, data-value).

Lê, define ou remove atributos HTML de elementos como href, src, class, style, data-id e qualquer outro atributo personalizado.

🖱️ atributo-va ✓ Guardar bloco

Obter

Lê o valor do atributo e guarda-o na variável configurada. Ex: ler o href de um link antes de clicar, ou o data-id de um item de lista.

Definir

Modifica o atributo no DOM em tempo real. Ex: alterar o src de uma imagem, desativar/ativar um botão através disabled.

Remover

Exclui o atributo completamente do elemento — útil para remover readonly ou disabled de campos bloqueados.

Parâmetro Descrição
Seletor CSS ou XPath do elemento alvo
Ação Obter valor · Definir valor · Apagar atributo
Nome do atributo Ex: href, src, class, data-id, placeholder
Salvar em variável Variável que receberá o valor lido (ação 'obter')
Valor a atribuir Novo valor do atributo. Aceita variáveis
Múltiplos Aplica a ação em todos os elementos encontrados
💡
Dica: Para habilitar os campos bloqueados por disabled ou readonly, utilize este bloco com a ação Remover antes de tentar preencher com o bloco Formulário.

Atributos mais utilizados

  • href — URL de links, útil para capturar destinos antes de navegar
  • src — percurso de imagens, vídeos e scripts
  • value — valor atual de campos hidden ou inputs não modificáveis pelo bloco Formulário
  • data-id, data-* — identificadores e metadados incorporados pelo site
  • disabled, readonly — restrições de campo; use Remover para desbloqueá-los
  • class, style — controlo visual de elementos
🖱️

Executar JS

javascript-code
scriptcódigoinjetarJSprogramar
Saídas default

Injeta e executa JavaScript diretamente na página (contexto MAIN world) ou no service worker. Tem acesso completo ao DOM, às variáveis ​​do fluxo e às APIs da extensão.

Executa JavaScript na página (contexto da página) ou em background (service worker). Utilize 'return' para guardar o resultado numa variável do fluxo.

🖱️ javascript-c ✓ Guardar bloco

Contexto da página

O código executa como se fizesse parte do JavaScript da própria página. Tem acesso a window, document, variáveis ​​globais da página e frameworks (React, Vue, etc.).

Contexto background

Executa no service worker com acesso a APIs do Chrome como chrome.tabs, chrome.storage, chrome.downloads. Não tem acesso ao DOM.

Variáveis do fluxo

Use vars.minhaVariavel para ler e vars.minhaVariavel = 'valor' para escrever. Use globals.varGlobal para variáveis globais entre fluxos.

Retorno

O valor do return é guardado na variável configurada em Variável de retorno. Suporta objetos, arrays, números e strings.

Parâmetro Descrição
Contexto No separador ativo (página) · Background (service worker)
Tempo antes de executar (ms) Aguarda antes de injetar o código
Código JS JavaScript a executar. Tem acesso a vars (variáveis do fluxo) e globals
Variável de retorno Variável que receberá o valor do 'return'
Executar em cada nova aba Reexecuta automaticamente em novos separadores abertos
Executar antes da página Injeta assim que a patilha começa a carregar
💡
Dica: Para código assíncrono (fetch, setTimeout), utilize async/await — o Dablio Robô aguarda que a Promise resolva antes de continuar o fluxo.
Exemplo
// 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;
ℹ️
O código tem acesso a `vars` (variáveis locais do fluxo) e `globals` (variáveis globais). As alterações em `vars` dentro do código são propagadas de volta para o fluxo.

Funções utilitárias disponíveis no código

vars — Ler e escrever variáveis do fluxo

Use vars.nomeVar para ler e vars.nomeVar = valor para gravar. As variáveis ​​alteradas ficam disponíveis em todos os blocos seguintes do fluxo.

globals — Variáveis globais entre fluxos

Use globals.nomeVar aceder a variáveis partilhadas entre múltiplos fluxos. Útil para configurações, tokens ou estado global da automação.

return — Devolver valor para uma variável

O valor devolvido pelo return é guardado na variável configurada no campo Variável de retorno. Suporta qualquer tipo: string, número, objeto ou array.

JavaScript — Exemplos de utilização
// 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;
📝
O Dablio Robô suporta async/await diretamente no código do bloco. O fluxo aguarda automaticamente que a Promise seja resolvida antes de continuar.
🖱️

Disparar evento

trigger-event
clickchangeinputevento DOM
Saídas next

Dispara eventos DOM nos elementos da página, simulando interações que outros blocos não cobrem. Essencial para sistemas que apenas respondem a eventos nativos de JavaScript.

Dispara eventos DOM em elementos da página: rato, teclado, formulário, clipboard, touch e outros, com opções avançadas de modificadores e coordenadas.

🖱️ trigger-even ✓ Guardar bloco

Eventos de rato

click, dblclick, mousedown, mouseup, mouseover, contextmenu. Configure o botão (esquerdo/direito/centro) e teclas modificadoras (Ctrl, Shift, Alt).

Eventos de teclado

keydown, keyup, keypress. Configure key, code e keyCode para simular teclas específicas com precisão.

Eventos de formulário

input, change, focus, blur, submit. Útil para forçar a re-validação de campos ou acionar lógicas JavaScript ligadas a alterações de valor.

Múltiplos

Dispara o evento em todos os elementos encontrados pelo selector sequencialmente.

Parâmetro Descrição
Seletor CSS ou XPath do elemento que vai receber o evento
Evento Mouse: click/dblclick/mousedown/mouseover · Teclado: keydown/keyup/keypress · Formulário: input/change/focus/blur/submit · Clipboard: copy/cut/paste · Touch · Scroll · Resize
Botão do mouse Esquerdo · Centro · Direito
Modificadores CTRL · SHIFT · ALT · META
Múltiplos Dispara sobre TODOS os elementos encontrados
Opções avançadas bubbles, cancelable, coordenadas, key, keyCode, deltaX/Y
💡
Dica: Quando o bloco Formulário não funcionar para preencher campos (frameworks como React/Vue controlam o input através do estado interno), utilize Disparar evento do tipo input após preencher o valor via JavaScript.

Quando utilizar este bloco

Frameworks modernos (React, Vue, Angular)

Estas frameworks controlam os inputs via estado interno — preencher o campo diretamente não dispara a atualização. Após preencher o valor através do bloco Formulário ou JavaScript, dispare o evento input ou change para obrigar o framework a reconhecer a alteração.

Validações e listeners ocultos

Alguns sites executam validações ou carregam novos campos apenas quando ocorre um evento específico. Utilize este bloco para acionar este comportamento programaticamente.

🖱️

Passar rato

hover-element
hovermouseover
Saídas next

Simula a passagem do rato sobre um elemento da página (mouseover/hover), revelando menus dropdown, tooltips e conteúdos que apenas aparecem com o cursor sobre o elemento.

Simula a passagem do rato sobre um elemento da página (evento mouseover/hover), útil para exibir menus, tooltips e conteúdos dinâmicos.

🖱️ hover-elemen ✓ Guardar bloco

Uso típico

Menus de navegação que expandem para o hover; submenus aninhados; tooltips com informação extra; botões de ação que aparecem ao passar o rato sobre uma linha de tabela.

Parâmetro Descrição
Seletor CSS ou XPath do elemento alvo
Aguardar seletor Aguarda que o elemento apareça antes de simular o hover
💡
Dica: Combine com um Delay de 300–500ms após o hover para aguardar a animação CSS de exibição do conteúdo antes de clicar.

Casos de uso

  • Revelar menus dropdown que só aparecem ao passar o rato
  • Exibir tooltips com informação extra
  • Mostrar botões de ação nas linhas de tabela (editar, eliminar)
  • Ativar animações CSS que revelem conteúdo
💡
Combine com um Aguardar de 300–500ms após o hover para esperar que a animação CSS de exibição termine antes de clicar.
🖱️

Arrastar elemento

drag-element
arrastar e soltararrastar
Saídas next

Simula a ação de arrastar e largar (drag and drop) elementos da página. Útil para interfaces com frames Kanban, ordenação de listas, sliders e ferramentas de edição.

Simula o arrastar de um elemento de um ponto A para um ponto B com as definições de posição, velocidade e botão premido.

🖱️ drag-element ✓ Guardar bloco

Simulação humana

O Dablio Robô divide o movimento em múltiplos passos intermédios com um intervalo configurável, simulando o movimento natural do rato humano em vez de teletransportar.

Pontos de ancoragem

Configure onde no elemento de origem o clique será iniciado (centro, cantos) e onde no destino o item será largado. Os offsets permitem o ajuste fino em pixels.

Botão pressionado

A maioria dos drag-and-drops utiliza o botão esquerdo. Algumas interfaces utilizam o botão do meio ou direito — configure de acordo com o comportamento esperado.

Parâmetro Descrição
Botão pressionado Nenhum · Esquerdo · Direito · Centro
Seletor de origem Elemento que será arrastado
Seletor de destino Elemento ou área onde o item será largado
Ponto de origem/destino Centro · Topo esquerdo/direito · Base esquerda/direita
Offsets X/Y Deslocamento adicional nos pontos de origem e de destino
Passos Número de movimentos intermédios do rato
Intervalo entre passos (ms) Pausa entre cada movimento para simular o arrasto humano
Segurar antes de arrastar (ms) Tempo para manter o botão pressionado antes de mover
💡
Dica: Se o drag and drop nativo não funcionar, tente utilizar o bloco Disparar evento com a sequência: mousedown → mousemove (várias vezes) → mouseup.
🖱️

Enviar ficheiro

upload-file
uploadarquivoanexar
Saídas next

Realiza o upload de ficheiros em campos input[type=file], contornando a limitação de que o browser não permite a automatização direta do seletor de ficheiros do sistema operativo.

Faz o upload de ficheiros via URL/Base64, pasta local, caminho absoluto ou simula clique para o utilizador selecionar manualmente.

🖱️ ficheiro-upload ✓ Guardar bloco

URL ou Base64

Fornece o ficheiro como URL público ou string Base64. O Dablio Robô descarrega e injecta o ficheiro directamente no input sem abrir o selector do sistema.

Pasta local

Selecione uma pasta previamente autorizada no seu computador e informe o nome do ficheiro. O Dablio Robô lê-o e injeta-o automaticamente.

Caminho absoluto

Informa o caminho completo do ficheiro (C:\Users\ficheiro. pdf ou URL). Requer permissão de acesso a ficheiros locais nas definições da extensão.

Manual

Clica no botão de upload e pausa — o utilizador seleciona o ficheiro manualmente. O fluxo continua após a seleção.

Parâmetro Descrição
Seletor CSS ou XPath do input[type=file]
Aguardar seletor Aguarda que o input apareça
Múltiplos Preenche todos os campos de upload encontrados
Origem do arquivo Manual · URL/Base64 · Pasta local · Caminho absoluto
💡
Dica: Para gerar um ficheiro no fluxo e depois fazer o upload (ex: criar um CSV e enviá-lo para um sistema), combine Exportar Dados + Converter Dados (para Base64) + Enviar Arquivo.

Origens de ficheiro suportadas

URL público ou Base64

O Dablio Robô descarrega o ficheiro URL ou descodifica o Base64 e injeta diretamente no campo input[type=file] sem abrir o seletor do sistema operativo.

Pasta local

Selecione uma pasta no seu computador (o browser pede permissão uma única vez). Introduza o nome do ficheiro dentro dessa pasta — aceita variáveis ​​para nomes dinâmicos.

Caminho absoluto

Introduza o caminho completo do ficheiro (ex: file:///C:/Users/arquivo.pdf). Requer permissão de acesso a URLs de ficheiros nas definições da extensão.

Manual (clicar no botão)

O robot apenas clica no botão de upload e pausa. Surge uma notificação a pedir que o utilizador selecione o ficheiro manualmente. O fluxo retoma após a seleção.

🖱️

Pressionar tecla

press-key
tecladoatalhodigitar
Saídas next

Simula o pressionar de teclas e atalhos do teclado, ou digita um texto completo tecla a tecla com timing configurável.

Pressiona um atalho de teclado (ex: CTRL+S) ou digita um texto tecla a tecla, com foco opcional em elemento alvo.

🖱️ press-key ✓ Guardar bloco

Pressionar atalho

Execute combinações como Ctrl+S (guardar), Ctrl+A (selecionar tudo), F2 (renomear), Enter, Escape, Tab. Utilize o gravador de atalhos para capturar a combinação pretendida.

Digitar texto

Digita um texto caractere a caractere com tempo entre teclas configurável. Ao contrário do bloco Formulário que define o valor diretamente, este simula a digitação real.

Elemento alvo

Quando configurado, o Dablio Robô foca o elemento antes de cada tecla — garante que as teclas são enviadas para o elemento correto mesmo que o foco tenha sido alterado.

Parâmetro Descrição
Ação Pressionar um atalho · Digitar um texto
Tecla/combinação Ex: CTRL+SHIFT+1, ALT+Q (utilizar o gravador de atalhos)
Tempo de pressão (ms) Durante quanto tempo a tecla ficará pressionada
Texto para reproduzir Texto que será digitado tecla a tecla
Target element Seletor do elemento que irá receber o foco antes de cada tecla
💡
Dica: Nota: devido a limitações de segurança dos browsers, os atalhos nativos do sistema (como Alt+F4 ou Ctrl+Alt+Del) não podem ser simulados pela extensão.

Atalhos comuns

  • Enter — confirmar formulários e diálogos
  • Tab — navegar entre campos
  • Escape — fechar modais e menus
  • Ctrl+A — selecionar todos os
  • Ctrl+C / Ctrl+V — copiar e colar
  • F2 — entrar em modo de edição (Excel, aplicações desktop)
  • Delete / Backspace — apagar conteúdo selecionado
📝
Devido a limitações de segurança dos browsers, atalhos nativos do sistema como Alt+F4 ou Ctrl+Alt+Del não podem ser simulados pela extensão.
🖱️

Criar HTML

create_element
injetarhtmlcssinserir
Saídas default

Injeta HTML, CSS e JavaScript personalizados diretamente na página numa posição relativa ao elemento alvo. Permite estender visualmente qualquer site sem modificar o seu código.

Insere código HTML, CSS e JavaScript na página numa posição específica em relação ao elemento alvo.

🖱️ criar_eleme ✓ Guardar bloco

Posições de inserção

Primeiro/último filho: dentro do elemento; Irmão anterior/posterior: junto ao elemento; Substituir: troca o elemento pelo conteúdo injetado.

Tags script

Tags <script> incluídas no HTML são executadas imediatamente após a injeção. Ideal para adicionar lógica JavaScript à página.

Executar antes do carregamento

Injeta o conteúdo no evento loading do separador, antes da página terminar de carregar — para sobrescrever scripts ou estilos originais.

Parâmetro Descrição
Elemento alvo CSS ou XPath do elemento de referência
Posição Como primeiro filho · Como último filho · Irmão anterior · Irmão seguinte · Substituir o elemento
Executar antes do carregamento Injeta no início do carregamento da página
HTML/CSS/SCRIPT Código a introduzir. As tags <script> serão executadas
💡
Dica: Utilize para adicionar botões de ação na interface de sistemas que não têm API — ex: um botão ‘Exportar para CSV’ numa tabela que não oferece esta funcionalidade.
Exemplo
<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>
🖱️

Elemento existe

element-exists
verificarcondicionalDOM
Saídas existsfallback (não encontrado)

Verifica se um elemento está presente no DOM da página, com múltiplas tentativas configuráveis antes de concluir. Retorna exists ou fallback.

Verifica se um elemento existe na página com múltiplas tentativas antes de seguir pela porta de sucesso ou fallback.

🖱️ element-exis ✓ Guardar bloco

Tentativas

Cada tentativa aguarda o intervalo configurado antes de repetir. Se o elemento aparecer em qualquer tentativa, regressa imediatamente pelo caminho exists.

Utilização em loops

Utilize no início de loops para verificar se ainda existem itens a processar. Quando o elemento já não existir (ex: botão 'Próxima página'), o ciclo termina naturalmente pelo fallback.

Parâmetro Descrição
Seletor CSS ou XPath do elemento a verificar
Número de tentativas Quantas verificações antes de concluir que não existe
Intervalo (ms) Tempo entre cada tentativa de verificação
💡
Dica: Para verificações mais complexas (elemento existe E tem determinado texto), combine este bloco com um Condicional na saída exists.

Saídas do bloco

Saída exists (elemento encontrado)

O fluxo segue este caminho quando o elemento é localizado no DOM dentro do número de tentativas configurado. O Dablio Robô regressa à primeira tentativa bem-sucedida, sem esperar pelas restantes.

Saída de fallback (não encontrado)

O fluxo segue por este caminho quando todas as tentativas se esgotam sem encontrar o elemento. Utilize para tratar cenários alternativos: saltar um passo, tentar uma ação diferente ou terminar o ciclo.

💡
Para verificar se um elemento existe E contém um texto específico, combine este bloco com um Condicional na saída exists utilizando o tipo Texto do elemento.
🖱️

Arquivo existe?

check-local-file
arquivoverificar pasta
Saídas verdadeirofalso

Verifica a existência de um ficheiro numa pasta local antes de tentar processá-lo, evitando erros em fluxos que dependem de ficheiros externos.

Verifica se um ficheiro existe numa pasta local selecionada. Suporta a pesquisa por nome exato, nome base ou expressão regular.

🖱️ check-local- ✓ Guardar bloco

Pesquisa por nome exato

Se o nome incluir extensão (ex: relatorio.pdf), a pesquisa é exata. Sem extensão, procura qualquer ficheiro com aquele nome base independentemente da extensão.

Procura por Regex

Permite padrões avançados: ^fatura_\d{8}\.pdf$ encontra faturas com data no nome; .*\.xlsx$ encontra qualquer folha de Excel.

Parâmetro Descrição
Pasta Local Pasta onde o ficheiro será procurado
Nome do arquivo Nome exato, nome base (sem extensão) ou padrão Regex
Usar Regex Interpreta o campo como expressão regular
💡
Dica: Combine com um Condicional na saída para descarregar o ficheiro se não existir, ou saltar para o processamento se já existir — evitando downloads duplicados.
🔀

Condicional

conditions
seelselógicacomparar
Saídas verdadeirofalso

Bloco de decisão que compara dois valores e direciona o fluxo para o caminho Verdadeiro ou Falso.

Compara dois valores e direciona o fluxo pelo caminho Verdadeiro ou Falso. Suporta valores literais, variáveis, textos de elementos, atributos HTML e código JavaScript.

🔀 conditions ✓ Guardar bloco

Operadores básicos

Igual (==): insensível a maiúsculas. Igual (SM): sensível. Diferente (!=).

Operadores numéricos

Maior, menor, maior ou igual, menor ou igual — os valores são convertidos para número automaticamente.

Operadores de texto

Contém, não contém (insensível/sensível), começa por, termina em.

Expressão regular

Testa o 1º valor contra a Regex do 2º. Ex: verificar formato de NIF, e-mail, data.

Elemento DOM

Verifica a existência, visibilidade (na DOM e na viewport) ou valor de atributo dos elementos da página — sem necessitar de um seletor separado.

Código JavaScript

O 1º valor pode ser um bloco de código JS que retorna true/false para lógica arbitrariamente complexa.

Parâmetro Descrição
Tipo do 1º valor Valor literal · Variável existe · Valor da variável · Código JS · Texto/atributo/visibilidade do elemento
Operador Igual · Diferente · Maior/Menor (que) · Maior/Menor ou igual · Contém · Não contém · Começa/Termina por · RegEx
Tipo do 2º valor Valor · Variável · Texto/atributo do elemento
Sensível a maiúsculas As versões SM dos operadores consideram maiúsculas e minúsculas
💡
Dica: Para condições AND/OR entre comparações múltiplas, utilize o tipo Código JS: return vars.x > 10 && vars.status === 'ativo';
ℹ️
Os operadores de visibilidade (elemento visível, oculto, visível no ecrã) não necessitam de 2º valor — devolvem diretamente verdadeiro/falso.

Operadores disponíveis

  • Igual (==) — comparação sem distinção de maiúsculas/minúsculas. "João" == "joão" → verdadeiro.
  • Igual (Sensível) — comparação exata, é sensível a maiúsculas e minúsculas.
  • Contém / Não contém — verifica se o primeiro valor inclui o segundo.
  • Começa por / Termina por — verifica prefixo ou sufixo do texto.
  • Maior / Menor / ≥ / ≤ — comparação numérica. Os valores são convertidos para número automaticamente.
  • RegEx — testa o primeiro valor contra uma expressão regular. Exemplo: ^\d{3}\.\d{3}\.\d{3}-\d{2}$ valida CPF.
  • Elemento existe / visível — verifica a presença ou visibilidade de um seletor na página, sem segundo valor.
  • Código JS — executa código JavaScript que retorna true/false para lógica arbitrária.
💡
Para condições AND/OR complexas, utilize o tipo Código JS: return vars.x > 10 && vars.status === 'ativo';
🔀

Percorrer elementos

each-element
loopforEachiterar DOM
Saídas loop-start

Itera sobre todos os elementos encontrados por um selector, executando os blocos internos para cada um. O equivalente do forEach em automação web.

Percorre todas as ocorrências de um selector CSS/XPath executando os blocos internos para cada elemento encontrado.

🔀 each-element ✓ Guardar bloco

Identificador de loop

Cada elemento recebe o atributo wRobo-loop='nome_N' (onde N é o índice). Utilize o seletor [wRobo-loop='nome_0'] dentro do ciclo para interagir especificamente com o elemento atual.

Máximo de ocorrências

Limita o número de iterações — útil quando uma página tem centenas de elementos mas apenas pretende processar os primeiros N.

Inverter ordem

Processa os elementos de baixo para cima — necessário quando a remoção de itens ou a paginação afeta os índices.

Parâmetro Descrição
Seletor CSS ou XPath que devolve a lista de elementos
Aguardar elemento Aguarda que os elementos apareçam
Inverter ordem Começa do último elemento para o primeiro
Máximo de ocorrências Limita o número de iterações (0 = todas)
Identificador personalizado Adiciona atributo wRobo-loop a cada elemento para o referenciar
💡
Dica: Para loops em tabelas, selecione as linhas (table tbody tr) e dentro do ciclo selecione as células ([wRobo-loop='linha_N'] td:nth-child(2)) para aceder a cada coluna.
ℹ️
Dentro do ciclo, utilize o selector [wRobo-loop='identificador_N'] para interagir especificamente com o elemento actual.

Identificador de loop

O Dablio Robô adiciona automaticamente o atributo wRobo-loop em cada elemento encontrado durante o loop. Utilize este atributo nos blocos internos para interagir especificamente com o elemento atual:

Seletor CSS — dentro do 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 */
💡
Para tabelas HTML, selecione as linhas com table tbody tr e dentro do loop aceder às colunas com [wRobo-loop="linha_N"] td:nth-child(X).
🔀

Repetir tarefas

repeat-task
loopwhilerepetiçãocontador
Saídas loop-start

Repete os blocos interiores um número fixo de vezes. O equivalente de um loop for(i=0; i<N; i++).

Repete os blocos internos um número definido de vezes.

🔀 repeat-task ✓ Guardar bloco

Contador automático

O Dablio Robô injecta automaticamente a variável {{loopIndex}} com o índice atual (0-based) dentro de cada iteração.

Interromper com Parar repetição

Utilize o bloco Parar repetição dentro do ciclo para sair antes de completar todas as iterações quando uma condição é satisfeita.

Parâmetro Descrição
Repetir quantas vezes Número de iterações do ciclo
💡
Dica: Utilize para processar uma quantidade conhecida de páginas (ex: 10 páginas de resultados), combinando com incremento de URL: https://site.com/lista?page={{pagina}}.

Variável de índice automática

O Dablio Robô injecta automaticamente a variável {{loopIndex}} dentro de cada iteração, começando em 0. Utilize para construir URLs dinâmicos, nomes de ficheiros ou lógica condicional com base na iteração atual:

Exemplo — Navegar por páginas numeradas
/* 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}}
🔀

Percorrer dados

loop-data
looparraylistaiterar
Saídas loop-start

Itera sobre listas de dados: arrays de variáveis, intervalos numéricos ou dados JSON personalizados. O item atual é acessível através da variável configurada.

Percorre uma lista (array de variáveis, números sequenciais ou dados JSON) repetindo os blocos internos para cada item.

🔀 loop-data ✓ Guardar bloco

Fonte: Variável

Itera sobre um array guardado numa variável (ex: lista de e-mails, lista de NIFs). A variável do item atual é acessível como {{loopItem}}.

Fonte: Números

Gera uma sequência de números inteiros desde o valor inicial até ao final. {{loopItem}} contém o número atual.

Fonte: JSON

Itera sobre um array JSON definido diretamente no bloco. Cada item é um objeto com as propriedades configuradas.

Índice inicial

Salte os N primeiros itens — útil para retomar processamentos interrompidos.

Parâmetro Descrição
Fonte de dados Variável · Números · JSON
ID do loop Nome da variável que irá receber o item atual (ex: {{loopItem}})
Do número / Até o número Intervalo para o modo 'Números'
Dados JSON JSON no formato [{key, value}] para o modo JSON
Inverter ordem Começa no último item da lista
Índice inicial Começa a partir do índice informado
Máximo de ocorrências Limita o número de iterações (0 = todas)
💡
Dica: Combine com Exportar Dados dentro do ciclo para acumular resultados linha a linha numa tabela do fluxo, exportando no final como CSV ou JSON.

Fontes de dados suportadas

Variável (Array)

Itera sobre um array guardado numa variável do fluxo. O artigo atual fica disponível em {{loopItem}} e o índice em {{loopIndex}} dentro do ciclo.

Intervalo numérico

Gera uma sequência de números desde o valor inicial até ao final. Ideal para navegar por páginas numeradas ou repetir N vezes com o controlo de índice.

JSON personalizado

Define um array JSON diretamente no bloco. Cada item pode ser um objeto com múltiplas propriedades, acedidas dentro do ciclo como {{loopItem.propriedade}}.

💡
Utilize o campo Índice inicial para retomar um processamento interrompido a partir de um item específico, sem ter de voltar a processar os itens anteriores.
🔀

Parar repetição

loop-break
breakinterromper loop
Saídas break

Interrompe imediatamente o ciclo mais próximo (Repetir tarefas, Percorrer dados ou Percorrer elementos) e continua o fluxo após o bloco de ciclo.

Interrompe imediatamente o ciclo ou repetição mais próxima (Repetir tarefas, Percorrer dados ou Percorrer elementos).

🔀 loop-break ✓ Guardar bloco

Utilização com Condicional

Combine com um bloco Condicional para sair do ciclo quando uma condição é satisfeita, como por exemplo 'se o preço for superior a X, parar de procurar'.

💡
Dica: Diferente de Parar fluxos, este bloco apenas sai do ciclo atual — o fluxo continua normalmente após o ciclo.

Diferença entre Parar repetição e Parar fluxos

  • Parar repetição — interrompe apenas o loop mais próximo. O fluxo continua normalmente após o bloco de loop.
  • Parar fluxos — termina a execução do fluxo inteiro (ou de outros fluxos). Use apenas quando quiser terminar tudo.
💡
Combine com Condicional para sair do ciclo quando uma condição específica é satisfeita, como "se o preço for superior a X, parar a pesquisa" ou "se não encontrar mais resultados, sair do ciclo".
📊

Inserir dados

insert-data
variáveltabelacriararmazenar
Saídas next

O bloco de criação de variáveis mais direto: define o valor de uma variável, adiciona dados a uma tabela do fluxo ou lê conteúdo de ficheiros.

Preenche variáveis, tabelas do fluxo ou tabelas do armazenamento local. Aceita texto manual, variáveis ​​e conteúdo de ficheiros.

📊 inserir-dados ✓ Guardar bloco

Variável

Define ou sobrescreve o valor de uma variável. O campo Dados aceita texto livre, variáveis interpoladas ({{nome}}) e expressões.

Tabela do fluxo

Adiciona uma linha de dados à tabela especificada, uma coluna de cada vez. Combine múltiplos blocos Inserir Dados para construir registos completos.

Informar ficheiro

Lê o conteúdo de um ficheiro local ou URL e armazena-o em variável. Suporta texto puro e conversão para Base64 para ficheiros binários.

Parâmetro Descrição
Aplicar em Variável · Tabela do fluxo · Tabela do armazenamento
Nome da variável Variável de destino (modo variável)
Dados Conteúdo a inserir. Aceita variáveis {{var}}
Informar arquivo Lê o conteúdo de um ficheiro local ou URL
Formato Padrão (texto) · Converter para Base64
💡
Dica: Para construir objetos JSON complexos, utilize o bloco Definir dados ou o bloco Executar JS: vars.objeto = {id: vars.id, nome: vars.nome};

Destinos disponíveis

Variável do fluxo

Cria ou substitui o valor de uma variável. Aceita texto livre, variáveis ​​interpoladas {{var}} e qualquer tipo de dados: strings, números, arrays ou objetos JSON.

Tabela do fluxo

Adiciona uma linha de dados à tabela interna do fluxo (coluna a coluna). Utilize múltiplos blocos Inserir dados em sequência para construir registos completos antes de exportar com o bloco Exportar dados.

Ficheiro local (URL ou caminho)

Lê o conteúdo de um ficheiro do computador ou de um URL público e armazena-o numa variável. Ative Converter para Base64 para ficheiros binários, como PDFs e imagens.

📊

Definir dados

create-data
variávelfatiarregexsubstituir
Saídas default

Transforma e extrai dados de variáveis existentes: fatiamento de strings, extração por tipo de conteúdo e expressões regulares.

Cria, atualiza ou extrai partes de um conteúdo para uma nova variável. Suporta slice de texto/dados, extração por tipo e expressões regulares.

📊 criar-dados ✓ Guardar bloco

Fatia de texto

Extrai uma substring por posição: início e fim em índice de caracteres. Ex: extrair os primeiros 4 dígitos de um código postal (0 a 4).

Slice de dados

Para arrays e objetos, extrai por índice. Ex: obter os 3 primeiros itens de uma lista.

Extrair números / texto

Filtra apenas os dígitos ou apenas os caracteres alfabéticos de uma string. Útil para limpar NIF/CNPJ/telefone.

Expressão RegEx

Extrai o texto que corresponde ao padrão. Ative Múltiplos para devolver todas as ocorrências como array. Ative Substituir para substituir em vez de extrair.

Parâmetro Descrição
Valor/Conteúdo Texto ou variável {{var}} de origem
Tratamento Nenhum · Extrair índice do texto (slice) · Extrair índice dos dados · Extrair números · Extrair texto · Expressão RegEx
Início / Final Posições para operações de slice
RegEx Expressão regular para extração ou substituição
Substituir Substitui o trecho encontrado em vez de extrair
Nome da variável Variável que receberá o resultado
💡
Dica: Para limpar um NIF de formatação (123.456.789-0912345678909), utilize o tratamento Extrair apenas números.

Tratamentos de texto disponíveis

Fatia de texto (extração por índice)

Extrai uma substring pela posição dos caracteres. Índice 0 = início, índice negativo = a partir do fim. Exemplo: extrair os primeiros 8 dígitos de uma data 20240115 → índice 0 a 4 retorna 2024.

Extrair apenas números

Remove todos os caracteres não numéricos. Útil para limpar o NIF, CNPJ, telefone e CEP: 123.456.789-0912345678909.

Expressão Regular (RegEx)

Extrai ou substitui partes do texto utilizando padrões. Ative Múltiplos para devolver todas as ocorrências como array. Ative Substituir para trocar o padrão encontrado por outro texto.

📊

Incrementar variável

increase-variable
somarcontadornúmeroacumular
Saídas next

Incrementa ou decrementa um valor numérico de uma variável numa quantidade configurada. O bloco mais simples para criar contadores.

Incrementa ou decrementa o valor numérico de uma variável num determinado valor.

📊 aumentar-var ✓ Guardar bloco

Contador de loop

Crie uma variável pagina com o valor 1 e incremente em 1 a cada iteração para navegar por páginas numeradas.

Valor negativo

Para decrementar, configure um valor positivo — o Dablio Robô irá sempre adicionar este valor ao atual. Para subtrair, utilize o bloco Calculadora.

Parâmetro Descrição
Variável Nome da variável a incrementar
Valor incremento Valor a adicionar (positivo) ou subtrair (negativo)
💡
Dica: Inicializar a variável com o bloco Inserir Dados antes do loop. O Incrementar Variável não cria a variável — esta tem de existir previamente.

Uso como contador de loops

Padrão clássico para navegar por páginas numeradas:

Configuração
/* 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
📝
A variável precisa de existir antes de ser incrementada. Utilize o bloco Inserir dados para a inicializar com o valor inicial antes do ciclo.
📊

Apagar dados

delete-data
remover variávellimpar
Saídas default

Remove uma variável da memória do fluxo. Útil para libertar espaço em fluxos longos ou garantir que as variáveis ​​não transportam valores de iterações anteriores.

Remove uma variável ou dado da memória durante a execução do fluxo.

📊 apagar-dados ✓ Guardar bloco

Caminhos aninhados

Suporta notação de pontos para remover propriedades de objetos: usuario.senha remove apenas o campo password do objeto utilizador.

Parâmetro Descrição
Dados de Variável · Tabela
Nome da variável Variável a eliminar. Suporta caminhos aninhados (ex: obj. campo)

Caminhos aninhados

Utilize a notação de pontos para remover apenas uma propriedade de um objeto, sem apagar todo o objeto:

  • usuario — remove a variável usuario completamente
  • usuario.senha — remove apenas o campo senha do objeto usuario
  • lista.0 — remove o primeiro item do array lista
📊

Calculadora

✦ EXCLUSIVO
calculator
matemáticasomardividircontarconta
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Realiza cálculos matemáticos com suporte a funções especializadas para cenários empresariais brasileiros, incluindo a formatação de moeda em Real (BRL).

Realiza cálculos matemáticos com operadores padrão e funções especializadas, incluindo a conversão de moeda brasileira.

📊 calculator ✓ Guardar bloco

Operadores básicos

+ soma, - subtração, * multiplicação, / divisão, ^ potência, % módulo (resto da divisão).

Funções de arredondamento

Calc.arredonda(valor, casas) — arredondamento matemático padrão. Calc.arredondaBaixo — sempre para baixo (floor). Calc.arredondaCima — sempre para cima (ceil).

Funções de moeda

Calc.valorBRL(1500.5, 2)'1.500,50' — formata número para a norma brasileira. Calc.valorUSD('1.500,50', 2)1500.50 — converte o texto BRL para número.

Funções estatísticas

Calc.max(a, b, c...) — maior valor entre os argumentos. Calc.min(a, b, c...) — valor mais baixo.

Parâmetro Descrição
Expressão matemática Ex: Calc.max({{v1}}, {{v2}}, 50) + 10.50
Funções disponíveis Calc.max · Calc.min · Calc.arredonda · Calc.arredondaBaixo · Calc.arredondaCima · Calc.removeDecimais · Calc.tornaPositivo · Calc.raizQuadrada · Calc.potencia · Calc.aleatorio · Calc.seno · Calc.cosseno · Calc.tangente · Calc.logaritmo · Calc.valorBRL · Calc.valorUSD
Variável de retorno Variável que receberá o resultado
Casas decimais Arredondamento do resultado final
💡
Dica: Todas as funções aceitam variáveis do fluxo: Calc.max({{preco1}}, {{preco2}}, {{preco3}}). As variáveis ​​são substituídas antes do cálculo.
Exemplo
// 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
ℹ️
Utilize Calc. valorBRL(num, 2) para formatar em moeda brasileira (ex: 1.500,50) e Calc. valorUSD('1.500,50', 2) para converter novamente para número.
📊

Converter dados

✦ EXCLUSIVO
converter-dados
base64jsonnúmerodataconverter
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Central de conversão de dados: transforma entre formatos de ficheiro, tipos de dados e representações textuais.

Conversor multi-formato: ficheiros e URLs para Base64, JSON parse/stringify, texto para número/inteiro, formatação de datas e descodificação de Base64.

📊 converter-da ✓ Guardar bloco

Ficheiro → Base64

Converte ficheiros de URL público, pasta local ou caminho absoluto para string Base64, pronta para envio em APIs, WhatsApp ou e-mail.

JSON parse/stringify

Converte strings JSON para objetos JavaScript (parse) ou objetos para texto JSON (stringify). Utilize após receber respostas de APIs como texto.

Texto → Número

Converte strings como '42.5' ou '1.234,56' (formato BRL) para números. Necessário antes de utilizar valores em cálculos.

Formatar data

Transforma os timestamps ou datas ISO para o formato configurado: DD/MM/YYYY, YYYY-MM-DD HH:mm:ss, etc.

Descodificar Base64

Converte uma string Base64 de volta para texto. Útil para ler conteúdo de ficheiros recebidos como Base64 de APIs.

Parâmetro Descrição
Tipo de conversão Texto→Base64 · URL→Base64 · Ficheiro local→Base64 · Caminho absoluto→Base64 · Ficheiro (input)→Base64 · Objecto→Texto · JSON parse · JSON stringify · Texto→Número · Texto→Inteiro · Formatar data · Descodificar Base64
Conteúdo/Variável Dado a converter
Origem do arquivo Para conversões de ficheiros: pasta local, URL, caminho absoluto
Formato de data Máscara de saída: YYYY, MM, DD, HH, mm, ss
Variável de retorno Variável que receberá o resultado
💡
Dica: Para converter um número de string com formatação BRL para cálculo: utilize Texto → Número. Para formatar o resultado de volta para apresentação: utilize Calculadora com Calc.valorBRL().
🌍

WhatsApp

✦ EXCLUSIVO
whatsapp
wppmensagemzapcomunicação
Saídas verdadeirofallback
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Integração completa com o WhatsApp Web utilizando a biblioteca WA-JS. Sem API paga, sem conta Business obrigatória — funciona com qualquer número com o WhatsApp Web ativo no browser.

Envia mensagens automáticas via WhatsApp Web utilizando o WA-JS ou o modo manual. Suporta texto, imagem, vídeo, áudio, documento e publicação de estado.

🌍 whatsapp ✓ Guardar bloco

Verificar WhatsApp

Confirma se o WhatsApp Web está ligado. Opcionalmente valida se a conta ligada é o número configurado — garante que o robô está a enviar a partir da conta correta.

Enviar texto (modo WA-JS)

Envia mensagens diretamente via WA-JS para o destinatário informado (número com indicativo + 55, ex: 5511999999999). O WhatsApp pode estar aberto ou em segundo plano.

Enviar texto (modo manual)

Abre uma janela popup temporária com o URL web.whatsapp.com/send?phone=..., clica no botão Enviar e fecha a janela. Fallback para quando o WA-JS não está disponível.

Enviar ficheiro

Suporta imagem, vídeo, áudio e documentos. O ficheiro pode vir de URL público, Base64, pasta local ou caminho absoluto. Aceita legenda e nome personalizado.

Visualização única

Para imagens: envia como mensagem de visualização única — o destinatário só pode ver uma vez antes de desaparecer. Semelhante ao recurso nativo da app.

Status

Publica conteúdo no Estado do WhatsApp (Stories). Suporta texto com cor de fundo e imagens com legenda.

Parâmetro Descrição
Ação Verificar WhatsApp · Enviar texto · Enviar imagem · Enviar vídeo · Enviar áudio · Enviar documento · Estado do texto · Estado da imagem
Destinatário Telefone com indicativo (ex: 5511999999999) ou chatId (@c.us)
Mensagem Texto a enviar. Aceita variáveis {{var}}
Origem do arquivo URL/Base64 · Pasta local · Caminho absoluto · Ficheiro local
Visualização única Envia imagem com visualização única (desaparece após ver)
Mensagem de voz Envia áudio como mensagem de voz em vez de ficheiro
Abrir/Fechar/Focar WhatsApp Controla o separador do WhatsApp Web
Verificar conta Confirma se a conta ligada corresponde ao número introduzido
💡
Dica: Para enviar em massa (ex: lista de clientes), combine com o bloco Percorrer dados iterando sobre um array de números. Configure um Aguardar de 3–5 segundos entre envios para evitar bloqueios.
ℹ️
Para funcionar, o WhatsApp Web tem de estar ligado no browser. O modo manual abre uma janela popup temporária para o envio.
🌍

Facebook

✦ EXCLUSIVO
facebook
metarede sociallogin
Saídas verdadeirofalso
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Verificação e automatização de autenticação no Facebook. Deteta o estado de login através de cookies de sessão e DOM da página.

Verifica se o Facebook está ligado ao browser e realiza o login automático com e-mail/telefone e password.

🌍 facebook ✓ Guardar bloco

Verificação de login

Analisa cookies (c_user), elementos de interface e URL para determinar com precisão se o utilizador está autenticado.

Login automático

Preenche os campos de e-mail e palavra-passe e clica em entrar. Suporta o fluxo de 'Utilizar outro perfil' quando são detetadas várias contas.

Parâmetro Descrição
Ação Verificar Facebook · Facebook Graph API
Fazer login Efetua login automático se não estiver logado
E-mail/Telefone Credenciais de acesso. Aceita variáveis
Senha Palavra-passe do Facebook. Aceita variáveis
Aguardar após entrar (ms) Tempo para o login concluir antes da verificação
Abrir Facebook Não abrir · Nova janela · Novo separador
💡
Dica: Após o login, aguarde pelo menos 3–5 segundos para o redirecionamento e carregamento da interface antes de executar ações na plataforma.
🌍

Mensageiro

✦ EXCLUSIVO
messenger
metamensagemchat
Saídas verdadeirofalso
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Verificação e automatização da autenticação no Messenger Web. Inclui tratamento do modal PIN de restauro do histórico de conversas.

Verifica se o Messenger está ligado, realiza o login automático e suporta o PIN de restauro do histórico de conversas.

🌍 messenger ✓ Guardar bloco

PIN de restauração

Quando o Messenger pede o PIN para restaurar o histórico de conversas encriptado, o Dablio Robô pode inserir automaticamente ou dispensar o modal clicando em 'Continuar sem restaurar'.

Parâmetro Descrição
Ação Verificar Messenger · Messenger Graph API
Fazer login Efetua login automático se não estiver logado
E-mail/Telefone / Senha Credenciais de acesso
PIN PIN de reposição do histórico (se solicitado)
Abrir Messenger Não abrir · Nova janela · Novo separador
💡
Dica: Deixe o campo PIN vazio para que o Dablio Robô dispense o modal automaticamente sem tentar repor o histórico.
🌍

Instagram

✦ EXCLUSIVO
instagram
metarede sociallogin
Saídas verdadeirofalso
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Verificação e automatização da autenticação no Instagram Web. Deteta o login através de cookie de sessão (sessionid) e elementos da interface.

Verifica se o Instagram está logado no browser e realiza o login automático com e-mail/utilizador/telefone e password.

🌍 instagram ✓ Guardar bloco

Pós-login

Após o login bem-sucedido, o Dablio Robô trata automaticamente o modal 'Guardar informações de login?' clicando em 'Agora não', evitando bloqueios no fluxo.

Parâmetro Descrição
Ação Verificar Instagram · Instagram Graph API
Fazer login Efetua login automático se não estiver logado
E-mail/Telefone / Senha Credenciais de acesso
Abrir Instagram Não abrir · Nova janela · Novo separador
🌍

Telegram

✦ EXCLUSIVO
telegram
mensagemchatbot
Saídas verdadeirofalso
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Verificação de autenticação no Telegram Web. Analisa o localStorage e os cookies para determinar o estado de login e validar o número de telefone da conta.

Verifica se o Telegram Web está ligado, com validação opcional de um número de telefone específico.

🌍 telegrama ✓ Guardar bloco

Validação de número

Introduza um número de telefone para verificar se a conta ligada no Telegram Web corresponde. Suporta múltiplos formatos: com código do país, sem código, etc.

Parâmetro Descrição
Telefone Número a verificar (ex: 559912345678). Aceita variáveis
Aguardar após login (ms) Tempo para a página carregar
Abrir Telegram Não abrir · Nova janela · Novo separador
🌍

Folhas Google

google-sheets
planilhagooglefolhas
Saídas next

Integração direta com Google Sheets para leitura e escrita de dados em folhas de cálculo.

Lê ou escreve dados numa folha de cálculo do Google Sheets via integração com API.

🌍 google-sheet ✓ Guardar bloco

Ler dados

Retorna os dados de um intervalo de células como array para processamento no fluxo.

Append

Adiciona novas linhas no final da folha de cálculo sem sobrescrever dados existentes.

Parâmetro Descrição
ID da planilha ID extraído do URL da folha de cálculo
Range Intervalo de células (ex: A1:D10)
Modo Ler · Append (adicionar linhas)
💡
Dica: Combine com o bloco Percorrer dados para processar cada linha da folha de cálculo individualmente.

Autenticação necessária

📝
Para utilizar a integração com o Google Sheets, precisa de ligar a sua conta Google nas definições do Dablio Robô e autorizar o acesso às folhas de cálculo.

Operações disponíveis

Ler dados

Retorna os dados de um intervalo de células como array para utilização nos blocos seguintes. Combine com Percorrer dados para processar linha a linha.

Adicionar (Append)

Insere novas linhas no final da folha de cálculo sem sobrescrever os dados existentes. Ideal para acumular resultados de raspagem ao longo do tempo.

🌍

OCR: Ler imagens

google-vision
ocrgoogle visiontexto imagemreconhecimento
Saídas next

Integração com o Google Cloud Vision API para OCR (reconhecimento de texto em imagens) e outras análises de visão computacional.

Envia uma imagem para a Google Cloud Vision API para OCR, deteção de labels, objetos, rostos, logótipos e análise de segurança.

🌍 google-visio ✓ Guardar bloco

OCR simples vs. documento

OCR Simples é para imagens com texto esparso. O OCR Documento está otimizado para documentos densos, como formulários, PDFs digitalizados e faturas.

Outros tipos de deteção

Labels (categorização de objetos), Detecção de rostos, Logótipos de empresas, Pontos turísticos, SafeSearch (conteúdo impróprio) e Web Detection (pesquisa inversa).

Resultado

Para OCR, devolve o texto extraído como string. Para outros tipos, devolve o JSON completo da API para processamento com o bloco Definir dados.

Parâmetro Descrição
API Key Chave API do Google Cloud Vision
Origem do arquivo Manual · URL/Base64 · Pasta local · Caminho absoluto
Tipo OCR simples · OCR documento · Labels · Objectos · Rosto · Logótipo · SafeSearch · Web detection...
Máx. resultados Número máximo de resultados da deteção
Variável de retorno Para OCR, guarda o texto extraído; para outros tipos, guarda o JSON completo
💡
Dica: Para extrair texto de capturas de ecrã ou imagens de faturas, combine Captura de ecrã (guardar em variável como Base64) → Converter Dados (para Base64 puro) → OCR: Ler imagens.
🌍

Google Document AI

✦ EXCLUSIVO
google-document-ai
ocrpdfparserextração
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Processamento avançado de documentos com o Google Cloud Document AI. Utiliza Processors especializados para extrair campos estruturados de faturas, contratos, identidades e formulários.

Envia documentos (PDF ou imagem) para o Google Cloud Document AI para processamento avançado com Processors configurados.

🌍 google-docum ✓ Guardar bloco

Processors

Cada Processor é treinado para um tipo de documento. Crie e configure na Consola Google Cloud antes de utilizar no Dablio Robô.

Token de acesso

Ao contrário da Vision API, o Document AI requer autenticação OAuth 2.0 (não API Key). Utilize o token Bearer obtido via Google Auth.

Resultado

Para OCR, devolve o texto completo. Para Form Parser e Invoice Parser, retorna JSON estruturado com campos extraídos e os seus valores.

Parâmetro Descrição
Access Token (OAuth) Token Bearer OAuth 2.0 com permissão Document AI
Project ID ID do projeto na Google Cloud
Location nos · eu
Processor ID ID do Processor criado na consola Document AI
Processor Version Versão específica do processador (opcional)
Origem do arquivo Manual · URL/Base64 · Pasta local · Caminho absoluto
MIME Type application/pdf · image/png · image/jpeg
Variável de retorno Para OCR, guarda o texto; para os parsers, guarda o JSON
💡
Dica: Para a automatização de faturas eletrónicas, o Processor de Invoice Parser extrai automaticamente campos como NIF, valor, data e artigos, eliminando a necessidade de parsing manual.
🌍

N8N

✦ EXCLUSIVO
n8n
webhookworkflowautomaçãointegração
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Integração bidirecional com o N8N para acionar fluxos de automação mais complexos ou integrar com as centenas de conectores disponíveis no N8N.

Executa um fluxo existente através do webhook ou cria e executa um novo fluxo no N8N com opção de eliminação automática após utilização.

🌍 n8n ✓ Guardar bloco

Executar fluxo existente

Envia um pedido HTTP para o webhook a partir de um fluxo já criado e configurado no N8N. Configure o método, os cabeçalhos e o body conforme o webhook espera.

Criar e executar fluxo

Cria um novo fluxo no N8N via API, ativa-o, dispara o webhook e opcionalmente elimina o fluxo após a execução. Ideal para fluxos temporários ou dinâmicos.

Aguardar retorno

O Dablio Robô aguarda a resposta do N8N antes de continuar. Configure o timeout de acordo com a duração estimada do fluxo no N8N.

Parâmetro Descrição
Modo Executar fluxo N8N (webhook) · Criar novo fluxo no N8N
URL do webhook URL completo do fluxo existente
Método HTTP GET · POST · PUT · PATCH · DELETE
Cabeçalhos/Body Cabeçalhos e corpo da requisição
Aguardar retorno Faz uma pausa no fluxo até à resposta do N8N
JSON do novo fluxo JSON exportado do N8N para criar o fluxo (modo de criação)
Executar fluxo criado Dispara o webhook após criar
Manter salvo no N8N Se desmarcado, elimina o fluxo após execução
Salvar retorno Variável que receberá a resposta
💡
Dica: Utilize o N8N para integrações com serviços que o Dablio Robô não cobre nativamente (Slack, Salesforce, bases de dados, etc.). O Dablio Robô recolhe os dados e o N8N trata da integração.
🌍

Enviar E-mail

send-email
emailsmtpcomunicação
Saídas default

Envia e-mails através da API de backend configurada no servidor. Suporta HTML, múltiplos destinatários e variáveis ​​do fluxo no conteúdo.

Envia e-mail através de uma API de backend configurada, suportando HTML e múltiplos destinatários.

🌍 enviar-email ✓ Guardar bloco

HTML no corpo

O campo Mensagem aceita HTML completo — utilize para criar e-mails formatados com tabelas, imagens, estilos inline e ligações clicáveis.

Múltiplos destinatários

No campo Cc, separe os e-mails por vírgula para cópia para vários destinatários em simultâneo.

Parâmetro Descrição
De (remetente) E-mail remetente (deve corresponder à conta do backend)
Para (destinatário) E-mail do destinatário
Cc Cópia — múltiplos e-mails separados por vírgula
Assunto Assunto do e-mail. Aceita variáveis
Mensagem Corpo do e-mail em HTML ou texto. Aceita variáveis
💡
Dica: Para relatórios automáticos, construa o HTML do e-mail dinamicamente com variáveis do fluxo: <p>Total processado hoje: <strong>{{total}}</strong></p>
🌍

Inteligência Artificial

✦ EXCLUSIVO
IA
IAChatGPTGémeosDeepSeekLLM
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Integração com modelos de Inteligência Artificial de grandes fornecedores. Ideal para classificação, resumo, extração de informação, geração de texto e tomada de decisão baseada em conteúdo.

Integração com modelos de IA: ChatGPT (OpenAI), DeepSeek e Gemini (Google). Configure o contexto, os requisitos e o prompt para obter respostas inteligentes.

🌍 IA ✓ Guardar bloco

OpenAI (ChatGPT)

Modelos GPT-5, GPT-4.1 e variantes. Use Requisitos como system prompt para definir o papel da IA e o contexto, e Prompt para o conteúdo a processar.

DeepSeek

Modelos V3.1 (standard) e V3.1-Think (raciocínio alargado). Excelente relação custo-benefício para tarefas de análise de texto em português.

Google Gemini

Modelos 2.5 Flash e Pro. O Flash é mais rápido e económico; Pro é mais capaz para tarefas complexas.

Caso de uso: extração

Configure o Requisito como: 'É um extrator de dados. Devolver apenas JSON sem formatação markdown.' — o bloco guarda o JSON na variável para utilização imediata.

Parâmetro Descrição
Fornecedor OpenAI (ChatGPT) · DeepSeek · Google (Gemini)
Modelo GPT-5/4.1/o3 · DeepSeek-V3.1 · Gemini 2.5 flash/pro
Requisitos/Contexto Instruções de sistema que definem o papel e o comportamento da IA
Prompt Questão ou conteúdo a processar. Aceita variáveis {{var}}
Variável de resposta Variável que receberá a resposta da IA
💡
Dica: Passe o conteúdo web capturado como variável no Prompt: Analise o seguinte texto e extraia o valor total da fatura: {{textoCapturado}}
🖥️

Windows

✦ EXCLUSIVO
windows
RPAcmdratotecladoprocessosistema
Saídas defaultfallback (erro)
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Bloco exclusivo do Dablio Robô que expande a automatização para o nível do sistema operativo Windows, controlando qualquer aplicação desktop para além do browser.

Envia comandos de automatização para o Host Local instalado no Windows. Permite controlar o sistema operativo para além do browser: rato, teclado, janelas, processos, OCR de ecrã, PowerShell e muito mais.

🖥️ janelas ✓ Guardar bloco

Mover e clicar

Controla o cursor do rato em coordenadas absolutas do ecrã. Utilize juntamente com o modo Capturar posição para descobrir as coordenadas dos elementos em sistemas legados.

Digitar texto

Simula a digitação em qualquer janela ou campo ativo do sistema. Funciona em ERPs, terminais, aplicações Java, sistemas legacy que não têm API.

Janela/processo existe?

Verifica por título (suporta Regex) ou nome do processo (.exe). Retorna as coordenadas da janela se ativado Retornar coordenadas.

Encontrar elemento no ecrã (UI)

Localiza os elementos de interface utilizando a API de Acessibilidade do Windows (UIAutomation). Para sistemas Java, ative Java Access Bridge (JAB).

Encontrar texto no ecrã (OCR)

Captura o ecrã e utiliza o reconhecimento ótico de caracteres para localizar texto. Funciona em qualquer aplicação, incluindo as que não expõem elementos de acessibilidade.

PowerShell

Executa scripts PS1 completos com acesso total ao sistema. O resultado (stdout) pode ser capturado em variável do fluxo.

Multi-ações

Define um array JSON com múltiplas ações em sequência: mais eficiente do que utilizar vários blocos separados para login em sistemas desktop.

Parâmetro Descrição
Ação Teste de ligação (Ping) · Mover rato · Clicar · Digitar texto · Pressionar ENTER · Aguardar (sleep) · Rolar (scroll) · Capturar posição · Desligar computador · Cancelar encerramento · Janela/processo existe? · Encontrar elemento no ecrã (UI) · Encontrar texto no ecrã (OCR) · Abrir/executar ficheiro · PowerShell · Multi-ações · Comandos personalizados
Coordenadas X/Y Posição no ecrã para ações de rato
Botão do mouse Esquerdo · Direito
Número de cliques Simples, duplo ou personalizado
Texto Texto a digitar no sistema
Título da janela Texto ou Regex para identificar a janela
Nome do processo Ex: SistemaXYZ.exe
Usar JAB Activa o Java Access Bridge para aplicações Java
Aguardar retorno Faz uma pausa no fluxo até receber a resposta do Host
Variável de retorno Variável que irá receber a resposta do Host
💡
Dica: Para descobrir as coordenadas dos botões em sistemas legados, utilize a ação Capturar posição: o robô aguarda N segundos para que posicione o cursor e depois guarda as coordenadas X,Y em variável.
Exemplo
[
  {"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}
]
ℹ️
Requer o Host Local (DablioRoboHost) instalado no computador onde serão executadas as automatizações. Para ambientes empresariais, liberte a porta localhost:37777 na firewall.
🔧

CAPTCHA

✦ EXCLUSIVO
captcha
recaptchahcaptchaTurnstilebotsegurança
Saídas verdadeiro (resolvido)false (não resolvido/timeout)default (não encontrado)
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Gestão completa de CAPTCHAs: deteta, aguarda resolução manual ou resolve automaticamente via IA com elevada taxa de sucesso.

Deteta a presença de CAPTCHA na página e aguarda ser resolvido manualmente ou automaticamente através de IA. Suporta os principais tipos do mercado.

🔧 captcha ✓ Guardar bloco

Detecção automática

Identifica reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile, FunCaptcha, GeeTest, Amazon WAF, DataDome e outros sem configuração manual.

Aguardar resolução manual

Foca o separador (traz para a frente) e aguarda até o CAPTCHA desaparecer do DOM ou o token de resposta ser preenchido. Guarda as coordenadas do CAPTCHA em variável se necessário.

Resolução automática

Deteta os parâmetros necessários (SiteKey, pageURL, User-Agent) automaticamente na página. Envia para o serviço de IA e injeta o token de resposta no campo correto.

Seletor personalizado

Para CAPTCHAs não mapeados: informe o seletor CSS/XPath do elemento CAPTCHA. O bloco aguarda até o selector desaparecer, ou configurar um selector de 'CAPTCHA resolvido' que deve aparecer.

Saídas

verdadeiro: O CAPTCHA foi detectado e resolvido. falso: timeout ou não resolvido. default: nenhum CAPTCHA foi detectado na página.

Parâmetro Descrição
Tipo Auto (detecta) · 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) Tempo para aguardar resolução manual
Intervalo de verificação (ms) Frequência de verificação se o CAPTCHA ainda está presente
Focar aba quando detectar Traz o separador para a frente para o utilizador resolver
Resolver automaticamente Utiliza IA com elevada taxa de sucesso (requer créditos)
Timeout de resolução (seg) Tempo máximo para a IA resolver automaticamente
Parâmetros manuais SiteKey, pageURL, UserAgent e campos específicos de cada tipo
Salvar resposta Guarda o token de resposta em variável para injeção manual
💡
Dica: Configure Tempo máx. espera com pelo menos 3 minutos (180000ms) para deixar tempo suficiente em casos de resolução manual. Para uma automatização totalmente sem supervisão, utilize a resolução automática com IA.
🔧

PDF para Imagem

✦ EXCLUSIVO
pdf-to-image
pdfconverterpngjpgrenderizar
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Converte páginas de PDFs em imagens PNG ou JPG utilizando o PDF.js, diretamente no browser. Útil para extrair imagens de documentos ou preparar PDFs para OCR.

Converte uma página específica de um PDF numa imagem PNG ou JPG utilizando o PDF.js, com controlo de qualidade por escala.

🔧 pdf-to-image ✓ Guardar bloco

Escala/Qualidade

1.0 = resolução nativa. 2,0 = dobro da resolução (ideal para OCR). 3.0 = alta resolução para impressão. Quanto maior, maior será o ficheiro resultante.

Guardar em variável

Retorna a imagem como Base64 para utilização com OCR (Google Vision), envio via WhatsApp, API ou exportação como ficheiro.

Página específica

Introduza o número da página a converter (1 = primeira). Para converter todas as páginas, combine com o bloco Percorrer dados iterando de 1 ao total de páginas.

Parâmetro Descrição
Origem do PDF Manual · URL/Base64 · Pasta local · Caminho absoluto
Número da página Qual a página a converter (1 = primeira)
Escala/Qualidade 1.0 = original, 2.0 = dupla resolução (mais qualidade)
Formato PNG (melhor qualidade) · JPG (tamanho mais pequeno)
Destino Guardar Base64 em variável · Descarregar ficheiro
💡
Dica: Para OCR de documentos digitalizados, utilize a escala 2,0 ou superior — as imagens de baixa resolução reduzem drasticamente a precisão do reconhecimento de texto.
🔧

Ligação Banco de Dados

✦ EXCLUSIVO
banco-dados
sqlbancoquery
Saídas next
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Ligação direta a bases de dados para execução de consultas SQL, inserção e recuperação de dados durante a automatização.

Executa consultas SQL em bases de dados ligadas ao sistema.

🔧 banco-dados ✓ Guardar bloco

Configuração

Ligue as bases de dados nas configurações do Dablio Robô. Podem ser configuradas múltiplas ligações para diferentes ambientes (dev, prod).

Resultado

Os dados retornados pela query são guardados na variável configurada como array de objetos, pronta para iteração com os blocos de ciclo.

Parâmetro Descrição
Banco de dados Selecione a ligação configurada
Consulta SQL Query SQL a executar
Variável de resposta Variável que receberá os resultados
🔧

Excel

excel
planilhaxlsxlsxods
Saídas next

Leitura e escrita avançada em ficheiros Excel (XLS, XLSX, ODS, XLSB) com suporte para múltiplos motores de processamento.

Leitura, escrita e utilidades avançadas para ficheiros Excel. Suporta múltiplos motores de leitura/escrita e formatos XLS, XLSX, ODS e XLSB.

🔧 excel ✓ Guardar bloco

Listar separadores

Retorna os nomes de todos os separadores da folha de cálculo como lista. Útil para processar dinamicamente folhas de cálculo com um número variável de separadores.

Ler dados (Excel Input)

Lê dados de um separador específico num intervalo configurável, com opções para tratar cabeçalhos, linhas vazias, encoding e erros.

Exportar (Excel Output)

Cria um novo ficheiro Excel com os dados do fluxo. Suporta templates, proteção de separadores, ajuste automático de colunas e nomes dinâmicos com data/hora.

Escrita avançada (Excel Writer)

Escreve em células específicas de um ficheiro existente, com um controlo fino de posição (célula de início), comportamento de conflito e preservação de estilos.

Parâmetro Descrição
Recurso Listar separadores · Ler dados (Excel Input) · Exportar (Excel Output) · Escrita avançada (Excel Writer)
Caminho do arquivo Caminho completo do ficheiro Excel
Motor XLS (JXL) · XLSX (POI) · XLSX Streaming · ODS · XLSB
Aba Nome ou índice do separador a processar
Linha/coluna inicial Ponto de partida para a leitura ou escrita
Cabeçalho Ignorar ou incluir a primeira linha como cabeçalho
Formato de saída Configurações de nome, extensão, split, proteção e template
💡
Dica: Para processar folhas de cálculo com múltiplas abas, combine Listar separadoresPercorrer dadosLer dados utilizando o nome do separador como variável.
🔧

Antivírus

✦ EXCLUSIVO
antivirus
virustotalmalwaresegurançascan
Saídas nextfallback (malicioso)
Recurso exclusivo Dablio Robô
Este bloco não está disponível noutras extensões de automatização.

Integração com o VirusTotal (Google) para verificação de segurança de ficheiros, URLs e hashes antes de os processar na automatização.

Verifica o ficheiro, URL ou hash no VirusTotal (Google) e devolve o relatório de segurança completo com política de bloqueio configurável.

🔧 antivirus ✓ Guardar bloco

Verificar hash

Verifica MD5, SHA1 ou SHA256 a partir de um ficheiro. Se o ficheiro não estiver no banco do VirusTotal, devolve um resultado indefinido.

Verificar URL

Analisa se um URL é malicioso. Retorna o relatório com deteções por motor antivírus.

Política de bloqueio

Configurar limiares: se ≥ N motores o detetarem como malicioso ou suspeito, o bloco segue pela saída fallback, permitindo tratar o ficheiro como ameaça.

Parâmetro Descrição
Ação Verificar hash · Verificar URL · Verificar ficheiro
API Key VirusTotal Chave API do serviço VirusTotal
Hash MD5, SHA1 ou SHA256 do ficheiro
URL Endereço a verificar
Limite de detecções maliciosas Bloquear se ≥ N antivírus marcarem como malicioso
Limite de suspeitos Bloquear se ≥ N antivírus marcarem como suspeito
Campo de saída Nome do campo onde será gravado o relatório JSON
💡
Dica: Utilize antes de descarregar e processar ficheiros recebidos de fontes externas ou e-mails automáticos para garantir a segurança da automatização.