
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.
Fluxos temporários via URL ou CustomEvent
✦ AVANÇADOEsta 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.
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. |
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.
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.
{
"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" }
}
]
}
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.
[
{
"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
}
]
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. |
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.
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.
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
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.
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. |
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.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
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.
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) |
Executar automaticamente desmarcado para exibir um botão flutuante na página, permitindo ao utilizador iniciar o fluxo no momento certo.Disparar via JavaScript (CustomEvent)
É possível acionar um fluxo programaticamente a partir de qualquer página utilizando a API de CustomEvent do JavaScript:
chrome:// ou chrome-extension:// não suportam atalhos de teclado.Executar um trabalho
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.
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 |
{{nomeVariavel}}.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.
Verificar fluxo
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).
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 |
Parar fluxos
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.
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 |
Aguardar um tempo
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.
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) |
Referência de tempo
500ms= meio segundo1000ms= 1 segundo3000ms= 3 segundos60000ms= 1 minuto
Exportar dados
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.
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 |
{{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.
{{data}} ou outra variável de data no nome do ficheiro para criar exportações com timestamp: relatorio_{{data}}.csvRequisição HTTP
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.
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 |
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:
- Para obter o array
valores: escrevadata.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:
Utilizando variáveis no corpo da requisição
Para valores do tipo corda, envolva a variável em aspas duplas:
$response no campo Caminho nos dados para capturar a resposta HTTP completa, incluindo status, statusText e os dados brutos.Área de transferência
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.
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') |
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.
Ctrl+V.Esperar ligações
Espera que todos os blocos anteriores ligados terminem antes de continuar. Útil para sincronizar fluxos paralelos.
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
Agrupa visualmente outros blocos dentro de um contentor para organizar e estruturar o fluxo. Não executa qualquer ação por si só.
Comentário
Bloco de anotação visual. Não executa qualquer ação durante o fluxo. Serve exclusivamente para documentar e organizar o canvas.
Notificação
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.
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) |
Alarme sonoro
✦ EXCLUSIVOReproduz 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.
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 |
Processamento
✦ EXCLUSIVOExibe 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.
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 |
Exibir Diálogo
✦ EXCLUSIVOApresenta uma janela modal interativa dentro da página. Pode ser simples (informação com OK) ou um mini-formulário com campos de texto, selects e múltiplos botões de acção.
Apresenta uma caixa de diálogo no ecrã e aguarda a ação do utilizador. Suporta múltiplos botões de resposta, campos de texto, selects e checkboxes.
Modo simples
Apresenta o título e a mensagem com os botões OK (→ saída default) e Cancelar (→ saída fallback). O HTML é permitido na mensagem.
Modo questionário
Adiciona campos de entrada personalizados: inputs de texto, dropdowns (select), checkboxes e botões com labels personalizados. Cada botão gera uma saída própria no bloco.
Guardar valores
Os valores introduzidos nos campos são automaticamente guardados nas variáveis configuradas para cada campo, disponíveis nos blocos seguintes.
| Parâmetro | Descrição |
|---|---|
Título |
Título opcional do diálogo |
Mensagem |
Texto da mensagem (aceita HTML) |
Modo Questionário |
Activa múltiplos botões e campos de entrada |
Campos de diálogo |
Adicione botões, inputs, selects e checkboxes dinamicamente |
Ativar separador/janela
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.
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ã |
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.
Nova aba
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.
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 |
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.
Alternar separador/janela
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.
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 |
Nova janela
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.
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 |
Voltar
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.
Uso típico
Regressar à listagem após o processamento de um item de detalhe em loops de scraping ou formulários.
Avançar
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.
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
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.
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 |
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.
Captura de ecrã
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.
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 |
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
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.
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 |
Proxy
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.
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) |
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.
Alternar Frame
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.
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) |
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.
<iframe> ou <frame> na estrutura da página.Exibição da tela
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.
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
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.
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 |
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
Obter URL
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.
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) |
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
Bolacha
Gere cookies do navegador para sites específicos: lê valores, cria/atualiza ou remove cookies de sessão.
Lê, cria, atualiza ou remove cookies do site atual.
Ler
Retorna o valor do cookie para a variável configurada. Útil para capturar tokens de sessão ou preferências guardadas.
Gravar
Cria ou atualiza um cookie para o URL informado. Utilize para simular o estado de autenticação ou as preferências do utilizador.
Remover
Apaga o cookie, útil para forçar a re-autenticação ou limpar o estado da sessão.
| Parâmetro | Descrição |
|---|---|
Operação |
Ler · Gravar · Remover |
Nome |
Nome do cookie |
URL |
URL do site ao qual o cookie pertence |
Valor |
Valor a gravar (para operação 'gravar') |
Variável destino |
Variável que receberá o valor lido |
Operações disponíveis
Ler
Captura o valor de um cookie pelo nome e URL e guarda-o numa variável do fluxo. Retorna null se o cookie não existir.
Gravar
Cria ou atualiza um cookie para o URL especificado. Útil para simular o estado da sessão ou definir preferências antes de aceder a uma página.
Remover
Elimina o cookie pelo nome e URL. Utilize para forçar a re-autenticação ou limpar o estado da sessão entre execuções.
Baixar ficheiros
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.
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 |
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 JPGrelatorio_*— acrescenta prefixo ao nome originalbackup/*.pdf— guarda na pasta backup com extensão PDF
Clique no elemento
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.
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 |
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 (//.
Obter conteúdo
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).
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 |
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
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.
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) |
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.
Rolagem
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.
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 |
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
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.
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 |
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 navegarsrc— percurso de imagens, vídeos e scriptsvalue— valor atual de campos hidden ou inputs não modificáveis pelo bloco Formuláriodata-id,data-*— identificadores e metadados incorporados pelo sitedisabled,readonly— restrições de campo; use Remover para desbloqueá-losclass,style— controlo visual de elementos
Executar JS
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.
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 |
async/await — o Dablio Robô aguarda que a Promise resolva antes de continuar o fluxo.// 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;
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.
async/await diretamente no código do bloco. O fluxo aguarda automaticamente que a Promise seja resolvida antes de continuar.Disparar evento
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.
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 |
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
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.
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 |
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
Arrastar elemento
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.
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 |
mousedown → mousemove (várias vezes) → mouseup.Enviar ficheiro
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.
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 |
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
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.
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 |
Atalhos comuns
Enter— confirmar formulários e diálogosTab— navegar entre camposEscape— fechar modais e menusCtrl+A— selecionar todos osCtrl+C/Ctrl+V— copiar e colarF2— entrar em modo de edição (Excel, aplicações desktop)Delete/Backspace— apagar conteúdo selecionado
Alt+F4 ou Ctrl+Alt+Del não podem ser simulados pela extensão.Criar HTML
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.
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 |
<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()'>💾 Exportar Dados</div>
<script>
window.__dablioExportar = function(){
window.dispatchEvent(new CustomEvent('dablio-export'));
};
</script>
Elemento existe
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.
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 |
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.
Abrir link
Lê o atributo href de um elemento de link e navega para o destino — mais robusto do que clicar diretamente pois não depende de comportamentos CSS ou JavaScript do link.
Lê o atributo href de um elemento e navega para o link no mesmo separador, novo separador ou nova janela.
Na página atual
Navega no próprio separador, equivalente a definir window.location.href.
Nova aba
Abre o link numa nova aba. Ative Definir como separador ativo para que o fluxo continue no novo separador.
Nova janela
Abre numa janela separada com as opções de tipo (normal/popup) e estado inicial.
| Parâmetro | Descrição |
|---|---|
Seletor |
CSS ou XPath do elemento ou contentor com link |
Como abrir |
Na página atual · Novo separador · Nova janela |
Tipo de janela |
Normal · Popup (sem separadores) |
Aguardar elemento |
Aguarda que o elemento apareça |
Salvar identificação |
Guarda um nome para referenciar o separador/janela |
Arquivo existe?
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.
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 |
Condicional
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.
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 |
return vars.x > 10 && vars.status === 'ativo';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.
return vars.x > 10 && vars.status === 'ativo';Percorrer elementos
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.
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 |
table tbody tr) e dentro do ciclo selecione as células ([wRobo-loop='linha_N'] td:nth-child(2)) para aceder a cada coluna.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:
table tbody tr e dentro do loop aceder às colunas com [wRobo-loop="linha_N"] td:nth-child(X).Repetir tarefas
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.
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 |
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:
Percorrer dados
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.
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) |
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}}.
Parar repetição
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).
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'.
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.
Inserir dados
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.
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 |
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
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.
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 |
123.456.789-09 → 12345678909), 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-09 → 12345678909.
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
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.
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) |
Uso como contador de loops
Padrão clássico para navegar por páginas numeradas:
Apagar dados
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.
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 completamenteusuario.senha— remove apenas o campo senha do objeto usuariolista.0— remove o primeiro item do array lista
Calculadora
✦ EXCLUSIVORealiza 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.
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 |
Calc.max({{preco1}}, {{preco2}}, {{preco3}}). As variáveis são substituídas antes do cálculo.// 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
Converter dados
✦ EXCLUSIVOCentral 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.
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 |
Calc.valorBRL().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.
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 |
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.
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 |
Mensageiro
✦ EXCLUSIVOVerificaçã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.
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 |
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.
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
✦ EXCLUSIVOVerificaçã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.
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
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.
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) |
Autenticação necessária
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
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.
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 |
Google Document AI
✦ EXCLUSIVOProcessamento 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.
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 |
N8N
✦ EXCLUSIVOIntegraçã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.
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 |
Enviar E-mail
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.
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 |
<p>Total processado hoje: <strong>{{total}}</strong></p>Inteligência Artificial
✦ EXCLUSIVOIntegraçã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.
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 |
Analise o seguinte texto e extraia o valor total da fatura: {{textoCapturado}}Windows
✦ EXCLUSIVOBloco 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.
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 |
[
{"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}
]
CAPTCHA
✦ EXCLUSIVOGestã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.
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 |
PDF para Imagem
✦ EXCLUSIVOConverte 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.
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 |
Ligação Banco de Dados
✦ EXCLUSIVOLigaçã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.
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
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.
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 |
Antivírus
✦ EXCLUSIVOIntegraçã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.
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 |