EmailCheckerEmailChecker

Integração · Automação

EmailChecker + Make (Integromat)

Make (antigo Integromat) tem Repeater, Sleep e Data Store — tudo que o fluxo assíncrono do EmailChecker precisa. O scenario envia o lote num módulo HTTP, espera dentro de um Repeater, consulta o lote e só segue quando o status vira "completed"; daí um Iterator e um Router distribuem cada email pelo result.

Como integrar

5 passos pra conectar

  1. 1

    Agregue os emails num array

    Use Array Aggregator (ou Tools > Set variable) para montar a lista antes de chamar a API. Cada chamada aceita de 1 a 100.000 endereços — a validação é por lote, nunca por contato.

  2. 2

    HTTP > Make a Request: POST /api/v1/batch

    URL https://app.emailchecker.email/api/v1/batch, Method POST, Header Authorization = Bearer ec_live_..., Body type Raw, Content type JSON e "Parse response" = Yes. Guarde o {{2.data.id}} da resposta 201.

  3. 3

    Repeater + Sleep para esperar

    Flow Control > Repeater (Repeats: 20) seguido de Tools > Sleep (30 segundos). O EmailChecker não dispara webhook de retorno: é esse ciclo que descobre quando o lote terminou.

  4. 4

    GET /api/v1/batch/{id} e filtro por status

    Dentro do Repeater, um HTTP > Make a Request GET em https://app.emailchecker.email/api/v1/batch/{{2.data.id}}. No link de saída, um Filter com {{5.data.status}} Equal to completed. Enquanto for pending ou processing o bundle para ali e a próxima repetição tenta de novo; failed e cancelled vão pra rota de erro.

  5. 5

    Iterator + Router pelo result

    Iterator sobre {{5.data.emails}} e um Router com filtros: deliverable segue pro CRM, risky pra revisão, undeliverable e unknown pra supressão. Para lotes muito grandes, guarde o id num Data Store e faça a consulta num segundo scenario agendado.

Exemplo · HTTP

# Módulo 2 — HTTP > Make a Request (envia o lote)
POST https://app.emailchecker.email/api/v1/batch
Authorization: Bearer ec_live_SUA_CHAVE
Content-Type: application/json

{
  "emails": {{1.array}},
  "name": "make-{{formatDate(now; "YYYY-MM-DD")}}"
}

# 201 -> {{2.data.id}}

# Módulos 3 e 4 — Repeater (20 repetições) + Tools > Sleep (30s)

# Módulo 5 — HTTP > Make a Request (consulta o lote)
GET https://app.emailchecker.email/api/v1/batch/{{2.data.id}}
Authorization: Bearer ec_live_SUA_CHAVE

# Filter no link de saída do módulo 5:
#   {{5.data.status}}  Equal to  completed
# Módulo 6 — Iterator sobre {{5.data.emails}}
# Módulo 7 — Router com filtros em {{6.result}}:
#   deliverable -> CRM | risky -> revisão | undeliverable, unknown -> supressão

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

Higienização agendada da base inteira

Scenario semanal puxa os contatos do CRM, manda tudo num lote, espera concluir e devolve result e score pra cada registro.

Sync de qualidade com o CRM

HubSpot contacts criados no dia entram num lote noturno; ao concluir, o scenario atualiza a propriedade "email_status" de cada contato de volta no HubSpot.

Pipeline multi-source de captura

Typeform, Facebook Ads e o form do site alimentam a mesma tabela; um scenario agendado valida tudo de uma vez e só o que é entregável segue pro destino final.

Troubleshooting

Problemas comuns

Os erros que mais aparecem ao conectar o Make (Integromat) — e como resolver cada um.

O scenario roda as 20 repetições mesmo depois do lote concluir

O Repeater não para sozinho. Se o desperdício incomodar, quebre em dois scenarios: o primeiro envia o lote e grava o id num Data Store; o segundo roda a cada 5 minutos, lê o Data Store, consulta o lote e apaga o registro quando o status vira completed. Também evita estourar o limite de 300 requisições por minuto.

O módulo HTTP retorna o corpo como texto e {{5.data.status}} não existe

Marque "Parse response: Yes" nos dois módulos HTTP. Sem isso o Make entrega a resposta como string e nenhum mapeamento de data.id, data.status ou data.emails aparece no painel. Confira também o índice do módulo no mapeamento — ele muda quando você reordena o scenario.

O Iterator não devolve nada mesmo com o lote concluído

data.emails só vem preenchido quando data.status = "completed". Se o Filter estiver no lugar errado (ou ausente), o Iterator recebe array vazio de um lote em processing. Garanta o Filter antes do Iterator e trate failed/cancelled numa rota própria do Router.

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.