Skip to main content

O que é

Os modelos do WhatsApp são estruturas de mensagens pré-aprovadas usadas para iniciar ou continuar conversas fora da janela de atendimento ao cliente. Um modelo é identificado por WABA, nome e idioma. Use este guia para gerenciar o ciclo de vida da API e manter os recursos de modelos de produção estáveis entre equipes, versões e localidades.

Antes de começar

  • Conecte a WABA proprietária do modelo.
  • Escolha a categoria do modelo, o idioma compatível, o nome e os componentes.
  • Prepare exemplos representativos de variáveis e mídias necessários para a análise.
  • Siga as políticas da Meta para conteúdos de autenticação, utilidade e marketing.
  • Configure um endpoint de webhook capaz de receber eventos de whatsapp.template.reviewed.

Como funciona

  1. Crie o modelo em uma WABA.
  2. Armazene seu nome, idioma, categoria e o status atual.
  3. Aguarde a aprovação quando a análise for necessária.
  4. Recupere ou liste modelos para acompanhar as mudanças de status.
  5. Envie apenas modelos válidos para o caso de uso de destino e que estejam em um estado apto para envio.
  6. Edite ou exclua o modelo quando o conteúdo ou o ciclo de vida mudar.
A edição substitui o conteúdo do modelo existente. Inclua todos os componentes que devem permanecer após a edição.

Requisição

POST /whatsapp/templates
Os nomes dos modelos devem ser identificadores de aplicativo estáveis. Use variáveis apenas nas posições aceitas pelo componente selecionado.

Resposta

A resposta confirma a criação do modelo e seu estado atual. PENDING não significa que o modelo já possa ser enviado.

Defina uma identidade de recurso estável

Trate cada combinação de WABA, nome de modelo e idioma como um único recurso. Mantenha um registro de recursos com o wabaId proprietário, nome estável, código de localidade exato, finalidade, responsável, contrato de variáveis, status atual da API, estado de implantação e versão de substituição. Use um nome previsível, como <domain>_<purpose>_v<major>:
  • auth_login_otp_v1
  • orders_pickup_ready_v2
  • growth_summer_offer_v3
Incremente a versão principal quando uma alteração afetar as posições das variáveis, tipos de componentes, botões, categoria ou o significado da mensagem. Mantenha os nomes independentes de nomes de equipes e datas.

Escolha a categoria antes de escrever o conteúdo

Escolha a categoria com base no motivo pelo qual o cliente receberá a mensagem. Se um modelo mesclar informações transacionais com uma promoção, crie-o como marketing ou divida as finalidades em modelos separados.

Defina e congele o contrato de variáveis

Defina as variáveis como um contrato de API antes que redatores ou tradutores comecem. Para cada variável, registre sua posição, significado semântico, formato, origem, exemplo representativo e comportamento de fallback. Por exemplo, Order {{0}} is ready at {{1}}. pode usar este contrato: Mantenha o significado de cada posição estável entre versões e localidades. Crie uma nova versão se precisar reordenar ou alterar a finalidade das variáveis. Antes do envio para análise:
  • Forneça um exemplo seguro e representativo para cada variável do corpo ou do cabeçalho de texto.
  • Valide URLs de cabeçalho de mídia, formatos e tamanhos de arquivo.
  • Limite o cabeçalho de texto a no máximo uma variável e inclua sua amostra.
  • Confirme que as variáveis de botão de URL apareçam apenas onde a API permitir e inclua um URL de exemplo completo.
  • Nunca use credenciais, códigos de uso único, dados pessoais ou mídias privadas em exemplos de análise.

Organize localidades como um único lançamento

Reutilize o mesmo nome versionado para cada localidade em um lançamento, mas gerencie cada par de name e language como um recurso separado. Mantenha os significados das variáveis e as ações dos botões consistentes, mesmo quando a ordem das palavras mudar. Aprove e lance cada localidade de forma independente. Nunca redirecione um usuário para outro idioma apenas porque essa localidade foi aprovada. Use o código exato da localidade (diferenciando maiúsculas de minúsculas) em solicitações de criação, recuperação, edição, exclusão e envio.

Condicione os envios ao status do modelo

Use consultas ou webhooks de whatsapp.template.reviewed para processar aprovação, rejeição, pausa, desativação, arquivamento e outras alterações de ciclo de vida. Mantenha o nome e o idioma exatos usados pelas solicitações de mensagens. Armazene o status da API separadamente do seu estado de implantação. Apenas encaminhe envios de produção para um modelo cujo status atual seja APPROVED e cujo estado de implantação esteja ativo. Uma resposta de criação ou edição bem-sucedida não autoriza envios em produção.

Sincronizar estado

Use Webhooks para atualizações rápidas e APIs de recuperação ou listagem para reconciliação:
  1. Verifique a assinatura de cada evento whatsapp.template.reviewed.
  2. Elimine entregas duplicadas pelo id do evento.
  3. Resolva o recurso por wabaId, name e language.
  4. Armazene tanto o evento de atualização quanto o status atual.
  5. Interrompa o roteamento imediatamente quando o status atual não for APPROVED.
  6. Recupere o modelo de mensagem quando um evento estiver ausente, atrasado ou em conflito com um estado de registro mais recente.
  7. Execute uma reconciliação agendada e paginada de listagem para detectar divergências.
Não use Webhooks como seu único inventário e não faça polling antes de cada mensagem.

Comportamento de edição e exclusão

  • Edite apenas modelos de mensagem em um estado suportado pelo endpoint.
  • Inclua o conjunto completo de componentes desejados na solicitação de edição.
  • A exclusão por nome remove todos os idiomas com esse nome.
  • A exclusão por nome e idioma remove apenas aquele modelo de mensagem localizado.
  • Modelos de mensagem arquivados ainda podem aparecer nos resultados de listagem e recuperação.

Lançar, reverter e desativar versões

Prefira uma versão paralela para alterações significativas:
  1. Crie um novo nome com versão para cada localidade necessária. Mantenha a versão atual aprovada inalterada.
  2. Aguarde até que cada localidade de destino esteja APPROVED e, em seguida, valide suas variáveis, mídias, botões, categoria e conteúdo renderizado.
  3. Direcione uma parcela controlada de envios qualificados para a nova versão e monitore a entrega, a qualidade, as respostas e as atualizações de status.
  4. Migre o tráfego restante somente depois que a nova versão atender aos seus critérios de rollout.
Reverta alternando o roteamento para o nome e idioma aprovados anteriormente. Não use uma edição de emergência como rollback. Desative a versão anterior somente quando filas, campanhas, configurações, testes e janelas de rollback não fizerem mais referência a ela.

Limites e solução de problemas

  • Uma solicitação de envio falha quando o modelo de mensagem não está aprovado ou seus componentes não correspondem aos parâmetros da mensagem.
  • Modelos de mensagem de autenticação usam estruturas predefinidas e restritas.
  • A categoria e o conteúdo do modelo de mensagem devem estar alinhados com as políticas da Meta.
  • Revise os detalhes da rejeição antes de recriar o mesmo conteúdo.
  • Use um novo nome quando um modelo de mensagem excluído ou significativamente alterado não puder ser restaurado com segurança.

Checklist para entrada em produção

  • O nome, finalidade, proprietário, categoria e versão estão registrados.
  • Cada variável possui apenas um significado, formato, exemplo seguro e regra de fallback.
  • Mídias e botões passaram nas verificações de formato, destino e exemplo.
  • Cada localidade necessária está independentemente APPROVED.
  • O fluxo de envio rejeita qualquer status diferente de APPROVED.
  • O processamento de Webhook é verificado, idempotente e reconciliado com a recuperação.
  • O rollout pode restaurar uma versão aprovada anteriormente.
  • Filas, campanhas, configurações, testes e runbooks utilizam a versão pretendida.

Idiomas suportados

Selecione o idioma exato e o código de localidade regional para um modelo de mensagem.

Exemplos de criação de modelos de mensagem

Adapte modelos de mensagem de autenticação, marketing, utilidade, comércio, Flow e chamadas.

API de criação de modelo de mensagem

Inspecione o esquema completo de componentes.

Webhooks de análise de modelos de mensagem

Processe alterações de análise e de ciclo de vida.