Integrations

Make (Integromat) + CaptchaAI: Automação Visual CAPTCHA

Sim, dá para resolver um CAPTCHA dentro de um cenário do Make (antigo Integromat) sem escrever uma linha de código de backend. O caminho é usar o módulo HTTP para conversar com a API da CaptchaAI: você envia o desafio, consulta o resultado e injeta o token de volta no fluxo — tudo no editor visual.

Este guia monta esse cenário do zero para reCAPTCHA v2 e cobre o gatilho de webhook, o envio à CaptchaAI, o laço de polling e o uso do token nas ações seguintes. O mesmo padrão vale para automação de formulários, entrada de dados e qualquer fluxo que trave em um desafio de verificação.

O que o cenário faz

Pense em uma equipe de operações que usa o Make para validar formulários de cadastro em um ambiente de staging. Sempre que a página exibe um reCAPTCHA v2, o cenário precisa resolvê-lo antes de seguir. Na prática, ele recebe um gatilho de webhook com a pageurl e a sitekey do reCAPTCHA, envia o desafio à CaptchaAI para resolução, faz o polling até o token ficar pronto e, por fim, devolve o token pelo webhook ou o passa ao próximo módulo.

Como você vai lidar com dados de formulário, vale considerar as obrigações da LGPD ao coletar e registrar informações — mantenha os testes em endpoints próprios e com dados fictícios.

Passo 1: monte o cenário no Make

No Make, crie um novo cenário e adicione os módulos a seguir na ordem em que aparecem.

Módulo 1: gatilho de webhook personalizado

Comece com um webhook personalizado que recebe as requisições de resolução de CAPTCHA. Adicione um módulo Webhooks > Webhook personalizado, clique em Adicionar para gerar o webhook, copie o URL exibido e defina a estrutura de dados com os campos sitekey, pageurl e captcha_type. O payload esperado é assim:

{
  "sitekey": "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
  "pageurl": "https://example.com/form",
  "captcha_type": "recaptcha_v2"
}

Módulo 2: requisição HTTP para enviar a tarefa à CaptchaAI

Adicione um módulo HTTP > Faça uma requisição e configure a chamada de envio:

  • URL: https://ocr.captchaai.com/in.php
  • Método: GET
  • Analisar resposta: sim, defina como JSON

Na query string, informe os parâmetros abaixo:

Chave Valor
key Sua chave de API da CaptchaAI
method userrecaptcha
googlekey {{1.sitekey}} (mapeado do webhook)
pageurl {{1.pageurl}} (mapeado do webhook)
json 1

Quando o módulo roda, a resposta traz o ID da tarefa que você vai consultar em seguida:

{
  "status": 1,
  "request": "TASK_ID_12345"
}

Módulo 3: módulo Sleep

Adicione um módulo Ferramentas > Sleep definido para 15 segundos. Esse intervalo dá tempo à CaptchaAI de resolver o reCAPTCHA antes de você começar o polling — consultar cedo demais só desperdiça operações do Make.

Módulo 4: requisição HTTP para consultar o resultado

Adicione outro módulo HTTP > Faça uma requisição, desta vez apontando para o endpoint de resultado:

  • URL: https://ocr.captchaai.com/res.php
  • Método: GET
  • Analisar resposta: sim, defina como JSON

Os parâmetros da query string são:

Chave Valor
key Sua chave de API da CaptchaAI
action get
id {{2.data.request}} (ID da tarefa do Módulo 2)
json 1

Módulo 5: Router para checar o resultado

Adicione um Router logo após o módulo de polling. Ele lê a resposta do res.php e decide o caminho conforme o estado da tarefa:

  • CAPTCHA resolvido — quando {{4.data.status}} é igual a 1, siga para a próxima ação (resposta do webhook, gravação em banco e por aí vai).
  • Ainda não está pronto — quando {{4.data.request}} é igual a CAPCHA_NOT_READY, reconecte ao Módulo 3 (Sleep) para formar o laço de polling.

Passo 2: monte o laço de polling

O token quase nunca fica pronto na primeira consulta, então o cenário precisa repetir a sequência Sleep → consulta → Router até o status chegar a 1. Você consegue isso com o módulo Repeater ou reconectando os módulos a etapas anteriores.

Usando o módulo Controle de fluxo > Repeater, defina 10 repetições como teto de tentativas e passe {{2.data.request}} (o ID da tarefa) como valor inicial. Dentro do Repeater, coloque a sequência Sleep → consulta → Router: cada iteração aguarda 5 segundos, consulta a CaptchaAI e verifica se o resultado já saiu. O Router encerra o laço assim que o token aparece e evita que o cenário rode indefinidamente.

Passo 3: use o token resolvido

Assim que o CAPTCHA é resolvido, o token fica disponível em {{4.data.request}}. A partir daí, você tem três destinos comuns.

Opção A: devolver pela resposta do webhook

Adicione um módulo Webhooks > Resposta do webhook e retorne o token a quem disparou o cenário:

{
  "token": "{{4.data.request}}",
  "status": "solved"
}

Opção B: enviar o token a um formulário

Adicione um módulo HTTP > Faça uma requisição que envia o token ao endpoint do formulário de destino. Configure o método como POST, aponte para o URL de ação do formulário e inclua no corpo os dados do formulário com o campo g-recaptcha-response: {{4.data.request}}.

Opção C: gravar em um banco de dados

Adicione um módulo Google Sheets, Airtable ou Banco de dados para registrar a resolução e acompanhar o histórico de tarefas.

Fluxo completo do cenário

Antes de tratar os erros, vale ver o cenário inteiro de uma vez. O diagrama abaixo resume a ordem dos módulos e mostra onde o laço de polling se fecha:

[Webhook Trigger]
      ↓
[HTTP: Submit to CaptchaAI in.php]
      ↓
[Sleep: 15 seconds]
      ↓
[Repeater: 10 iterations]
    ↓ (each iteration)
    [Sleep: 5 seconds]
    [HTTP: Poll CaptchaAI res.php]
    [Router]
      Route 1 (solved) → [Use Token] → [Webhook Response]
      Route 2 (not ready) → continue loop
      Route 3 (error) → [Error Handler]

Tratamento de erros

Configure manipuladores de erros nos módulos HTTP para que uma falha isolada não derrube o cenário inteiro.

No Módulo 2 (envio), trate ERROR_ZERO_BALANCE recarregando o saldo e ERROR_WRONG_USER_KEY corrigindo a chave de API. No Módulo 4 (polling), trate ERROR_CAPTCHA_UNSOLVABLE conferindo a sitekey e a pageurl, e resolva erros de rede com nova tentativa. E, caso o Repeater esgote todas as iterações sem sucesso, encaminhe o caso para um manipulador que registre a falha em vez de deixá-la passar silenciosa.

Para adicionar um manipulador no Make, clique com o botão direito no módulo -> Adicionar manipulador de erros -> escolha Resume (pular e continuar) ou Rollback (abortar o cenário).

Solução de problemas

Quando algo falha, a causa costuma estar no mapeamento de dados ou nos limites do plano do Make:

Problema Causa Correção
Webhook não dispara URL não cadastrado Confira se o URL do webhook está ativo no Make
ERROR_WRONG_USER_KEY Formato de chave de API inválido Verifique se a chave tem 32 caracteres, sem espaços extras
Polling nunca resolve Sleep curto demais ou ID de tarefa errado Confira o mapeamento do ID da tarefa; aumente o Sleep para 10 segundos
Tempo limite do cenário Limite de execução do Make (5 min no plano gratuito) Suba de plano ou reduza o intervalo de polling
Erro de parse do JSON Resposta não interpretada como JSON Ative "Analisar resposta" no módulo HTTP e defina json=1 nas requisições

Perguntas frequentes

Reunimos abaixo as dúvidas que mais aparecem ao integrar a CaptchaAI a um cenário do Make.

Qual plano da CaptchaAI preciso para o volume do meu cenário?

Depende de quantos desafios você resolve ao mesmo tempo, não do total por dia. A CaptchaAI cobra por thread simultânea, com resoluções ilimitadas dentro do plano. O BASIC (US$ 15/mês, 5 threads) atende cenários pequenos; se o Make disparar muitos webhooks em paralelo, suba para STANDARD (US$ 30/mês, 15 threads) ou ADVANCE (US$ 90/mês, 50 threads).

Por que preciso de um módulo Sleep antes do polling?

Porque o token não fica pronto na hora. O reCAPTCHA v2 costuma levar alguns segundos para ser resolvido; consultar o res.php cedo demais só devolve CAPCHA_NOT_READY e gasta operações do Make à toa. Um Sleep inicial de 15 segundos, com consultas a cada 5 segundos, equilibra velocidade e custo.

Posso resolver Cloudflare Turnstile no mesmo cenário?

Sim. Troque o parâmetro method para turnstile e envie a sitekey no lugar de googlekey na requisição. O restante do fluxo — polling, Router e uso do token — permanece igual.

Existe um app oficial da CaptchaAI no Make?

Ainda não. Use o módulo HTTP com chamadas diretas à API, como neste guia. Na prática, isso dá controle total sobre parâmetros, cabeçalhos e tratamento de erros — algo que um módulo pronto costuma esconder.

Como evito que o cenário fique preso em um laço infinito?

Limite as iterações no Repeater (por exemplo, 10) e crie uma rota de saída no Router para quando o polling estourar o limite sem resolver. Encaminhe esse caso a um manipulador de erros que registre a falha, em vez de repetir a consulta indefinidamente.

Artigos relacionados

Próximas etapas

Comece a automatizar a resolução de CAPTCHA no Make — obtenha sua chave de API da CaptchaAI e construa seu primeiro cenário.

Guias relacionados:

Os comentários estão desativados para este artigo.