EmailCheckerEmailChecker

Integração · Automação

EmailChecker + Zapier

Zapier conecta 7000+ apps, mas não faz loop de polling — e a API do EmailChecker é assíncrona. O padrão honesto aqui são dois Zaps: um acumula os emails e envia o lote num horário agendado, outro roda depois e consulta o lote. Não dá para validar e ler o resultado dentro do mesmo Zap.

Como integrar

5 passos pra conectar

  1. 1

    Acumule os emails numa planilha

    Zap 1: trigger do formulário (Typeform, Jotform, etc.) grava uma linha no Google Sheets ou Airtable. Nada é validado aqui — a validação acontece por lote, não por contato.

  2. 2

    Zap agendado monta e envia o lote

    Zap 2: Schedule by Zapier (uma vez por dia) → Google Sheets "Get Many Spreadsheet Rows" → Formatter (Utilities > Text to Line-item) para montar o array de emails → Webhooks by Zapier > Custom Request POST em https://app.emailchecker.email/api/v1/batch.

  3. 3

    Guarde o id do lote

    A resposta 201 traz data.id. Salve esse valor com Storage by Zapier (Set Value) ou numa aba de controle da planilha — é ele que o segundo Zap vai consultar.

  4. 4

    Zap de consulta agendado (o polling possível no Zapier)

    Zap 3: Schedule by Zapier de hora em hora → Storage by Zapier (Get Value) pega o id → Webhooks by Zapier GET em /api/v1/batch/{id} → Filter só continua se data.status for exatamente "completed". Sem loop nativo, o lote que ainda estiver processando simplesmente é reavaliado na próxima execução agendada.

  5. 5

    Distribua os resultados

    Looping by Zapier percorre data.emails e Paths bifurcam por result: deliverable vai pro CRM/ESP, risky pra uma aba de revisão, undeliverable e unknown pra lista de supressão.

Exemplo · JSON

{
  "zap_2_enviar_lote": {
    "action": "Webhooks by Zapier > Custom Request",
    "method": "POST",
    "url": "https://app.emailchecker.email/api/v1/batch",
    "headers": {
      "Authorization": "Bearer ec_live_SUA_CHAVE",
      "Content-Type": "application/json"
    },
    "data": {
      "emails": ["lead1@exemplo.com", "lead2@exemplo.com"],
      "name": "zapier-diario"
    },
    "resposta_201": { "data": { "id": "<uuid>", "size": 2 } },
    "proximo_passo": "Storage by Zapier > Set Value | key: ultimo_lote_id | value: data.id"
  },
  "zap_3_consultar_lote": {
    "action": "Webhooks by Zapier > Custom Request",
    "method": "GET",
    "url": "https://app.emailchecker.email/api/v1/batch/{{storage.ultimo_lote_id}}",
    "headers": { "Authorization": "Bearer ec_live_SUA_CHAVE" },
    "filter": "data status  (Text) Exactly matches  completed",
    "loop": "Looping by Zapier sobre data emails, Paths por result"
  }
}

A 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

Quando usar essa integração

Quarentena de leads novos

O lead entra numa planilha de espera e só é promovido a contato ativo no CRM depois que o lote da madrugada confirmar que o email é entregável.

Limpar listas de webinar antes do lembrete

Inscrições do Zoom/WebinarJam acumulam durante o dia; o lote roda à noite e só os entregáveis entram na sequência de lembretes.

Notificar o Slack com o resumo do lote

Quando o Zap de consulta encontra o lote concluído, manda no #vendas quantos vieram undeliverable — sinal de formulário sendo abusado ou base comprada.

Troubleshooting

Problemas comuns

Os erros que mais aparecem ao conectar o Zapier — e como resolver cada um.

Quero validar e usar o resultado no mesmo Zap

Não é possível, e forçar isso é a causa mais comum de Zap quebrado aqui. O lote leva de segundos a minutos e o Zapier não espera nem repete um passo até mudar de estado. Separe em dois Zaps agendados: um envia o lote e guarda o id, outro consulta. Se o volume for baixo e você precisar do resultado no mesmo fluxo, use n8n ou Make, que têm nó de espera e loop.

O Custom Request retorna 400 ou 422

O campo "Data" precisa receber JSON com a chave emails como array — {"emails": ["a@b.com"], "name": "lote"} — e o header Content-Type: application/json. Se você usar o passo POST simples (não o Custom Request), o Zapier envia os campos como form e a API rejeita. Um único email também vai dentro do array.

O Filter deixa passar lotes que ainda não terminaram

Use "(Text) Exactly matches" comparando data status com completed. "Contains" deixa passar qualquer coisa e o passo seguinte recebe data emails vazio, porque a lista de resultados só existe quando o lote conclui. Trate também failed e cancelled num Path separado para não reconsultar um id morto pra sempre.

Mais integrações

Outras ferramentas suportadas

Comece agora

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

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