n8n é uma ferramenta de automação de fluxo de trabalho de código aberto com suporte a loop nativo, tornando-o mais flexível do que o Zapier para resolução de CAPTCHA. Você pode criar um fluxo de trabalho de envio → enquete → usar que tenta novamente automaticamente até que a resolução seja concluída.
Visão geral do fluxo de trabalho
Manual Trigger / Cron
↓
HTTP Request: Submit CAPTCHA
↓
Wait: 10 seconds
↓
Loop: Poll until solved
├── HTTP Request: Get result
├── IF: status == 1? → Exit loop
└── Wait: 5 seconds → Loop again
↓
HTTP Request: Use token
Nó 1: Enviar CAPTCHA
Adicione um nó Solicitação HTTP:
| Configuração | Valor |
|---|---|
| Método | POST |
| URL | https://ocr.captchaai.com/in.php |
| Tipo de conteúdo corporal | Form URL Encoded |
Parâmetros corporais:
| Nome | Valor |
|---|---|
key |
{{ $credentials.captchaaiApiKey }} ou codifique sua chave |
method |
userrecaptcha |
googlekey |
6Le-SITEKEY |
pageurl |
https://example.com |
json |
1 |
Resposta:
{
"status": 1,
"request": "71823456"
}
Nó 2: Espere
Adicione um nó Aguarde:
| Configuração | Valor |
|---|---|
| Tempo de espera | 10 |
| Unidade | Seconds |
Isso dá ao solucionador tempo para iniciar o processamento antes da primeira pesquisa.
Nó 3: Resultado da enquete (com loop)
n8n suporta loops através do nó Loop Over Items ou conectando a saída falsa de um nó IF de volta a um nó anterior.
Opção A: loop IF simples
Adicione um nó Solicitação HTTP (Enquete):
| Configuração | Valor |
|---|---|
| Método | GET |
| URL | https://ocr.captchaai.com/res.php |
| Parâmetros de consulta | key, action=get, id={{ $json.request }}, json=1 |
Conecte-o a um nó IF:
| Condição | Valor |
|---|---|
| Valor 1 | {{ $json.status }} |
| Operação | Equal |
| Valor 2 | 1 |
- Saída verdadeira → Continue para a próxima ação (use token)
- Saída falsa -> Aguarde (5 segundos) -> de volta ao nó Poll
Opção B: nó de código
Para obter mais controle, use um nó Code:
const apiKey = 'YOUR_API_KEY';
const taskId = $input.first().json.request;
for (let i = 0; i < 24; i++) {
await new Promise(r => setTimeout(r, 5000));
const resp = await fetch(
`https://ocr.captchaai.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`
);
const data = await resp.json();
if (data.status === 1) {
return [{ json: { token: data.request, taskId } }];
}
if (data.request !== 'CAPCHA_NOT_READY') {
throw new Error(`CaptchaAI error: ${data.request}`);
}
}
throw new Error(`Task ${taskId} timed out`);
Nó 4: Use o token
Adicione outro nó Solicitação HTTP para enviar o formulário com o token resolvido:
| Configuração | Valor |
|---|---|
| Método | POST |
| URL | https://staging.example.com/submit |
| Tipo de conteúdo corporal | Form URL Encoded |
Os parâmetros do corpo incluem os dados do seu formulário e mais:
| Nome | Valor |
|---|---|
g-recaptcha-response |
{{ $json.token }} |
Armazenando a chave API com segurança
Use o sistema Credenciais da n8n:
- Vá para Credenciais -> Adicionar credencial -> Autenticação de cabeçalho
- Nome:
CaptchaAI API Key - Guarde a chave com segurança
Ou use variáveis de ambiente:
# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"
Referência em nós: {{ $env.CAPTCHAAI_API_KEY }}
Fluxo de trabalho de imagem CAPTCHA
Para CAPTCHAs de imagem, ajuste o nó Enviar:
| Nome | Valor |
|---|---|
method |
base64 |
body |
Imagem codificada em Base64 (de um nó ou URL anterior) |
Para converter um URL de imagem para base64 em n8n, adicione um nó Code antes de enviar:
const imageUrl = $input.first().json.imageUrl;
const resp = await fetch(imageUrl);
const buffer = Buffer.from(await resp.arrayBuffer());
const base64 = buffer.toString('base64');
return [{ json: { imageBase64: base64 } }];
Fluxo de trabalho de verificação de saldo
Crie um fluxo de trabalho separado que seja executado de acordo com uma programação:
Cron (daily at 9 AM)
↓
HTTP Request: GET res.php?action=getbalance
↓
IF: balance < 5
↓
Slack / Email: "CaptchaAI balance low: $X.XX"
n8n vs Zapier para resolução de CAPTCHA
| Recurso | n8n | Zapier |
|---|---|---|
| Suporte Loop/retry | Nativo (loops IF, nó Loop) | Limitado (somente caminhos) |
| Opção auto-hospedada | Sim (grátis) | Não (somente nuvem) |
| Nós de código | JavaScript completo | Limitado |
| Custo | Nuvem gratuita (auto-hospedada) ou paga | Pago (por tarefa) |
| Facilidade de configuração | Moderado | Fácil |
n8n é mais adequado para fluxos de trabalho CAPTCHA devido ao seu suporte a loop e nós de código.
Solução de problemas
| Problema | Causa | Correção |
|---|---|---|
| O ciclo de pesquisa funciona para sempre | Sem limite máximo de iteração | Adicione uma variável de contador, interrompa após 24 iterações |
CAPCHA_NOT_READY sem parar |
Tempo de espera muito curto antes da primeira votação | Aumente a espera inicial para 15 a 20 segundos |
| Token não disponível no próximo nó | Caminho de expressão errado | Verifique se {{ $json.token }} corresponde à saída |
| Credenciais não encontradas | Variável de ambiente não definida | Reinicie o n8n depois de definir env vars |
Perguntas frequentes
Posso processar vários CAPTCHAs em um fluxo de trabalho?
Sim. Use o nó Dividir em lotes para processar vários itens, cada um com seu próprio fluxo de envio → pesquisa → uso.
O n8n suporta catraca?
Sim. Mude method para turnstile e use sitekey em vez de googlekey.
Crie soluções CAPTCHA em seus fluxos de trabalho n8n
Obtenha sua chave API emcaptchaai.com.