Use este checklist antes do deploy e para validar o ambiente.
Runtime canónico: apps/whatsapp-platform (host típico: https://whatsapp.devflowlabs.com.br).
Não usar para ops novas: apps/whatsapp-webhook-api (RETIRED, RP-3 — ver REPOSITORY-PURITY-STATUS.md).
Referências: apps/whatsapp-platform/.env.example · WEBHOOK_META_CHECKLIST.md · PILOT-RUNBOOK.md · OPERATIONAL_PLAYBOOK.md.
O ficheiro .env.production.example nesta pasta é legado/histórico; preferir o .env.example do app.
| Variável | Descrição |
|---|---|
WHATSAPP_DATABASE_URL |
PostgreSQL (pooler, ex.: ?pgbouncer=true) |
WHATSAPP_DIRECT_URL |
URL direta para migrations Prisma |
WHATSAPP_VERIFY_TOKEN |
Token de verificação do webhook Meta (GET) |
META_APP_SECRET |
App Secret Meta — HMAC do POST (X-Hub-Signature-256) |
JWT_SECRET |
Chave JWT (mín. 32 caracteres) |
NEXT_PUBLIC_WHATSAPP_APP_URL |
Base URL canónica do app (ex.: https://whatsapp.devflowlabs.com.br) |
Produção / admin: WHATSAPP_ADMIN_METRICS_SECRET (ou equivalentes documentados no app).
Stripe: WHATSAPP_STRIPE_* conforme .env.example do app.
Keyring de token de canal: WHATSAPP_TOKEN_ENCRYPTION_* conforme docs de segurança do app.
- Migrations Prisma só no runtime canónico:
cd apps/whatsapp-platform && pnpm db:migrate # ou pnpm db:migrate:deploy em CI/prod
- Gerar o client:
cd apps/whatsapp-platform && pnpm db:generate
- Não aplicar
docs/whatsapp/MIGRATION_CONSOLIDATED.sqlcomo caminho operacional (candidato a ARCHIVE; preferir Prisma do platform). - Não correr
db:*emapps/whatsapp-webhook-apipara deploy de produto.
- Meta for Developers → app → WhatsApp → Configuration:
- Callback URL:
https://whatsapp.devflowlabs.com.br/api/webhook/whatsapp(ou{NEXT_PUBLIC_WHATSAPP_APP_URL}/api/webhook/whatsapp) - Verify Token: o mesmo valor de
WHATSAPP_VERIFY_TOKENno whatsapp-platform.
- Callback URL:
- Assinar o evento messages.
- Tenant resolve por
phone_number_idno payload (canal provisionado/activado no ACC).
Detalhe: WEBHOOK_META_CHECKLIST.md.
- Produto/preço no Stripe.
- Webhook Stripe →
{NEXT_PUBLIC_WHATSAPP_APP_URL}/api/stripe/webhook. - Vars
WHATSAPP_STRIPE_*+NEXT_PUBLIC_WHATSAPP_APP_URLno projeto Vercel do platform.
- Definir
OPENAI_API_KEYe/ouANTHROPIC_API_KEYno ambiente do whatsapp-platform (não no webhook-api legado). - No painel: Configurações (
/settings) — motorruleBased/openAI/claude. - Ver OPENAI_ENV_AND_FLOW.md e AI_AUTOMATION.md.
Caminho canónico: /admin/whatsapp (Activation Control Center) — provision → PENDING_ACTIVATION → Ativar com token → ACTIVE.
Playbook: OPERATIONAL_PLAYBOOK.md.
Pacote piloto: CLIENT-IMPLANTATION-PACK-v1.md.
Rotas históricas /api/admin/whatsapp/onboarding/* não existem no runtime actual — ver banner em WHATSAPP_CLOUD_ATIVACAO_REAL_RUNBOOK.md.
- GET verify do webhook (challenge).
- Login no app (
{NEXT_PUBLIC_WHATSAPP_APP_URL}). - Canal
ACTIVEno ACC (se aplicável). - Smoke autorizado: SMOKE-TEST-INBOUND-OUTBOUND.md.
App Express RETIRED (RP-3). Não correr db:* nesse path (já removido). Callback e ops: apps/whatsapp-platform. Migrations históricas documentais: docs/_archive/whatsapp-webhook-api-migrations/.