Pular para o conteúdo

Integrar com Zapier

O Zapier não tem (ainda) um app oficial do Indutiva CRM, mas integrar é direto via o módulo Webhooks by Zapier + API Key. Em 10 minutos você tem leads do seu site indo automaticamente pro CRM.

Cenário comum: lead form → CRM

Trigger: novo lead chega num Typeform / Google Forms / Tally / formulário do site Action: criar contato no CRM, opcionalmente criar um deal

  1. Gere uma API Key dedicada pro Zapier

    No CRM: Configurações → Integrações → API Keys → Nova.

    • Nome: Zapier — Lead Forms
    • Scopes: contacts:write, deals:write, pipelines:read (pra saber stage inicial)
    • Rate limit: 100/min (padrão é suficiente — Zapier é eventos esparsos)

    Copie o segredo crm_live_xxxx....

  2. No Zapier, crie um novo Zap

    • Trigger: seu form (Typeform, Tally, Google Forms, etc.) → “New submission”
    • Action: Webhooks by Zapier → “POST”
  3. Configure o POST

    • URL: https://app.indutivacrm.com.br/api/v1/contacts
    • Payload Type: JSON
    • Data:
      FieldValue
      firstName{{trigger.first_name}}
      lastName{{trigger.last_name}}
      email{{trigger.email}}
      phone{{trigger.phone}}
    • Headers:
      HeaderValue
      X-API-Keycrm_live_... (cole o segredo)
      Content-Typeapplication/json
  4. Teste

    Click Test action. Zapier vai criar um contato de teste no seu CRM. Se receber 201 Created, está pronto.

    Se receber 409 duplicate_email, é porque já existe — veja tratamento abaixo.

  5. (Opcional) Crie um deal automaticamente

    Adicione uma segunda action Webhooks → POST:

    • URL: https://app.indutivacrm.com.br/api/v1/deals
    • Data:
      {
      "title": "Lead via formulário — {{trigger.first_name}}",
      "pipelineId": "ckl4p01...",
      "stageId": "ckl4s01...",
      "contactId": "{{step1.id}}"
      }

    Pra saber pipelineId e stageId, faça antes uma chamada manual com GET /pipelines (ou veja na URL da página do pipeline no CRM).

Upsert (em vez de criar)

Se o lead já existe (mesmo email), você quer atualizar em vez de criar. Trate o 409:

  1. Adicione uma action Webhooks → Custom Request:
    • Method: PATCH (dinamicamente, ver abaixo)
  2. Filter antes: só roda se Step 1 retornou existingContactId
  3. URL: https://app.indutivacrm.com.br/api/v1/contacts/{{step1.existingContactId}}
  4. Data: mesmos campos do POST

Pulling: ler do CRM pra mandar pra outro lugar

Cenário: todo dia às 9h, exportar deals fechados ontem pra uma planilha.

  • Trigger: Schedule by Zapier → daily 09:00
  • Action 1: Webhooks by Zapier → GET
    • URL: https://app.indutivacrm.com.br/api/v1/deals?isWon=true&closedAtFrom={{zap_meta_human_now_minus_1d}}T00:00:00Z
    • Headers: X-API-Key: crm_live_...
  • Action 2: Looping by Zapier → “Create Loop From Line Items”
    • Input: response.data
  • Action 3 (dentro do loop): Google Sheets → Create Row
    • Map os campos do deal (id, title, value, closedAt, contact.name)

Erros comuns

ErroCausaFix
401 invalid_api_keyChave errada/revogadaConfira no painel; gere nova se necessário
403 insufficient_scopeFaltam scopes na keyCrie key nova com scopes corretos
429 rate_limit_exceededZap rodando em loop sem throttleAdicione “Delay by Zapier” entre actions, ou aumente rate limit
400 validation_failedCampo do form mal mapeadoVeja details na resposta — geralmente email inválido

Segurança no Zapier

  • Não compartilhe a API Key fora dos campos de header do Zap (não cole em fields visíveis)
  • Use uma chave por Zap (ou um grupo de Zaps relacionados). Fica mais fácil revogar surgicalmente
  • Configure expiração se a integração é temporária (ex: campanha de 90 dias)
  • Monitore o drawer de logs da chave no CRM pra ver se o Zap está rodando como esperado