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:
- Veja os logs no Vercel:
Project
lp-captacao-aulao→ Logs → filtre por/api/captacao - Confira o status da request:
4xx: payload inválido (Zod rejeitou). Verifique o JSON enviado5xx: erro no servidor. Veja a mensagem do erro
Causas comuns:
- Service Role Key do Supabase inválida (
SUPABASE_SERVICE_ROLE_KEY) - Tabela
captacoescom policy RLS bloqueando o service_role (improvável, o service_role bypassa RLS) - Trigger
resolver_lead_idlanç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:
- Vercel → Logs → filtre por
[/api/captacao after] - Veja mensagens tipo
AC sync falhou:
Causas comuns:
ACTIVECAMPAIGN_API_KEYinválido ou expirado (regenere no painel AC)ACTIVECAMPAIGN_API_URLerrado- 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:
- Verifique se o cenário no Make está ON (ligado)
- 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';
- Compare com a URL no campo
Webhookdo módulo no Make (semprehttps://hook.us2.make.com/...) - Logs Vercel:
[/api/captacao after] Make captacaoou[/api/pesquisa after] Make
Causas comuns:
- URL no banco está errada / outdated → corrija com
UPDATE+ sync (verdocs/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:
- Logs Vercel:
[/api/captacao after] Unnichat - URL no banco:
select url_webhook_unnichat, unnichat_series_id from public.landing_configs where estado = 'ativa'; - Confira que o telefone do lead está em formato válido (com
+55na frente) - No painel Unnichat, veja se a série de mensagens identificada por
seriesidestá configurada corretamente
Causas comuns:
- URL do webhook desatualizada
unnichat_series_idapontando 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:
- Abra
/cadastroem aba normal (não-anônima), com console aberto. - Cole no console:
typeof fbq— deve retornar'function' - Aba
Network: filtre porfacebook.com/tr— deve ter request quando carrega a página (PageView) - Faça um cadastro de teste e veja se aparece request com
Leadno network
Causas comuns:
- Ad-blocker ativo (Pixel client é bloqueado, mas o CAPI server-side ainda deve registrar)
NEXT_PUBLIC_META_PIXEL_IDnão tem mais noMetaPixel.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:
- No console do navegador:
sessionStorage.getItem('aulao_lead') - Se for
null, o lead acessou/cadastro2direto sem passar pela etapa 1 (link compartilhado ou recarregou a aba)
Comportamento esperado:
/cadastro2semsessionStorage→ 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:
| Erro | Diagnóstico |
|---|---|
Codigo nao encontrado | A linha em landing_configs com esse codigo não existe |
Arquivo src/config/launches/X.ts nao existe | Adicionar o arquivo + adicionar no index.ts antes de virar |
Erro ao consultar banco | Service 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 autorizado | Token arrematador-01 errado na URL OU header bearer inválido (se vier do Cron) |
Para regenerar o PAT do GitHub:
- https://github.com/settings/tokens?type=beta
- Renove o token existente OU crie um novo com permissão
Contents: read+writeno repo - Atualize a env
GITHUB_PATno Vercel - 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
- https://vercel.com/felipe-lucarellis-projects/lp-captacao-aulao
- Aba Logs
- Filtros úteis:
Path:/api/captacaoou/api/pesquisaou/api/admin/virarStatus:5xx(erros do servidor)
- Cada linha de log aparece com timestamp UTC. Brasília é UTC-3.
Como ver dados no Supabase
- https://supabase.com/dashboard/project/dwckajtqbvltcatzycej
- Para query rápida, use SQL Editor
- 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;