Integrações e otimização

CRM e webhooks genéricos

Como ligar qualquer CRM, plataforma de pagamento ou automação ao postback — quando a URL com macros basta, quando é preciso um Merchant, e receitas para n8n, Make, Zapier e webhooks JSON.

Leitura de 8 min · atualizado em 24/09/2026

Qualquer sistema que consiga fazer uma requisição HTTP quando algo acontece pode mandar conversões ao Affilitrack. A pergunta é só quanto controle você tem sobre o formato.

Caso 1 — Você controla a URL (macros)

O sistema deixa você escrever a URL do webhook com as macros dele. Use o template Genérico / CRM:

https://app.affilitrack.com.br/pb?token=SEU_TOKEN&click_id={click_id}&tipo=venda&payout={valor}&txid={id_transacao}

e troque cada {…} pela macro do sistema. Exemplo para um CRM que expõe {{deal.custom.click_id}}, {{deal.value}} e {{deal.id}}:

…/pb?token=SEU_TOKEN&click_id={{deal.custom.click_id}}&tipo=venda&payout={{deal.value}}&txid={{deal.id}}

Pronto — sem Merchant.

Caso 2 — O sistema manda JSON fixo

O webhook envia um corpo próprio, com nomes que você não escolhe:

{"event":"deal.won","deal":{"id":8812,"amount":1500,"fields":{"click_id":"034U7a…"}},"stage":"won"}

Duas saídas:

  • Uma automação no meio (n8n, Make, Zapier, Pipedream): recebe o JSON, extrai os campos e chama a URL de postback do caso 1. É o caminho mais flexível e permite filtrar (só stage=won), converter moeda, etc.
  • Um Merchant quando os campos estão no primeiro nível do JSON: em Merchants › mapeamento, coloque o nome do campo do identificador em Parâmetros que carregam o tracking, o do valor em Parâmetro do valor, o do ID em Parâmetro do ID da transação, e crie regras para o evento (stage = won → SALE). Campos aninhados (deal.fields.click_id) precisam da automação.

Receita: n8n / Make / Zapier

  1. Gatilho: webhook do CRM (negócio ganho) ou da plataforma de pagamento.
  2. Filtro: só continua se o status é o de venda aprovada.
  3. HTTP Request (GET) para: https://app.affilitrack.com.br/pb?token=SEU_TOKEN&click_id={{ $json.deal.fields.click_id }}&tipo=venda&payout={{ $json.deal.amount }}&txid={{ $json.deal.id }}
  4. Opcional: um segundo ramo que, se a resposta for orphan, avisa a equipe (o lead foi fechado sem click_id).

Para o lead na entrada (antes da venda), o mesmo fluxo com tipo=lead e o ID do contato como txid.

CRMs de WhatsApp

O click_id chega na primeira mensagem como | cid:034U7a… (veja WhatsApp). A automação precisa de um passo a mais: uma expressão regular cid:([A-Za-z0-9]{22}) sobre o texto da mensagem, gravando o resultado num campo do contato para usar no postback quando o negócio fechar.

O CRM de leads do painel

Se você não tem CRM, o próprio painel tem um kanban em Leads do CRM. Leads podem ser criados pela API (POST /api/leads com name, phone, email, value, click_id, stage) por uma automação a partir do formulário, e movidos até Vendido — o estágio marca o lead, e a conversão é registrada pelo postback correspondente. Veja CRM de leads.

Boas práticas

  • Sempre txid: o ID do negócio, do pedido ou do contato. Sem ele, reprocessar um webhook duplica.
  • Idempotência do lado deles: muitos sistemas reenviam webhooks em caso de timeout. O Affilitrack responde em milissegundos e devolve 200 até para duplicate, justamente para o reenvio parar.
  • Não mande dados pessoais: o postback precisa de click_id, tipo, valor e txid. Nome, e-mail e telefone do comprador não têm função no Affilitrack e não devem ir na URL.
  • Teste com o Simulador antes de conectar o sistema real — a URL, o token e o tipo ficam validados independentemente do CRM.

Esta página foi útil?

Leia também