Vértica

Runbook de Incidentes

Procedimentos operacionais para restaurar serviços — atualizado 02/07/2026
Ver Status ↗

Escalação e Contatos

CTO / ON-CALL
Bruno
WhatsApp: (seu número)
E-mail: josebruno123.bl@gmail.com
SUPORTE VERCEL
Vercel Support
SUPORTE SUPABASE
Supabase Support
SUPORTE META / WABA
Meta Business Support
Meta Business Center
Ticket via chat ou e-mail
CRÍTICO

INC-01 — WABA banido ou suspenso pela Meta

WhatsApp
Sintoma: mensagens não entregues, webhook retorna erro, clínica sem atendimento. Alerta automático via e-mail quando ban_state != FLAGGED.
  1. Acessar WhatsApp Manager → verificar status do número afetado.
  2. Se FLAGGED (aviso): revisar últimas mensagens enviadas. Não enviar templates em volume. Aguardar 24h — Meta remove automaticamente se não houver reincidência.
  3. Se RESTRICTED: abrir ticket de suporte Meta via Business Center. Tempo de resposta: 24–72h. Enquanto aguarda, ativar modo manual no painel da clínica afetada (painel gestor → Configurações → IA desativada).
  4. Se BANNED: solicitar revisão ("Request Review") dentro do WhatsApp Manager. Se negado: será necessário criar novo número de telefone e novo WABA para a clínica. Contatar a clínica afetada imediatamente para informar.
  5. Após restauração: testar envio de mensagem de texto simples antes de reativar templates.
  6. Registrar incidente no log: data, clínica, motivo suspeito, resolução.
CRÍTICO

INC-02 — Vercel fora do ar (API inacessível)

API
Sintoma: vertica.app.br retorna erro 5xx ou timeout. Mensagens WhatsApp sem resposta. Nenhum cron disparado.
  1. Verificar vercel-status.com. Se incidente global: aguardar — nada a fazer no código.
  2. Se incidente local (só o projeto): checar último deploy em Dashboard Vercel → aba "Deployments".
  3. Se último deploy com erro: rolar para o deploy anterior funcionando → clicar "Promote to Production".
  4. Se todos os deploys falhando: verificar se variável de ambiente foi removida acidentalmente (Settings → Environment Variables).
  5. Re-deploy forçado: vercel --prod na raiz do projeto.
  6. Informar clínicas ativas sobre indisponibilidade via WhatsApp pessoal (contato de suporte).
CRÍTICO

INC-03 — Supabase fora do ar ou banco inacessível

Banco
Sintoma: API retorna erros, conversas não salvas, leads não criados. Logs Vercel mostram falhas em chamadas SUPABASE_URL.
  1. Verificar status.supabase.com. Se incidente global: aguardar. Supabase Pro tem SLA 99.9%.
  2. Se apenas o projeto: acessar app.supabase.com → verificar se o projeto está "paused" (Pro não pausa, mas verificar).
  3. Testar conexão direta: curl SUPABASE_URL/rest/v1/clinicas?limit=1 com o header apikey.
  4. Se projeto pausado indevidamente: "Restore project" no dashboard.
  5. Verificar logs de banco em Supabase → Database → Logs.
  6. Abrir ticket de suporte via app.supabase.com/support com logs dos erros.
  7. Durante a indisponibilidade: mensagens WhatsApp recebidas serão perdidas (sem retry automático). Após restauração, verificar se há leads que precisam de follow-up manual.
ALTO

INC-04 — Asaas fora do ar ou erros de cobrança

Sintoma: PIX não gerado para pacientes, cobranças mensais não disparadas. Não afeta atendimento — apenas pagamentos.
  1. Verificar status.asaas.com para incidentes conhecidos.
  2. Se PIX de paciente falhou: informar a clínica afetada para cobrar manualmente até restauração.
  3. Se cobrança mensal automática falhou (dia 1–5 de cada mês): após restauração, executar manualmente via painel admin → Cobranças → "Gerar cobranças do mês".
  4. Verificar chave API Asaas não expirou: admin.html → Clínicas → ver chave.
  5. Contato Asaas: suporte@asaas.com ou chat no painel Asaas.
ALTO

INC-05 — Token permanente Meta expirado ou inválido

WhatsApp
Sintoma: webhook aceita mas mensagens não são enviadas (WA_TOKEN inválido). Monitor diário alerta via e-mail às 8h BRT.
  1. Acessar Meta Business → Usuários do Sistema.
  2. Selecionar usuário "VERTICA API" → Gerar novo token → selecionar "Nunca expira" → permissões whatsapp_business_messaging e whatsapp_business_management.
  3. Copiar o token gerado (ele só aparece uma vez).
  4. Acessar Vercel → Environment Variables → atualizar WHATSAPP_TOKEN.
  5. Re-deploy: vercel --prod ou trigger via dashboard.
  6. Testar: enviar mensagem de teste via painel gestor → Iniciar conversa.
MÉDIO

INC-06 — IA em loop ou sem responder

API
Sintoma: clínica reporta que bot ficou em silêncio ou repetindo a mesma mensagem. Pode ser timeout Anthropic, erro de lógica ou mensagem do paciente que dispara edge case.
  1. Verificar logs Vercel → Functions → api/whatsapp → buscar por [ERRO] ou anthropic_empty_response.
  2. Verificar status Anthropic: status.anthropic.com.
  3. Se loop: o deduplicador wa_queue previne reprocessamento. Verificar se a entrada da mensagem está travada com status = 'processing' no Supabase → Tabela wa_queue. Atualizar para status = 'done' para desbloquear.
  4. Se a IA não responde e o paciente precisa de atendimento urgente: no painel gestor, alterar o lead para modo_manual = true e a secretaria assume.
  5. Se o problema for recorrente para uma mensagem específica: registrar o conteúdo da mensagem e abrir issue.

Checklist Pós-Incidente

  1. Confirmar que o serviço está restaurado e estável por pelo menos 15 minutos.
  2. Verificar se há leads que ficaram sem resposta durante o incidente — reativação manual se necessário.
  3. Verificar se cobranças, follow-ups ou agendamentos foram perdidos durante o incidente.
  4. Informar as clínicas afetadas sobre o incidente e o tempo de indisponibilidade.
  5. Registrar o incidente: data, duração, causa raiz, resolução adotada, lição aprendida.
  6. Se o incidente revelou gap de monitoramento: criar alerta preventivo para detectar antes dos clientes.