Guia do Sistema Mesus Track
Plataforma de rastreamento de leads, atribuição de anúncios e CRM para agências de tráfego. Multi-tenant: um painel de agência gerencia todos os clientes; cada cliente acessa só os próprios dados.
Como o sistema funciona (fluxo completo)
- Usuário clica num anúncio (Meta ou Google) → é redirecionado pelo link de tracking da plataforma → plataforma captura
gclid/fbclid/ UTMs e salva → usuário cai no WhatsApp. - Primeira mensagem chega no WhatsApp → Evolution API dispara webhook → plataforma captura
ctwa_clid(Meta click-to-WhatsApp) e vincula ao lead. - Chatwoot dispara webhook
message_created→ plataforma cria o lead no CRM com nome, telefone e atribuição de campanha já preenchidos. - Agente atende no Chatwoot e digita palavra-chave configurada (ex: "agendado") → plataforma move o lead de coluna automaticamente.
- Venda fechada → plataforma de pagamento (Hotmart/Kiwify) dispara webhook de compra → plataforma registra receita e dispara evento Purchase no Meta CAPI.
Infraestrutura
track.mesusmedia.com.br
+ autenticação
evo.mesusmedia.com.br
1 instância por cliente
mesusmedia.com.br
mesusmedia/track
vercel deploy --prod --scope mesus-media no terminal dentro da pasta do projeto. O GitHub ainda não está conectado para CD automático.
Adicionar um novo cliente Admin
Entre em track.mesusmedia.com.br/admin com sua conta de agência.
Preencha: nome do cliente, slug único (ex: C157-DraCristianeTiburtino), e-mail de contato.
Uma linha em clients, o primeiro usuário de login e os registros de configuração vazios (settings).
Clique em Configurações no cliente recém-criado e preencha Pixel, CAPI token, Chatwoot inbox ID etc. (ver seção Configurar integrações).
C[número]-[NomeCliente]. Esse slug aparece nas URLs de tracking e não pode ser alterado depois sem quebrar links já divulgados.
Criar / gerenciar usuários Admin
Usuários são criados pelo admin — não existe cadastro público. Dois tipos de acesso:
| Tipo | O que vê | Onde gerenciar |
|---|---|---|
| agency_admin | Todos os clientes, todos os dados | Admin → Equipe |
| client | Só os próprios dados | Admin → Clientes → [cliente] → Configurações |
Criar novo usuário admin
Acesse Admin → Equipe → Adicionar administrador. Informe o e-mail e copie a senha temporária gerada para enviar à pessoa.
Criar login de cliente (médico, secretária)
Acesse Admin → Clientes → [cliente] → Configurações → Acesso de login → Criar acesso. Pode criar mais de um login por cliente.
Resetar senha
Na lista de usuários (Equipe ou Configurações do cliente), clique no ícone ↺ ao lado do usuário. O sistema gera uma nova senha temporária na hora — copie e envie para a pessoa.
Excluir usuário
Clique no ícone de lixeira 🗑 ao lado do usuário. Uma confirmação é solicitada antes de excluir. O admin não pode excluir a si mesmo.
Configurar integrações por cliente Admin
Acesse: Admin → Clientes → [nome do cliente] → Configurações
Campos disponíveis
| Campo | Onde obter | Para que serve |
|---|---|---|
| Meta Pixel ID | Meta Business → Gerenciador de Eventos | Disparo de Lead/Purchase no pixel |
| CAPI Token | Meta → Conversions API → Gerar token | Envio server-side ao Meta |
| Chatwoot Inbox ID | Chatwoot → Configurações → Inboxes → ID numérico | Associar mensagens ao cliente correto |
| Google Ads Customer ID | Google Ads → cabeçalho da conta (sem traços) | Resolução de gclid → campanha |
| Webhook Token | Gerado automaticamente pelo sistema | Autenticar webhook de compra |
Snippet de rastreamento (admin panel)
Na tela de configurações do cliente, há dois boxes prontos para copiar:
Script para landing page
Cole no <head> das páginas do cliente. Reescreve automaticamente todos os botões wa.me para passar pelo link de tracking.
Link direto WhatsApp
Use como URL de destino no Google Ads quando o cliente não tem landing page. Já inclui {gclid} dinâmico.
Instalar tracking em landing page
Use quando o cliente tem uma landing page própria com botões de WhatsApp. O script reescreve os links wa.me automaticamente — não precisa alterar nenhum botão da página.
Admin → Clientes → [cliente] → Configurações → box "Script para landing page"
Deve aparecer em todas as páginas que têm botão de WhatsApp. Em WordPress, use um plugin de "Header scripts" ou o tema filho.
Abra a página, clique com botão direito num botão de WhatsApp → "Copiar link". O link deve começar com https://track.mesusmedia.com.br/api/go/
Mude de wa.me/... para a URL da landing page com ?gclid={gclid} ao final. O script captura o gclid automaticamente.
Formato do snippet
<script src="https://track.mesusmedia.com.br/api/tag/SLUG-DO-CLIENTE" async></script>
https://track.mesusmedia.com.br/api/tag/SLUG-DO-CLIENTE no navegador. Se retornar um JS com CLIENT_SLUG correto, está funcionando.
Link direto para WhatsApp (sem landing page)
Use quando o anúncio manda direto pro WhatsApp, sem passar por site. Configure como URL de destino no Google Ads.
Formato da URL
Passo a passo no Google Ads
Cole a URL acima com o slug correto do cliente e {gclid} no final.
Google Ads analisa a URL em até 24h. Se reprovar, adicione o WhatsApp real como URL de exibição.
Configurar atribuição Google Ads
O sistema usa a Google Ads API (acesso de agência via MCC) para resolver o gclid capturado → nome de campanha, grupo e anúncio.
Pré-requisitos por cliente
- A conta Google Ads do cliente deve estar vinculada ao MCC da agência.
- O Customer ID da conta (sem traços, ex:
1234567890) deve estar cadastrado em Admin → Clientes → Configurações → Google Ads Customer ID. - O cliente deve ter pelo menos uma campanha ativa com a URL de destino configurada conforme a seção anterior.
Como verificar se está funcionando
Use a URL com ?gclid=VALOR_TESTE — substitua por um valor real copiado de um clique real do Google Ads (relatório de cliques).
O lead deve aparecer com o nome da campanha preenchido automaticamente na coluna "Campanha".
Configurar Meta / Facebook Ads
A atribuição Meta funciona por ctwa_clid (click-to-WhatsApp ID) — capturado automaticamente pelo webhook do Evolution API na primeira mensagem, sem precisar de nenhuma configuração extra após o Pixel e CAPI token estarem cadastrados.
Verificar disparo de eventos
- Acesse Meta Business → Gerenciador de Eventos → [Pixel do cliente]
- Clique em Testar eventos
- Envie uma mensagem de WhatsApp de teste (com o número do cliente)
- O evento Lead deve aparecer em até 1 minuto com
match_keyspreenchido (telefone hasheado)
Evento Purchase (venda)
Disparado automaticamente quando o webhook de compra recebe status approved / paid. Não precisa de configuração adicional além do Pixel e CAPI token.
CRM — Kanban de leads
Acesse em: Admin → [cliente] → CRM.
Cards de conversão (topo da tela)
Quatro cards em tempo real exibidos acima do kanban:
| Card | Cálculo |
|---|---|
| Leads totais | Total de leads com atribuição no CRM |
| Taxa de agendamento | Leads na etapa "Agendado" ÷ leads ativos |
| Taxa de conversão | Leads na etapa "Vendido" ÷ leads agendados |
| Receita atribuída | Soma das vendas registradas via webhook de compra |
Kanban
Colunas (etapas do funil)
Configuráveis por cliente. Padrão: Novo, Em atendimento, Agendado, Vendido, Perdido.
Movimentação automática
Lead muda de coluna quando o agente digita a palavra-chave configurada no Chatwoot.
Dados do lead
Nome, telefone, foto de perfil, campanha de origem, data de entrada.
Filtros
Por período, campanha, etapa, canal de origem (Meta / Google).
Quais leads entram no CRM?
Apenas leads com atribuição confirmada — ou seja, vieram de um anúncio rastreável (Meta ou Google). Conversas orgânicas (número salvo, indicação direta) são filtradas automaticamente.
Automações por palavra-chave
Acesse: Admin → [cliente] → Automações
Ex: "agendado", "fechado", "perdido". A comparação é case-insensitive e busca a palavra dentro da mensagem.
Para qual coluna do kanban o lead deve mover quando essa palavra for enviada.
Abra uma conversa no Chatwoot e envie a mensagem com a palavra. Em até 5 segundos o lead deve mover de coluna.
Webhook de compra (Hotmart / Kiwify)
Registra receita e dispara evento Purchase no Meta quando uma venda é confirmada.
URL do webhook
Token: encontre em Admin → Clientes → Configurações → Webhook Token.
Platform: hotmart, kiwify ou generic.
Configurar na plataforma de pagamento
Cole a URL acima. Eventos: PURCHASE_APPROVED.
Cole a URL com platform=kiwify. Evento: order.paid.
Use o botão "Testar webhook" da plataforma. Verifique em Admin → [cliente] → Faturamento se a compra apareceu.
Dashboards
Visão Geral (por cliente)
| Métrica | O que mostra |
|---|---|
| Leads captados | Total de leads no período com atribuição confirmada |
| Receita atribuída | Soma das vendas linkadas a leads rastreados |
| Conversão | % de leads que chegaram até a etapa "Vendido" |
| Origem | Meta vs. Google (por volume de leads) |
Eventos
Log de todos os eventos disparados para Meta CAPI e GA4 — com payload enviado e resposta recebida. Útil para debugar se um evento não aparece no Gerenciador de Eventos.
Faturamento
Lista de compras confirmadas com valor, produto, data e método de match (vinculação lead → compra).
Dashboard de Campanhas Em desenvolvimento
Mostrará ROAS e CPA cruzando Meta Ads Insights com receita registrada. Disponível quando o cliente tiver Meta Ad Account ID configurado e dados de compra suficientes.
| Coluna | Origem |
|---|---|
| Campanha / Conjunto / Anúncio | Meta Ads Insights API |
| Investimento | Meta Ads Insights API |
| Leads | Tabela leads (atribuição ctwa_clid) |
| Receita | Tabela purchases |
| ROAS | Receita / Investimento |
Pendências técnicas (não fazem nada quebrar — só melhorias)
| Item | O que falta | Quem resolve |
|---|---|---|
| Rate limit real (Upstash Redis) | O rate limit atual reseta a cada reinicialização do servidor. Precisa de conta Upstash da empresa + 2 variáveis no Vercel. | Dono da empresa cria conta → passa URL + token para Lucas |
| Token Chatwoot no header | Token de autenticação do webhook do Chatwoot vai na query string (visível no log). Mover para header. | Reconfigurar webhook no Chatwoot + ajuste de código |
| Evolution: 6 instâncias sem secret | 29 de 35 instâncias foram atualizadas com o header de segurança. 6 pendentes. | Rodar script de atualização novamente |
| CI/CD automático | Vercel não está conectado ao GitHub — deploy é manual. | Conectar repositório GitHub no painel Vercel |
FAQ — Perguntas frequentes
Lead apareceu com nome errado (nome do agente)?
Corrigido na versão atual. O sistema usa conversation.meta.sender.name (sempre o contato) e nunca body.sender (que podia ser o agente). Se ainda acontecer, verifique se o deploy mais recente foi publicado.
Lead não apareceu no CRM
- Verifique se o Chatwoot Inbox ID está correto nas configurações do cliente.
- Verifique se a conversa veio de anúncio rastreado (sem atribuição, o lead é filtrado).
- Verifique nos logs do Vercel (
track.mesusmedia.com.br → Functions → webhook/chatwoot) o motivo retornado.
Script da landing page não está reescrevendo os botões
- Verifique se o
<script>foi adicionado no<head>(não no final do body). - O atributo
asyncestá presente? Sem ele, a página pode travar. - Abra o console do navegador (F12 → Console). Deve aparecer
[track] X links rewritten.
Evento não aparece no Meta Gerenciador de Eventos
- Verifique se o Pixel ID e o CAPI token estão corretos nas configurações.
- O evento pode demorar até 1 hora para aparecer no painel do Meta.
- Consulte o log em Admin → [cliente] → Eventos para ver o payload enviado e a resposta recebida.
Como adicionar um novo agente no Chatwoot para um cliente?
Isso é feito diretamente no painel do Chatwoot (evo.mesusmedia.com.br) — não pela plataforma de tracking. Crie o agente e vincule ao inbox do cliente.
Posso mudar o slug de um cliente?
Não recomendado. O slug está nos links de tracking (/api/go/SLUG e /api/tag/SLUG). Qualquer campanha ativa usando o link antigo vai quebrar. Se necessário, crie um redirecionamento antes de mudar.