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.
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
- Gatilho: webhook do CRM (negócio ganho) ou da plataforma de pagamento.
- Filtro: só continua se o status é o de venda aprovada.
- 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 }} - Opcional: um segundo ramo que, se a resposta for
orphan, avisa a equipe (o lead foi fechado semclick_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
200até paraduplicate, justamente para o reenvio parar. - Não mande dados pessoais: o postback precisa de
click_id, tipo, valor etxid. 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.