Integração · Automação
O n8n é uma plataforma de automação visual e é a ferramenta que melhor se encaixa no fluxo assíncrono do EmailChecker: um nó HTTP Request envia o lote, um nó Wait segura o fluxo, outro HTTP Request consulta o lote e um IF fecha o loop até o status ficar "completed". Depois disso um Switch bifurca cada email pelo campo result.
Como integrar
Antes da validação, agregue os endereços num único array (nó Code, Aggregate ou Item Lists). A API valida por lote — de 1 a 100.000 emails por chamada — e não tem endpoint de validação unitária.
Method POST, URL https://app.emailchecker.email/api/v1/batch. Em Authentication use Generic Credential Type > Header Auth com Name = Authorization e Value = Bearer ec_live_... Body JSON: {"emails": [...], "name": "..."}. A resposta 201 traz o id em {{ $json.data.id }}.
Conecte um nó Wait (30 segundos) e depois um HTTP Request GET em https://app.emailchecker.email/api/v1/batch/{{ ... }}.data.id com o mesmo header. O EmailChecker não envia callback: é o polling que descobre o fim do processamento.
Nó IF comparando {{ $json.data.status }} com "completed". Saída false liga de volta no nó Wait, fechando o loop de polling. Trate "failed" e "cancelled" numa saída de erro para o fluxo não girar eternamente.
Com o lote concluído, use Split Out no campo data.emails e um Switch em {{ $json.result }}: deliverable segue pro CRM, risky vai pra revisão manual, undeliverable e unknown entram na lista de supressão.
Exemplo · HTTP
# 1) Nó "Enviar lote" — HTTP Request
POST https://app.emailchecker.email/api/v1/batch
Authorization: Bearer ec_live_SUA_CHAVE
Content-Type: application/json
{
"emails": {{ JSON.stringify($json.emails) }},
"name": "n8n-{{ $now.toISODate() }}"
}
# 201 -> { "data": { "id": "<uuid>", "size": 1200, ... } }
# 2) Nó Wait (30s) e então o nó "Consultar lote" — HTTP Request
GET https://app.emailchecker.email/api/v1/batch/{{ $('Enviar lote').item.json.data.id }}
Authorization: Bearer ec_live_SUA_CHAVE
# 3) Nó IF: {{ $json.data.status }} is equal to completed
# false -> liga de volta no nó Wait (loop de polling)
# true -> Split Out em "data.emails" e Switch em {{ $json.result }}
# deliverable -> CRM | risky -> revisão | undeliverable/unknown -> supressãoA API do EmailChecker é REST com Bearer auth (`Authorization: Bearer ec_live_...`) na base `https://app.emailchecker.email` e é assíncrona: você envia o lote em `POST /api/v1/batch` e busca o resultado em `GET /api/v1/batch/{id}` até o `status` virar `completed`. Não existe endpoint de validação unitária nem webhook de retorno — quem descobre que o lote terminou é o polling. Limites: 1 a 100.000 emails por lote, 300 requisições/minuto e 10.000/hora. A API é exclusiva do plano Gold.
Casos de uso
Leads do Typeform/Tally caem numa tabela de espera; um Schedule Trigger junta o que chegou na última hora, manda um lote só e libera pro CRM apenas os deliverable.
Trigger "Sheet updated" ou agendado → agrega a coluna de emails → envia o lote → aguarda o resultado → grava result e score de volta em cada linha.
Antes de mandar a campanha pro Mailchimp/Brevo, valide a lista inteira num lote na véspera — reduz bounce rate drasticamente sem travar o fluxo de captura.
Troubleshooting
Os erros que mais aparecem ao conectar o n8n — e como resolver cada um.
Esse endpoint não existe. A API é assíncrona: POST https://app.emailchecker.email/api/v1/batch para enviar e GET https://app.emailchecker.email/api/v1/batch/{id} para buscar o resultado. Confira também o host — api.emailchecker.email e api.emailchecker.com.br não existem, o correto é app.emailchecker.email.
A lista de resultados só é preenchida quando data.status = "completed". Se o IF deixou passar um lote em pending/processing, o Split Out recebe array vazio. Compare o status antes de ramificar e mantenha o Wait em pelo menos 30 segundos: rajada de polling estoura o limite de 300 requisições/minuto.
O header Authorization foi montado errado. Em Header Auth o valor precisa ser exatamente "Bearer ec_live_..." (com o espaço). Se colar só a chave, vem 401. Confira também se não sobrou espaço no fim ao copiar do dashboard e se a conta está no plano Gold — a API é exclusiva dele.
Comece grátis com 500 créditos. Sem cartão, sem compromisso.