Backlog Unificado
Projeto: RioNoTeatro. Fonte principal: /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Modo read-only: ações de escrita ficam disponíveis apenas para o Cérebro.
Sem itens pendentes em /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Especificações Disponíveis (fora da fila pendente)
- BK-136
- BK-137
- BK-138
- BK-147
- BK-148
- BK-149
- BK-150
- BK-151
- BK-156
- BK-158
- BK-159
- BK-160
- BK-161
- BK-162
- BK-163
- BK-164
- BK-165
- BK-166
- BK-170
- BK-171
- BK-172
- BK-177
- BK-183
- BK-186
- BK-187
- BK-189
- BK-190
- BK-191
- BK-192
- BK-193
- BK-195
- BK-196
- BK-197
- BK-198
- BK-199
- BK-201
- BK-205
- BK-207
- BK-208
- BK-209
- BK-210
- BK-211
- BK-212
- BK-213
- BK-214
- BK-215
- BK-216
- BK-217
- BK-218
- BK-219
- BK-220
- BK-221
- BK-229
- BK-230
- BK-231
- BK-232
- BK-233
- BK-234
- BK-235
- BK-236
- BK-239
- BK-240
- BK-241
- BK-242
- BK-243
- BK-244
- BK-245
- BK-246
- BK-248
- BK-249
- BK-250
- BK-251
- BK-252
- BK-253
- BK-254
- BK-255
- BK-256
- BK-257
- BK-258
- BK-259
- BK-260
- BK-261
- BK-262
- BK-263
- BK-264
- BK-265
- BK-266
- BK-267
- BK-268
- BK-269
- BK-270
- BK-271
- BK-272
- BK-275
- BK-276
- BK-277
- BK-278
- BK-279
- BK-280
- BK-295
- BK-313
Detalhe do BK Selecionado
BK-295 - WhatsApp Marketing Messages API oficial
Status: aberto
Responsavel: Codex
Aberto em: 2026-04-30 23:48 -03
Contexto
O RioNoTeatro quer voltar o envio real de WhatsApp para a API oficial da Meta e avaliar a API de Mensagens de Marketing para WhatsApp, anteriormente chamada de Marketing Messages Lite API / MM Lite.
A decisao operacional correta para o RioNoTeatro e usar a trilha Aumente o ROI com mensagens de marketing com otimizacoes. A trilha Torne-se um Provedor de Tecnologia e para empresas que vao operar WhatsApp/API para clientes de terceiros, com onboarding de WABAs de outros negocios.
Aprendizados desta sessao
- A pagina de visao geral da Meta foi atualizada em
2026-02-10e afirma que a API de Mensagens de Marketing para WhatsApp esta disponivel para todos. - A API de MM para WhatsApp e descrita pela Meta como solucao de marketing de ultima geracao para melhorar a experiencia do cliente e entregar a mensagem certa para mais pessoas.
- Principais beneficios oficiais:
- otimizacoes automaticas de entrega para alcançar mais pessoas propensas a considerar a mensagem importante;
- mais leituras e cliques;
- insights exclusivos de mensuracao, incluindo referencias de desempenho contra empresas semelhantes;
- recomendacoes personalizadas para melhorar campanha;
- otimizacoes automaticas de criativos em teste, como animacao de imagens e filtros;
- formatos de midia avancados, incluindo GIFs;
- tempo de vida / TTL para evitar entrega atrasada ou irrelevante em campanhas urgentes;
- esquema tecnico semelhante ao da Cloud API;
- mesmo modelo de cobranca da Cloud API;
- reaproveitamento de numeros de telefone e modelos de mensagem de marketing existentes.
- A orientacao oficial e enviar todo trafego de marketing para
/{PHONE_NUMBER_ID}/marketing_messages, permitindo roteamento automatico para empresas qualificadas. - A nota de rodape do ganho de ate 9% vem de teste A/B com cerca de 12 milhoes de mensagens de marketing entregues, na India, entre
2025-01-01e2025-01-31, comparando entrega otimizada da MM API com entrega padrao da Cloud API entre mensagens de alto engajamento, com teste t a 95% de confianca. - Interpretacao operacional:
disponivel para todosnao dispensa validar token, WABA, numero, termos/status de onboarding e estado do numero antes de envio real. - Templates de marketing personalizados devem ser criados via API de Modelos de Mensagens:
- endpoint:
POST /{WHATSAPP_BUSINESS_ACCOUNT_ID}/message_templates; category:marketing;language: idioma do template, ex.pt_BR;parameter_format: formato dos parametros, preferencialmente nomeado quando usamos placeholders controlados;componentspodem incluirheadercom imagem,bodycom parametros nomeados e exemplos,footerebuttons;- botoes suportados no exemplo:
url,phone_numberequick_reply; - para cabecalho de imagem, a criacao exige
HEADER_ASSET_HANDLE, ou seja, upload/handle de midia antes da submissao; - o template precisa ser aprovado pela Meta antes de envio real.
- Modelos de oferta por tempo limitado sao candidatos fortes para o RioNoTeatro porque campanhas de pecas/ofertas saem de cartaz e tem urgencia real.
- Doc Meta atualizada em
2025-11-04. - Permitem exibir validade e contagem regressiva para codigos de oferta em modelos de mensagem.
- Somente templates
MARKETINGsao compativeis. - Componentes de rodape nao sao compativeis.
- WhatsApp Web/Desktop nao exibem a oferta; o usuario ve aviso de mensagem nao compativel com o cliente usado.
- Endpoint de criacao continua
POST /{WHATSAPP_BUSINESS_ACCOUNT_ID}/message_templates. - Componentes do exemplo:
header,limited_time_offer,bodyebuttons. limited_time_offerincluitextehas_expiration.- Botoes do exemplo:
copy_codepara codigo de oferta eurlpara pagina de compra. - Para RNT, avaliar usar
copy_codepara cupom/oferta e botao URL com shortlink rastreavel do espetaculo/campanha. - O quickstart
AdsSampleda Meta, comfacebook-nodejs-business-sdk,AdAccount,Campaign,ads_managemente contaact_*, e da Marketing/Ads API. Ele nao configura WhatsApp, nao habilita MM API e nao deve ser executado na VPS para esta frente. - Tokens colados no chat devem ser tratados como segredo comprometido operacionalmente. Nao registrar token bruto em docs, Git, logs ou comandos. O caminho correto e provisionar token direto no
.env/cofre e validar sempre com saida mascarada. - O token para WhatsApp precisa ter permissoes de WhatsApp, principalmente
whatsapp_business_messagingewhatsapp_business_management. Para algumas consultas de status/ativos, pode ser necessariobusiness_management. - A implementacao atual BK-292/BK-293 usa Cloud API padrao no endpoint
/{PHONE_NUMBER_ID}/messages. - A Marketing Messages API usa endpoint especifico:
POST /{WHATSAPP_BUSINESS_PHONE_NUMBER_ID}/marketing_messages. - O numero comercial tambem precisa estar registrado na Cloud API; numeros nao registrados na Cloud API nao podem usar a Marketing Messages API.
- Evidencia tecnica de
2026-05-24 17:18 -03: .envtemBOT_WHATSAPP_OFFICIAL_PHONE_NUMBER_ID,BOT_WHATSAPP_OFFICIAL_WABA_IDeBOT_WHATSAPP_OFFICIAL_ACCESS_TOKENconfigurados, sem expor segredo bruto.test-sendoficial com templatehello_worlde idiomaen_USpara allowlist admin5521999605790foi executado pelo CLI seguro.- Meta respondeu HTTP
400com(#133010) Account not registered; evento localwhatsapp_campaign_events.id=1035,event_type=admin_test_failed. - Consulta mascarada do
PHONE_NUMBER_IDretornoudisplay_phone_number=+55 21 99960-5790,verified_name=Rio no Teatro Entretenimento,quality_rating=UNKNOWN,code_verification_status=NOT_VERIFIED,name_status=AVAILABLE_WITHOUT_REVIEWeplatform_type=ON_PREMISE. - Interpretacao operacional: payload, token e rota chegam ate a Meta, mas o numero real ainda nao esta registrado/verificado na Cloud API. Manter envio oficial/MM bloqueado ate concluir registro/migracao ou usar um
PHONE_NUMBER_IDde numero Cloud/test number valido. - Evidencia tecnica de
2026-05-24 17:36 -03: - Admin informou novo token permanente gerado para o app
App RNT cloud api, identificacao61590051255278, com acessoEmployee. - IDs canonicos para chamadas de API:
WABA_ID=184255154767640ePHONE_NUMBER_ID=192394897284461. .envfoi atualizado sem expor segredo bruto:BOT_WHATSAPP_PROVIDER=officialeBOT_WHATSAPP_OFFICIAL_ACCESS_TOKENrenovado.- Leitura local mascarada confirmou provider
official,PHONE_NUMBER_ID,WABA_IDe token definidos. - Consulta Graph API ao
PHONE_NUMBER_IDrespondeu HTTP200, comdisplay_phone_number=+55 21 99960-5790,verified_name=Rio no Teatro Entretenimento,quality_rating=UNKNOWN,platform_type=ON_PREMISEecode_verification_status=NOT_VERIFIED. - Teste tecnico isolado de envio oficial para allowlist admin
5521999915554respondeu HTTP400com(#133010) Account not registered. - Interpretacao operacional: o novo token tem acesso suficiente para consultar o ativo, mas o numero real segue sem registro Cloud API. A proxima acao nao e gerar outro token; e registrar/migrar/verificar o numero no WhatsApp Cloud API ate deixar de aparecer como
ON_PREMISE/NOT_VERIFIED. - Antes de enviar pela MM API, validar a WABA:
GET /{WABA_ID}?fields=marketing_messages_onboarding_statusELIGIBLEindica WABA qualificada.ONBOARDEDindica WABA integrada.- Em respostas/fluxos relacionados tambem aparecem
TERM_OF_SERVICE_SIGNED,REQUEST_SENTeNOT_STARTED. - O campo antigo
marketing_messages_lite_api_statusaparece como alternativa, mas esta obsoleto; usarmarketing_messages_onboarding_status. - Para parceiro/listagem de WABAs qualificadas compartilhadas:
GET /{BUSINESS_ID}/client_whatsapp_business_accounts?filtering=[{'field':'marketing_messages_onboarding_status','operator':'IN','value':['ELIGIBLE']}]- O aceite dos Termos de Servico da API de MM para WhatsApp pode ser feito no App Dashboard > WhatsApp > Inicio rapido, no card de Marketing Messages, ou pelo WhatsApp Manager quando aplicavel.
- A doc oficial tambem menciona compartilhamento de atividade de evento para otimizar campanhas. Por mensagem, o parametro
message_activity_sharingpode ser usado no payload da MM API para sobrescrever a configuracao padrao da WABA.
Decisoes
- Nao seguir a trilha de Provedor de Tecnologia agora.
- Nao rodar sample de Ads API na VPS.
- Implementar a MM API como rota oficial separada, sem substituir cegamente o provider
officialexistente. - Manter fallback/guardrail: se WABA nao estiver elegivel/onboarded ou se o token nao tiver permissoes corretas, bloquear envio pela MM API e nao cair em envio real silencioso.
- Continuar com dry-run/allowlist/confirmacao textual antes de qualquer envio real.
Dados que ainda faltam validar/provisionar
- Numero oficial registrado/verificado na Cloud API; em
2026-05-24, oPHONE_NUMBER_IDconfigurado respondeuplatform_type=ON_PREMISEecode_verification_status=NOT_VERIFIED. - Confirmar se o token atual tem permissoes de WhatsApp suficientes alem de chegar ao endpoint de phone number e mensagens.
- Status real de
marketing_messages_onboarding_status. - Template marketing aprovado para PT-BR, ou estrategia temporaria usando template aprovado existente.
- Verify token/webhook oficial ja existe como conceito, mas precisa permanecer no
.enve ser validado sem expor segredo.
Evidencias humanas recebidas
- WhatsApp Manager > Telefones mostra o numero comercial
+55 21 99960-5790. - Nome exibido:
Rio no Teatro Entretenimento. - Pais: Brasil.
- Estado informado na tela:
Offline. - Classificacao de qualidade informada na tela:
Indisponivel. - Interpretacao operacional: antes de envio real, confirmar se o numero esta registrado/ativo na Cloud API e obter o
PHONE_NUMBER_ID; enquanto a tela indicar offline/qualidade indisponivel, tratar envio oficial/MM API como nao liberado para producao. - Historico no WhatsApp Manager:
2026-04-30 12:00 -03, usuarioDeleted User, categoriaPerfil comercial, atividadePerfil comercial atualizado para +55 (21) 99960-5790.- Interpretacao operacional: esse evento indica alteracao recente no perfil comercial por usuario hoje inexistente/removido; considerar em auditoria de acesso/configuracao antes de producao.
Plano tecnico futuro
- Provisionar variaveis oficiais no
.env, com backup pre-edicao. - Criar comando de diagnostico mascarado para validar token, permissoes, WABA, phone number id e status de onboarding.
- Estender
config/bot_config.phpcom constantes da MM API:
BOT_WHATSAPP_OFFICIAL_WABA_IDBOT_WHATSAPP_OFFICIAL_MARKETING_PROVIDERou flag equivalente- default seguro para
message_activity_sharing
- Estender
includes/whatsapp_helper.phpcom sender separado para/{PHONE_NUMBER_ID}/marketing_messages. - Estender CLI
admin/cron/whatsapp_campaign_queue.phppara teste controlado:
- dry-run por padrao;
--provider=official-mmou nome equivalente;--execute --confirm=SEND_ADMIN_TESTapenas em allowlist.
- Persistir provider usado e resposta da Meta em
whatsapp_campaign_events. - Garantir que
cloud_webhook.phpcontinue processando status, inbound e opt-out, incluindo eventos da rota MM quando chegarem. - Documentar resultado dos smokes reais sem expor tokens.
Criterios de aceite
php -lnos arquivos alterados.- Diagnostico mascarado mostra token com permissoes WhatsApp, WABA ID, Phone Number ID e status de onboarding.
- WABA
ELIGIBLEouONBOARDEDantes de qualquer envio pela MM API. - Envio de teste real apenas para allowlist admin e com confirmacao textual.
- Logs e eventos nao armazenam token bruto.
- Se a Meta retornar erro de permissao/onboarding, o sistema falha fechado e mantem a fila sem disparo real.