Integração · Automação
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
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.
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.
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.
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.
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ã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
Scenario semanal puxa os contatos do CRM, manda tudo num lote, espera concluir e devolve result e score pra cada registro.
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.
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
Os erros que mais aparecem ao conectar o Make (Integromat) — e como resolver cada um.
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.
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.
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.
Comece grátis com 500 créditos. Sem cartão, sem compromisso.