Developers
Recipes v1
JSON
Zapier + Make

Receitas de integração prontas para validar ponta a ponta.

Conecte CRM, formulários, automações no-code e BI ao DestrIA usando payloads testáveis, mapeamento de campos, tratamento de 409/429 e checklists de produção.

Zapier
12–18 min

Zapier — novo lead do CRM para contato + campanha

Receita para capturar leads de HubSpot, Pipedrive, Salesforce ou formulário e sincronizar no DestrIA com enrollment idempotente.

Use quando um novo lead qualificado entra no CRM e precisa iniciar uma sequência de outbound sem criar duplicados nem ignorar supressões.

Pré-requisitos

  • API key ativa no DestrIA Mailer com permissão de contatos e campanhas.
  • ID ou local_id da campanha de destino.
  • Trigger do Zapier com email do lead disponível no payload.
  • Campo estável de origem para local_id, como contact.id, lead.id ou deal.id.

Passo a passo operacional

1Trigger

Escolha o gatilho do CRM, por exemplo New Contact, New Lead, Updated Deal Stage ou New Form Submission.

2Filter obrigatório

Continue apenas quando email existir e o estágio do lead for elegível para prospecção. Isso evita chamadas 422 e contatos fora de critério.

3Action 1 — Webhooks by Zapier / Custom Request

Envie POST /contacts com Authorization Bearer, Content-Type JSON e local_id derivado do CRM para garantir idempotência.

4Action 2 — Webhooks by Zapier / Custom Request

Envie POST /campaigns/{campaign_id}/enroll usando o mesmo email e um Idempotency-Key baseado no ID do lead.

5Paths opcionais

Separe respostas 201/200 como sucesso, 409 como opt-out/supressão a registrar no CRM e 429/5xx como retry automático do Zapier.

Mapeamento de campos

OrigemDestino DestrIAObrigatórioNotas
lead.emailemailSimNormalizado em lowercase; precisa ser email válido.
lead.idlocal_idSimUse prefixo de origem: hubspot_123, pipedrive_456, salesforce_789.
lead.firstnamefirst_nameNãoPreserva o valor existente quando omitido.
lead.lastnamelast_nameNãoÚtil para personalização de sequência.
company.namecompanyNãoPode vir de conta, organização ou domínio enriquecido.
lead.lifecycle_stageadd_tags[]NãoNormalize para tags curtas como mql, sql, webinar.
lead.sourcemetadata.sourceNãoGuarde UTM/canal sem sobrescrever campos internos.
lead.owner_emailcustom_fields.owner_emailNãoPermite segmentar relatórios ou roteamento posterior.

Upsert do contato

Cria ou atualiza o contato sem duplicar quando o Zap rodar novamente.

curl -X POST "https://seu-projeto.lovable.app/api/v1/contacts" \
  -H "Authorization: Bearer dstr_SUA_API_KEY_AQUI" \
  -H "Accept: application/json" \
  -H "X-DestrIA-Version: 2025-06-01" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "{{lead.email}}",
  "local_id": "hubspot_{{lead.id}}",
  "first_name": "{{lead.firstname}}",
  "last_name": "{{lead.lastname}}",
  "company": "{{company.name}}",
  "add_tags": [
    "zapier",
    "{{lead.lifecycle_stage}}"
  ],
  "metadata": {
    "source": "{{lead.source}}",
    "crm_url": "{{lead.url}}"
  },
  "custom_fields": {
    "owner_email": "{{lead.owner_email}}"
  }
}'

Enrollment na campanha

Inscreve o lead na sequência. Use Idempotency-Key no Zap para retries seguros.

curl -X POST "https://seu-projeto.lovable.app/api/v1/campaigns/{campaign_id}/enroll" \
  -H "Authorization: Bearer dstr_SUA_API_KEY_AQUI" \
  -H "Accept: application/json" \
  -H "X-DestrIA-Version: 2025-06-01" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "{{lead.email}}",
  "first_name": "{{lead.firstname}}",
  "custom_fields": {
    "crm_id": "{{lead.id}}",
    "source": "zapier"
  }
}'

Checklist de validação

  • Teste com um lead real e confirme resposta 200 ou 201 no upsert.
  • Rode o mesmo teste duas vezes e confirme que o contato não duplicou.
  • Teste um contato descadastrado/suprimido e confirme tratamento de 409 no Zap.
  • Confirme no histórico do Zap que Authorization não aparece em campos de log customizados.
  • Valide que tags vazias ou valores com espaços são normalizados antes do envio.

Tratamento de falhas

  • 400/422: revise mapeamento de email, JSON e tipos de metadata/custom_fields.
  • 401: gere nova API key e atualize o campo Authorization do Zap.
  • 409: não force reativação; marque o lead como opt-out/suppressed no CRM.
  • 429/5xx: habilite replay/retry do Zapier e preserve Idempotency-Key por lead.