EmailCheckerEmailChecker

Como integrar validação de email com n8n (tutorial)

Aprenda a construir um workflow n8n que valida emails em tempo real, roteia leads por qualidade e evita dados inválidos no CRM — sem escrever uma linha de código.

Por João Costa (Engenharia)·Publicado em 01/06/2026·8 min de leitura

Como integrar validação de email com n8n (tutorial)

Se você trabalha com RevOps ou operações de marketing, já deve ter sentido o custo de um CRM cheio de emails inválidos: bounce rate alto, deliverability comprometida, SDRs perdendo tempo qualificando contatos que nunca vão responder porque o endereço simplesmente não existe.

A combinação entre n8n e EmailChecker resolve isso na entrada do pipeline — antes de qualquer dado sujo chegar ao HubSpot, Salesforce ou à fila de cadência.

Por que n8n + EmailChecker

O n8n é um orquestrador de workflows self-hosted (ou cloud) que conecta qualquer API via nodes visuais. Ele é particularmente forte em cenários de ops porque permite lógica condicional, retry nativo, e tratamento de erro sem depender de Zapier ou Make para cada integração.

O EmailChecker expõe uma API REST simples que retorna, além do status básico (deliverable, risky, undeliverable), dados de MX, detecção de disposable providers, e score de confiança — informação suficiente para decisões de roteamento granulares.

O caso de uso real que vamos construir aqui: um formulário de captura de leads envia um webhook para o n8n, o workflow valida o email, e o resultado determina o destino — CRM para leads bons, fila de revisão manual para risky, rejeição silenciosa para lixo.

Pré-requisitos

  • n8n rodando (self-hosted via Docker ou conta n8n Cloud)
  • Chave de API do EmailChecker — disponível na documentação da API REST
  • Acesso ao CRM de destino (HubSpot, Salesforce, Pipedrive — qualquer um com node ou HTTP Request)
  • Opcional: workspace Slack para notificações de revisão manual

Passo 1: Criar o workflow novo

Abra o n8n e clique em New Workflow. Dê um nome descritivo, por exemplo Lead Validation — EmailChecker. Ative o modo de edição e mantenha o workflow desativado por enquanto — você vai ativar só depois de testar.

Salve o workflow vazio antes de adicionar nodes. O n8n salva estado localmente e perder configuração de node por acidente é frustrante.

Passo 2: Webhook trigger

Adicione o node Webhook como trigger. Configure:

  • HTTP Method: POST
  • Path: /validate-lead (ou qualquer slug que faça sentido no seu contexto)
  • Response Mode: Last Node — o workflow vai responder com o resultado do último node executado, útil para feedback síncrono ao formulário

Anote a URL de produção gerada. Ela tem o formato https://seu-n8n.dominio.com/webhook/validate-lead. Essa é a URL que o formulário ou sistema upstream vai chamar.

O body esperado no POST:

{
  "email": "contato@empresa.com",
  "name": "Maria Silva",
  "source": "landing-page-produto-x"
}

O campo email é obrigatório para o próximo passo. Os demais são passados adiante para o CRM.

[Captura: n8n workflow canvas mostrando Webhook node configurado com path /validate-lead e método POST]

Passo 3: HTTP Request node para /v1/validate/single

Adicione um node HTTP Request conectado ao Webhook. Essa é a chamada para a API do EmailChecker.

Configure o node com os seguintes parâmetros:

  • Method: GET
  • URL: https://api.emailchecker.com.br/v1/validate/single
  • Authentication: Header Auth
    • Name: X-Api-Key
    • Value: {{ $env.EMAILCHECKER_API_KEY }} — use variável de ambiente, nunca hardcode a chave
  • Query Parameters:
    • email: {{ $json.body.email }}

O JSON completo da configuração do node para importar diretamente no n8n:

{
  "parameters": {
    "method": "GET",
    "url": "https://api.emailchecker.com.br/v1/validate/single",
    "authentication": "headerAuth",
    "headerParameters": {
      "parameters": [
        {
          "name": "X-Api-Key",
          "value": "={{ $env.EMAILCHECKER_API_KEY }}"
        }
      ]
    },
    "queryParameters": {
      "parameters": [
        {
          "name": "email",
          "value": "={{ $('Webhook').item.json.body.email }}"
        }
      ]
    },
    "options": {
      "timeout": 10000,
      "response": {
        "response": {
          "responseFormat": "json"
        }
      }
    }
  },
  "type": "n8n-nodes-base.httpRequest",
  "name": "EmailChecker Validate"
}

A resposta da API retorna um objeto com o campo result contendo deliverable, risky ou undeliverable, além de score, mx_valid, is_disposable, e outros metadados úteis. Consulte a referência completa dos campos no guia de validação de email via API.

[Captura: n8n HTTP Request node com URL da API EmailChecker e header de autenticação configurados]

Passo 4: Switch node baseado em result

Adicione um node Switch conectado ao HTTP Request. O Switch roteia o fluxo para diferentes branches com base no valor de result.

Configure três regras no modo Rules:

Regra Campo Operador Valor Branch
1 {{ $json.result }} equals deliverable Output 0
2 {{ $json.result }} equals risky Output 1
3 {{ $json.result }} equals undeliverable Output 2

Marque a opção Fall Through como desativada — qualquer resultado inesperado da API deve cair em um branch de fallback que você vai adicionar depois.

Dica: o Switch no n8n funciona por ordem de avaliação. Coloque deliverable primeiro porque é o caminho mais comum e isso evita avaliações desnecessárias.

Passo 5: Roteamento por branch

Branch 0 — Deliverable: enviar para o CRM

Conecte o Output 0 do Switch a um node HTTP Request (ou ao node nativo do seu CRM). Para HubSpot, por exemplo, use o node HubSpot com a ação Create/Update Contact.

Passe os campos do webhook original junto com os metadados da validação:

  • email: {{ $('Webhook').item.json.body.email }}
  • firstname: {{ $('Webhook').item.json.body.name }}
  • lead_source: {{ $('Webhook').item.json.body.source }}
  • email_validation_score: {{ $('EmailChecker Validate').item.json.score }}

Adicionar o score de validação como propriedade customizada no CRM permite filtrar leads por qualidade depois, sem revalidar.

Branch 1 — Risky: fila de revisão manual

Conecte o Output 1 a um node Slack (ou Teams, ou qualquer canal de notificação). Configure uma mensagem no canal #ops-lead-review:

Novo lead para revisao manual:
Email: {{ $('Webhook').item.json.body.email }}
Score: {{ $('EmailChecker Validate').item.json.score }}
MX valido: {{ $('EmailChecker Validate').item.json.mx_valid }}
Disposable: {{ $('EmailChecker Validate').item.json.is_disposable }}
Fonte: {{ $('Webhook').item.json.body.source }}

Leads risky geralmente incluem emails de domínios suspeitos, endereços com problemas de configuração MX, ou domínios de alto catchall. Uma revisão humana rápida evita tanto perder um lead bom quanto sujar o CRM.

Branch 2 — Undeliverable: rejeitar

Conecte o Output 2 a um node Respond to Webhook com status 400 e body:

{
  "error": "invalid_email",
  "message": "O endereço de email fornecido não pôde ser validado."
}

Isso retorna feedback síncrono ao formulário, que pode exibir a mensagem de erro ao usuário em tempo real.

[Captura: n8n canvas com Switch node e três branches conectados — CRM node, Slack node, e Respond to Webhook node]

Passo 6: Error handling

O n8n tem tratamento de erro nativo. Ative o Error Workflow nas configurações do workflow para capturar falhas sistêmicas (timeout da API, rede, etc).

No node HTTP Request do EmailChecker, configure:

  • Retry On Fail: ativado
  • Max Tries: 3
  • Wait Between Tries: 1000ms

Para o caso de a API do EmailChecker não responder (timeout de rede, manutenção), adicione um node IF antes do Switch para verificar se o HTTP Request retornou um status 200:

{{ $json.statusCode === 200 }}

Se false, direcione para o branch de fallback — que pode ser um node de notificação para ops ou simplesmente deixar o lead passar para revisão manual com flag validation_skipped: true.

Criar um workflow separado de erro (Settings > Error Workflow) que envia alerta no Slack quando o workflow principal falha é boa prática para ambientes de produção.

[Captura: configuracao de retry no HTTP Request node e IF node de fallback para timeout da API]

Padroes avancados

Validacao em batch

Se o caso de uso for validar uma lista inteira de emails (importacao de CSV, sincronizacao de base legada), substitua o Webhook trigger por um Schedule trigger e use o node Read Binary File ou Spreadsheet File para carregar o arquivo.

Adicione um node Split In Batches com batch size de 50 itens antes do HTTP Request. Isso distribui as chamadas e respeita os rate limits da API. Consulte os limites do seu plano na documentação da API REST.

O fluxo batch fica assim:

Schedule → Read File → Split In Batches → HTTP Request (EmailChecker) → Switch → [branches]

Para exportar o resultado, adicione um node Spreadsheet File no final de cada branch para gerar um CSV segmentado por status, ou use o node Google Sheets para escrever diretamente em uma planilha compartilhada com a equipe.

Webhook assincrono

Para formularios de alta frequencia onde latencia importa, mude o Response Mode do Webhook trigger para Immediately. O n8n responde com 202 Accepted antes de terminar o workflow, e a validacao acontece em background.

Nesse modelo, o feedback de erro nao pode ser sincrono — use um campo de status no seu banco de dados (email_status: pending → deliverable/risky/undeliverable) e atualize via uma segunda chamada de API ao seu sistema apos a validacao completar.

Essa arquitetura aguenta volumes maiores sem travar o formulario do usuario, mas exige que o sistema upstream saiba lidar com estado pending. Se em vez de polling voce vai receber o resultado por webhook, vale conhecer os padroes de arquitetura para webhooks de validacao antes de montar o consumer.

Para mais detalhes sobre os endpoints e parametros da API do EmailChecker, acesse a página da integração nativa com n8n — documentação específica com exemplos de payload completos.

Conclusao

Com seis nodes e menos de trinta minutos de configuracao, voce tem um pipeline de validacao de email rodando em producao que:

  • Bloqueia emails invalidos antes de chegarem ao CRM
  • Roteia leads duvidosos para revisao humana em vez de descartar cegamente
  • Retorna feedback sincrono para o usuario final
  • Registra metadados de qualidade no CRM para segmentacao futura

O custo de manter emails ruins no pipeline — bounce rate, reputacao de dominio, tempo de SDR — e muito maior do que o custo de validar na entrada. Com n8n e EmailChecker, essa validacao vira uma camada invisivel que simplesmente funciona.

Proximos passos: explore o endpoint /v1/validate/batch para higienizacao de bases historicas, e consulte o guia de validacao de email via API para referencia completa dos campos de resposta.

Comece agora

Pronto pra parar de mandar email pra endereço morto?

Comece grátis com 500 créditos. Sem cartão, sem compromisso.