Docs LP Captacao AulaoGitHub ↗

Runbook (troubleshooting)

Cenários comuns de problema e como investigar.

Lead não aparece no Supabase

Sintoma: Lead preencheu form mas não aparece em public.captacoes.

Diagnóstico:

  1. Veja os logs no Vercel: Project lp-captacao-aulaoLogs → filtre por /api/captacao
  2. Confira o status da request:
    • 4xx: payload inválido (Zod rejeitou). Verifique o JSON enviado
    • 5xx: erro no servidor. Veja a mensagem do erro

Causas comuns:

  • Service Role Key do Supabase inválida (SUPABASE_SERVICE_ROLE_KEY)
  • Tabela captacoes com policy RLS bloqueando o service_role (improvável, o service_role bypassa RLS)
  • Trigger resolver_lead_id lançou exceção (verifique nos logs do Supabase → Logs → Postgres Logs)

Verificação direta no banco:

select id, email_informado, criado_em
  from public.captacoes
 order by criado_em desc
 limit 10;

Lead aparece no Supabase mas não no ActiveCampaign

Sintoma: captacoes tem o lead, mas no AC ele não está como contato.

Causa provável: O after() do /api/captacao falhou silenciosamente na chamada do AC.

Diagnóstico:

  1. Vercel → Logs → filtre por [/api/captacao after]
  2. Veja mensagens tipo AC sync falhou:

Causas comuns:

  • ACTIVECAMPAIGN_API_KEY inválido ou expirado (regenere no painel AC)
  • ACTIVECAMPAIGN_API_URL errado
  • Rate limit do AC (raro, mas pode acontecer em pico)

Solução:

  • Se a key foi rotacionada, atualize no Vercel → Settings → Env Vars
  • Lead pode ser sincronizado manualmente exportando do Supabase e importando no AC

Webhook do Make.com não chegou

Sintoma: Cadastro feito mas execução não aparece no cenário do Make.

Diagnóstico:

  1. Verifique se o cenário no Make está ON (ligado)
  2. Verifique a URL do webhook configurada em landing_configs:
select codigo, url_webhook_make_etapa1, url_webhook_make_etapa2
  from public.landing_configs
 where estado = 'ativa';
  1. Compare com a URL no campo Webhook do módulo no Make (sempre https://hook.us2.make.com/...)
  2. Logs Vercel: [/api/captacao after] Make captacao ou [/api/pesquisa after] Make

Causas comuns:

  • URL no banco está errada / outdated → corrija com UPDATE + sync (ver docs/operacao/alterar-config-via-banco.md)
  • Cenário do Make desligado
  • O webhook captura mas o cenário tem erro nos passos subsequentes (Make → History no painel mostra os erros)

Unnichat não enviou WhatsApp

Sintoma: Cadastro feito mas o lead não recebeu mensagem no WhatsApp.

Diagnóstico:

  1. Logs Vercel: [/api/captacao after] Unnichat
  2. URL no banco:
    select url_webhook_unnichat, unnichat_series_id
      from public.landing_configs
     where estado = 'ativa';
    
  3. Confira que o telefone do lead está em formato válido (com +55 na frente)
  4. No painel Unnichat, veja se a série de mensagens identificada por seriesid está configurada corretamente

Causas comuns:

  • URL do webhook desatualizada
  • unnichat_series_id apontando para uma série inexistente ou desativada
  • Lead com telefone inválido (digitação errada do próprio lead)
  • Número fora do escopo do Unnichat (alguns serviços bloqueiam DDIs)

Pixel não está registrando eventos

Sintoma: Lead se cadastrou mas no Events Manager da Meta não aparece Lead nem CompleteRegistration.

Diagnóstico:

  1. Abra /cadastro em aba normal (não-anônima), com console aberto.
  2. Cole no console: typeof fbq — deve retornar 'function'
  3. Aba Network: filtre por facebook.com/tr — deve ter request quando carrega a página (PageView)
  4. Faça um cadastro de teste e veja se aparece request com Lead no network

Causas comuns:

  • Ad-blocker ativo (Pixel client é bloqueado, mas o CAPI server-side ainda deve registrar)
  • NEXT_PUBLIC_META_PIXEL_ID não tem mais no MetaPixel.tsx (hard-coded)
  • Token do CAPI expirou (regenere no Events Manager)

Onde ver no Events Manager:

Aba Test Events (se você setou META_CAPI_TEST_EVENT_CODE) ou aba Overview (se não setou). Pode demorar até 20min para aparecer.

Eventos esperados:

  • Pixel Principal (1024299639285137): PageView (sempre), Lead (após Etapa 1), CompleteRegistration (após Etapa 2, só qualificados)
  • Pixel Qualificados (822997930493590): PageView (sempre), CompleteRegistration (só qualificados, após Etapa 2)

Lead foi pra etapa 2 mas perdeu os dados

Sintoma: Lead chega em /cadastro2 e aparece tela "Carregando..." indefinidamente, ou redireciona pra /cadastro sozinho.

Causa: sessionStorage.aulao_lead não foi gravado ou foi limpo entre as etapas.

Diagnóstico:

  1. No console do navegador: sessionStorage.getItem('aulao_lead')
  2. Se for null, o lead acessou /cadastro2 direto sem passar pela etapa 1 (link compartilhado ou recarregou a aba)

Comportamento esperado:

  • /cadastro2 sem sessionStorage → redirect pra /cadastro (correto)

Não é um bug. Se o lead reencontrar a página por algum motivo (clicou no link de WhatsApp do amigo, abriu nova aba etc), precisa fazer a Etapa 1 de novo.


Endpoint /api/admin/virar retorna erro

Sintoma: Chama /api/admin/virar/[codigo] e recebe 500 ou erro.

Causas comuns:

ErroDiagnóstico
Codigo nao encontradoA linha em landing_configs com esse codigo não existe
Arquivo src/config/launches/X.ts nao existeAdicionar o arquivo + adicionar no index.ts antes de virar
Erro ao consultar bancoService Role Key inválida ou banco fora do ar
Erro GitHub API (active.ts)GitHub PAT expirado, sem permissão de Contents: read+write, ou owner/repo errados
Erro GitHub API (runtime.ts)Idem, mas pro arquivo runtime
Nao autorizadoToken arrematador-01 errado na URL OU header bearer inválido (se vier do Cron)

Para regenerar o PAT do GitHub:

  1. https://github.com/settings/tokens?type=beta
  2. Renove o token existente OU crie um novo com permissão Contents: read+write no repo
  3. Atualize a env GITHUB_PAT no Vercel
  4. Redeploy ou aguarde a próxima execução

Página /concluir-cadastro redireciona pra lugar errado

Sintoma: Lead conclui o cadastro mas é redirecionado pra um link de grupo errado ou expirado.

Diagnóstico:

select link_grupo_whatsapp
  from public.landing_configs
 where estado = 'ativa';

Compare com o valor em src/config/runtime.ts no GitHub: https://github.com/felipe-lucarelli/lp-captacao-aulao/blob/main/src/config/runtime.ts

Se forem diferentes:

O runtime.ts está desatualizado. Chame:

https://aulao.brunolucarelli.com.br/api/admin/virar/[codigo]?token=arrematador-01

Aguarde ~60s e o redirect na /concluir-cadastro passa a usar o link novo.


Como acessar logs no Vercel

  1. https://vercel.com/felipe-lucarellis-projects/lp-captacao-aulao
  2. Aba Logs
  3. Filtros úteis:
    • Path: /api/captacao ou /api/pesquisa ou /api/admin/virar
    • Status: 5xx (erros do servidor)
  4. Cada linha de log aparece com timestamp UTC. Brasília é UTC-3.

Como ver dados no Supabase

  1. https://supabase.com/dashboard/project/dwckajtqbvltcatzycej
  2. Para query rápida, use SQL Editor
  3. Para ver linhas direto, use Table Editor

Queries úteis:

-- Últimos 10 leads captados
select id, email_informado, nome_informado, telefone_informado,
       lancamento_id, etapa_lancamento_id, pagina_nome, criado_em
  from public.captacoes
 order by criado_em desc
 limit 10;

-- Últimas pesquisas (etapa 2) com perfil calculado
select id, nome_informado, email_informado, perfil_arrematador,
       renda_media, valor_disponivel, ja_arrematou, cep, criado_em
  from public.pesquisas
 order by criado_em desc
 limit 10;

-- Conversão da última etapa: captações vs pesquisas
select
  (select count(*) from public.captacoes where etapa_lancamento_id = 17) as captacoes,
  (select count(*) from public.pesquisas  where etapa_lancamento_id = 17) as pesquisas;