Resposta rápida: para integrar n8n, Hotmart, GA4 e CAPI, use o webhook da Hotmart como gatilho de venda aprovada, trate os dados no n8n, envie um evento purchase para o GA4 Measurement Protocol e envie um evento Purchase para a Meta Conversions API. O ponto mais importante é usar IDs consistentes, preservar origem da campanha e manter logs para comparar Hotmart, GA4 e Meta.
Esse fluxo é útil para quem vende infoproduto pela Hotmart, usa landing page própria e quer enxergar melhor quais campanhas geram venda.
Mas vale um aviso importante: essa integração não substitui a Hotmart como fonte da verdade financeira. A Hotmart confirma a venda. GA4 e Meta ajudam a entender comportamento, atribuição e otimização de campanha.
- Hotmart: envia o webhook quando a compra é aprovada.
- n8n: recebe, limpa, transforma e distribui os dados.
- GA4: recebe o evento
purchasepara análise de canais e comportamento. - Meta CAPI: recebe o evento
Purchasepara otimização e atribuição no Meta Ads. - Deduplicação: evita contar a mesma compra duas vezes quando Pixel e CAPI enviam o mesmo evento.
Como funciona o fluxo Hotmart -> n8n -> GA4 -> CAPI
O fluxo básico tem quatro camadas.
Leitura rápida: cada ferramenta tem uma função. O erro comum é esperar que uma única ferramenta resolva tudo.
| Camada | Função no rastreamento | Exemplo de dado |
|---|---|---|
| Hotmart | Confirmar compra real | produto, valor, moeda, status, comprador |
| n8n | Receber e tratar o evento | normalização, filtros, logs, chamadas HTTP |
| GA4 | Analisar aquisição e comportamento | purchase, transaction_id, value, items |
| Meta CAPI | Enviar conversão ao Meta Ads | Purchase, event_id, user_data, custom_data |
Na prática, o caminho fica assim:
- A pessoa clica no anúncio.
- Ela entra na sua landing page com UTMs.
- O botão de compra leva
src,sckou parâmetros de campanha para a Hotmart. - A compra é aprovada na Hotmart.
- A Hotmart envia um webhook para o n8n.
- O n8n filtra apenas compras aprovadas.
- O n8n envia
purchasepara o GA4. - O n8n envia
Purchasepara a Meta CAPI. - O fluxo salva logs de sucesso e erro.
- Você compara Hotmart, GA4, Meta Events Manager e Ads Manager.
Esse é o mesmo raciocínio dos guias de n8n para marketing e rastreamento de vendas da Hotmart no Meta Ads, só que agora com a ponte completa.
Quando vale criar essa integração
Vale usar n8n com Hotmart, GA4 e CAPI quando você já tem tráfego pago, venda na Hotmart e precisa reduzir buracos de medição.
Ela faz sentido principalmente quando:
- você usa página própria antes do checkout;
- a compra acontece fora do seu domínio;
- o Pixel sozinho não está registrando todas as vendas;
- você quer enviar valor real da compra;
- você quer auditar
src,scke UTMs; - você quer comparar Meta Ads, GA4 e Hotmart;
- você precisa de logs para investigar falhas.
Não é o melhor primeiro passo se você ainda não validou oferta, checkout e campanha. Antes de montar CAPI própria, configure o básico: Pixel, UTMs, parâmetros de campanha, GA4 e eventos principais.
Pré-requisitos antes de montar o workflow
Antes de abrir o n8n, separe estes itens.
| Item | Onde encontrar | Por que importa |
|---|---|---|
| URL do webhook do n8n | Node Webhook | Receber evento da Hotmart |
| Token da Hotmart ou segredo do webhook | Hotmart Developers/configurações | Validar origem quando disponível |
| Measurement ID do GA4 | Admin do GA4 | Identificar o fluxo de dados |
| API secret do GA4 | Admin do GA4 | Autorizar Measurement Protocol |
| Pixel ID da Meta | Gerenciador de Eventos | Identificar o dataset/pixel |
| Access token da Meta CAPI | Gerenciador de Eventos | Enviar evento servidor |
Padrão de transaction_id |
Hotmart/n8n | Auditar compra e evitar duplicidade |
Padrão de event_id |
Pixel/n8n | Deduplicar Pixel e CAPI |
| Tabela de logs | Sheets, banco ou storage | Investigar falhas depois |
Segundo a documentação do n8n, o node Webhook serve para receber chamadas externas e iniciar workflows. O node HTTP Request é o caminho natural para enviar dados para APIs externas, como GA4 Measurement Protocol e Meta Conversions API.
Passo 1: crie o webhook da Hotmart no n8n
No n8n, crie um workflow com um node Webhook.
Configuração simples:
- método:
POST; - path: algo difícil de adivinhar;
- resposta: 200 rápido para a Hotmart;
- modo de teste: use apenas enquanto valida;
- URL de produção: use quando ativar o workflow.
Depois, cadastre essa URL na Hotmart para receber eventos do produto.
O ideal é que o webhook receba eventos de compra e que o n8n filtre apenas o que realmente representa venda aprovada. Não envie conversão para GA4 ou Meta quando o status for boleto gerado, carrinho abandonado, compra recusada ou reembolso.
Passo 2: filtre somente compra aprovada
Nem todo evento recebido deve virar conversão.
No n8n, use um node IF ou Switch para manter apenas eventos como:
- compra aprovada;
- pagamento confirmado;
- assinatura aprovada, se esse for seu modelo;
- renovação aprovada, se você quiser medir recorrência.
Eventos que normalmente não devem virar purchase:
- boleto emitido;
- checkout iniciado;
- pagamento recusado;
- chargeback;
- reembolso;
- trial iniciado, se não houver cobrança;
- atualização cadastral.
Passo 3: normalize os dados da venda
Antes de enviar qualquer evento, transforme o payload da Hotmart em um objeto limpo.
Campos úteis:
| Campo normalizado | Exemplo | Uso | ||
|---|---|---|---|---|
transaction_id |
ID da transação Hotmart | GA4, auditoria e deduplicação interna | ||
event_id |
ID único da conversão | Deduplicação Meta Pixel + CAPI | ||
value |
19.90 | Receita do evento | ||
currency |
BRL | Moeda da compra | ||
product_id |
ID do produto | Item do GA4 e conteúdo da Meta | ||
product_name |
Nome do produto | Relatório e debug | ||
email |
email do comprador | Match avançado, com hash quando enviado à Meta | ||
phone |
telefone do comprador | Match avançado, com tratamento adequado | ||
event_time |
timestamp da aprovação | Hora do evento | ||
utm_source |
Origem da campanha | |||
utm_campaign |
ebook-junho | Campanha | ||
src ou sck |
facebook\ | ebook\ | criativo01 | Leitura dentro da Hotmart |
O transaction_id deve representar a venda. Se a Hotmart fornece um ID único de transação, use esse ID como base.
O event_id precisa ser consistente quando Pixel e CAPI enviam a mesma compra. Se o Pixel no navegador já gera um event_id, o servidor deve usar o mesmo. Se você não tem como compartilhar esse ID, use uma estratégia estável, como uma combinação controlada baseada na transação.
Para aprofundar esse ponto, veja o guia de erro de deduplicação CAPI e event_id.
Passo 4: preserve origem com UTMs, src e sck
O webhook sozinho confirma a venda, mas nem sempre traz toda a história de origem.
Por isso, o ideal é padronizar a rota desde o anúncio:
- Anúncio leva para a landing page com UTMs.
- A landing page salva UTMs,
fbp,fbc,client_ide clique quando possível. - O botão para checkout leva
srcousck. - A Hotmart registra a venda.
- O n8n usa a venda e tenta recuperar a origem.
Exemplo de landing page:
https://viniensina.com.br/lp5/?utm_source=facebook&utm_medium=paid_social&utm_campaign=ebook-junho&utm_content=video01
Exemplo de checkout:
https://pay.hotmart.com/ABC123?sck=facebook|paid_social|ebook-junho|video01
Se você só recebe a compra aprovada sem origem, ainda pode enviar o evento para GA4 e CAPI, mas a leitura de campanha fica mais fraca.
Passo 5: envie purchase para o GA4
Para o GA4, o evento padrão de compra é purchase.
O endpoint do Measurement Protocol usa o measurement_id e o api_secret. O evento deve incluir pelo menos identificador do usuário ou cliente, nome do evento e parâmetros de compra.
Campos importantes:
| Campo GA4 | Obrigatório na prática? | Observação |
|---|---|---|
client_id |
Muito recomendado | Liga evento servidor a um usuário/navegador |
user_id |
Opcional | Útil quando você tem login ou ID próprio |
name |
Sim | Use purchase |
transaction_id |
Sim | Evita confusão entre compras |
value |
Sim | Valor da venda |
currency |
Sim | Exemplo: BRL |
items |
Recomendado | Produto, ID e preço |
Exemplo conceitual de payload:
“json { "client_id": "1234567890.1710000000", "events": [ { "name": "purchase", "params": { "transaction_id": "HOTMART-123", "value": 19.9, "currency": "BRL", "items": [ { "item_id": "ebook-ia-piloto", "item_name": "IA Piloto", "price": 19.9, "quantity": 1 } ] } } ] } “
No n8n, isso normalmente vira um node HTTP Request com:
- método
POST; - URL do GA4 Measurement Protocol;
- corpo JSON;
- headers adequados;
- tratamento de resposta;
- log do status retornado.
Se o seu GA4 não registra conversão, leia também o guia sobre GA4 que não registra conversão.
Passo 6: envie Purchase para a Meta CAPI
Para a Meta, o evento padrão de compra é Purchase.
O payload da Conversions API costuma ter três blocos principais:
| Bloco | Para que serve | Exemplos |
|---|---|---|
| Evento | Descrever a conversão | event_name, event_time, event_id, action_source |
| Usuário | Melhorar correspondência | email com hash, telefone com hash, fbp, fbc, IP, user agent |
| Dados da compra | Informar valor e produto | value, currency, content_ids, content_type |
Exemplo conceitual:
“json { "data": [ { "event_name": "Purchase", "event_time": 1710000000, "event_id": "HOTMART-123", "action_source": "website", "event_source_url": "https://viniensina.com.br/lp5/", "user_data": { "em": ["hash_sha256_do_email"], "ph": ["hash_sha256_do_telefone"], "fbp": "fb.1.1710000000.123456789", "fbc": "fb.1.1710000000.IwAR..." }, "custom_data": { "currency": "BRL", "value": 19.9, "content_ids": ["ebook-ia-piloto"], "content_type": "product" } } ] } “
Dados pessoais enviados para a Meta devem seguir as regras da plataforma e as obrigações de privacidade aplicáveis. Quando a documentação pede hash, normalize e aplique SHA-256 antes do envio.
Para entender a diferença entre navegador e servidor, veja CAPI vs Pixel no Meta Ads e como configurar Meta Pixel e CAPI.
Passo 7: deduplique Pixel e CAPI
Se a Hotmart, o Pixel da sua página ou a página de obrigado também enviam Purchase, você precisa evitar duplicidade.
Na Meta, a deduplicação depende principalmente de:
- mesmo
event_name; - mesmo
event_id; - eventos chegando em janela compatível;
- configuração correta entre Pixel e CAPI.
Exemplo:
| Origem | Evento | event_id |
Resultado esperado |
|---|---|---|---|
| Pixel | Purchase |
HOTMART-123 |
Evento do navegador |
| CAPI | Purchase |
HOTMART-123 |
Evento servidor deduplicado |
| CAPI | Purchase |
abc-999 |
Pode virar compra duplicada |
No GA4, use transaction_id para manter a compra auditável. No seu log interno, salve também o ID da execução do n8n e a resposta das APIs.
Passo 8: crie logs de execução
Sem log, você só descobre o problema quando a campanha já gastou.
O log mínimo deve registrar:
- data e hora do webhook;
- ID da transação;
- status Hotmart;
- valor e moeda;
- origem/campanha quando houver;
- status do envio para GA4;
- resposta do GA4;
- status do envio para Meta;
- resposta da Meta;
- erro bruto quando falhar;
- ID da execução do n8n.
Você pode salvar isso em Google Sheets, banco de dados, arquivo, Supabase, Airtable ou outro destino simples. O importante é conseguir responder: "essa venda foi enviada para GA4 e Meta ou ficou pelo caminho?"
Erros comuns nesse setup
| Erro | Sintoma | Como corrigir |
|---|---|---|
| Enviar evento antes da aprovação | Conversão inflada | Filtrar status da Hotmart |
Não usar event_id |
Duplicidade na Meta | Padronizar ID entre Pixel e CAPI |
Não ter transaction_id |
Compra difícil de auditar no GA4 | Usar ID único da venda |
| Perder UTMs no checkout | Venda sem origem clara | Preservar src, sck e UTMs |
| Não salvar logs | Debug lento | Registrar payload, status e resposta |
| Mandar valor errado | Receita inconsistente | Normalizar moeda, parcelas e descontos |
| Ignorar reembolso | Receita superestimada | Criar fluxo separado para refund/cancelamento |
| Expor token no node | Risco de segurança | Usar credenciais/variáveis do n8n |
Como validar antes de escalar campanhas
Faça uma validação controlada antes de confiar nos números.
Checklist:
- acione um webhook de teste no n8n;
- confirme que o filtro bloqueia status que não são venda;
- faça uma compra real controlada, se necessário;
- confira se o GA4 recebeu
purchase; - confira se a Meta recebeu
Purchase; - veja se o
event_idaparece corretamente; - compare o valor com a Hotmart;
- veja se
src,sckou UTMs aparecem no log; - confirme se não houve duplicidade;
- documente o fluxo antes de mexer de novo.
No GA4, olhe Realtime, DebugView quando aplicável e relatórios de monetização/aquisição depois do processamento.
Na Meta, olhe o Gerenciador de Eventos antes do Ads Manager. O Ads Manager pode demorar, modelar ou atribuir de forma diferente. Primeiro valide se o evento chegou.
Hotmart, GA4 e Meta precisam bater 100%?
Não.
A Hotmart é a fonte de verdade da venda. GA4 e Meta usam janelas, atribuição, consentimento, cookies, modelagem, bloqueios e regras próprias.
O objetivo é consistência operacional, não igualdade perfeita.
Uma leitura saudável:
| Comparação | O que esperar |
|---|---|
| Hotmart vs GA4 | GA4 pode registrar menos compras se faltar client_id ou origem |
| Hotmart vs Meta | Meta pode atribuir só parte das compras às campanhas |
| GA4 vs Meta | Cada plataforma usa regras diferentes de atribuição |
| Log n8n vs Hotmart | Deve ficar muito próximo para eventos aprovados |
Se a Hotmart mostra 10 vendas e o n8n recebeu 10 webhooks aprovados, a base operacional está boa. Se GA4 mostra 7 e Meta atribui 5, isso pode ser normal. Se GA4 mostra 0 e Meta mostra 0, aí existe falha de envio, payload ou configuração.
Checklist final do workflow
Antes de considerar a integração pronta, confira:
- [ ] Webhook da Hotmart ativo no n8n.
- [ ] Filtro de compra aprovada configurado.
- [ ]
transaction_iddefinido. - [ ]
event_iddefinido. - [ ] Valor e moeda normalizados.
- [ ]
src,scke UTMs preservados quando possível. - [ ] GA4 Measurement Protocol enviando
purchase. - [ ] Meta CAPI enviando
Purchase. - [ ] Dados pessoais tratados conforme documentação e privacidade.
- [ ] Logs salvos.
- [ ] Erros notificados.
- [ ] Compra controlada validada.
- [ ] Duplicidade conferida.
Perguntas frequentes
Posso integrar Hotmart com GA4 usando n8n?
Sim. O caminho mais comum é receber o webhook de compra aprovada da Hotmart no n8n e enviar um evento purchase para o GA4 via Measurement Protocol.
Preciso de CAPI se a Hotmart já tem Pixel?
Nem sempre. Se você está começando, configure o Pixel e valide o básico. A CAPI fica mais interessante quando você quer mais resiliência, logs, controle de payload e melhor envio de compras aprovadas pelo servidor.
Qual evento devo enviar para GA4?
Para compra, use purchase. Inclua transaction_id, value, currency e items sempre que possível.
Qual evento devo enviar para a Meta CAPI?
Para compra, use Purchase. Inclua event_id, event_time, action_source, user_data e custom_data com valor e moeda.
Como evitar compra duplicada na Meta?
Use o mesmo event_name e o mesmo event_id quando Pixel e CAPI enviarem a mesma compra. Sem isso, a Meta pode contar eventos duplicados.
O que usar como transaction_id e event_id?
Use o ID único da transação da Hotmart como base. Para GA4, ele funciona bem como transaction_id. Para Meta, ele pode ser usado como event_id se esse mesmo ID também estiver disponível no evento do Pixel.
Posso enviar email e telefone para a Meta?
Pode, desde que você siga a documentação da Meta, as regras de privacidade aplicáveis e envie os dados no formato exigido. Em geral, dados como email e telefone devem ser normalizados e enviados com hash SHA-256.
Hotmart, GA4 e Meta vão mostrar o mesmo número de vendas?
Não necessariamente. A Hotmart deve ser a fonte de verdade da venda. GA4 e Meta ajudam a analisar atribuição, comportamento e otimização, mas podem divergir por janela, consentimento, bloqueios e modelagem.
Referências
- n8n Docs: Webhook node e HTTP Request node
- Google Analytics: Measurement Protocol para GA4 e eventos recomendados de ecommerce
- Meta for Developers: Conversions API e deduplicação de eventos
- Hotmart Developers: webhooks da Hotmart
- Hotmart Help Center: parâmetros de campanha
