name-regex
Os nomes de templates são usados como identificadores estáveis em toda a Meta, nos webhooks e no nosso banco de dados. A Meta exige apenas caracteres minúsculos para que os nomes sejam seguros para URLs e fáceis de comparar (diff) entre diferentes BSPs. Regra:^[a-z][a-z0-9_]{0,511}$ — apenas letras minúsculas, dígitos e underscores. Sem espaços, hífens, letras maiúsculas, pontos ou caracteres acentuados. Deve ser único por WABA e por idioma.
FAÇA
leading-variable
A Meta rejeita textos de corpo que começam com um placeholder porque isso é exibido de forma estranha no celular e não dá ao modelo nenhuma âncora para a classificação de categoria. Um corpo que começa com um nome ou saudação parece uma mensagem; um que começa com{{1}} parece um vazamento de template.
FAÇA
trailing-variable
O espelho da regra leading-variable. Um corpo que termina em{{N}} — mesmo com um ponto final depois — é rejeitado. Adicione pelo menos uma palavra fixa após o último placeholder, idealmente uma frase completa de contexto.
FAÇA
adjacent-variables
Dois placeholders com apenas espaço em branco ou pontuação entre eles são rejeitados. A Meta não consegue renderizar a fronteira de forma limpa nem classificar a intenção quando o corpo é efetivamente uma lista de parâmetros. Coloque pelo menos uma palavra real entre cada par. FAÇAmissing-example
Todo{{n}} em um HEADER, BODY ou botão de URL dinâmico deve ter um exemplo realista correspondente. A Meta usa os exemplos para renderizar a pré-visualização mostrada aos revisores e para classificar a categoria do template. Um template com placeholders e sem exemplos é rejeitado no momento do envio.
FAÇA
example-count-mismatch
O tamanho do array de exemplos deve ser igual ao número de placeholders distintos. Três tokens{{n}} exigem exatamente três strings de exemplo — nem duas, nem quatro. Essa verificação é executada por componente (corpo, texto do cabeçalho, botão de URL).
FAÇA
numeric-only-example
Os valores de exemplo devem ser realistas — ou seja, devem conter caracteres alfabéticos ou um token alfanumérico claramente significativo (valor monetário com símbolo, uma data, um código de pedido). Um número isolado, um único símbolo ou uma string parecida com código sem contexto é rejeitado porque não representa como um destinatário real verá a mensagem. FAÇA"20%", e não "20" com o % ao lado no corpo. Isso elimina a heurística de “número isolado” e é renderizado da mesma forma.
Documentação da Meta: Valores de exemplo.
sequential-numbering
Os placeholders devem começar em{{1}} e seguir sequencialmente, sem lacunas e sem duplicatas. {{1}}, {{2}}, {{3}} é válido; {{1}}, {{3}} não é; {{2}}, {{3}} não é (deve começar em 1). O validador extrai os índices únicos, os ordena e verifica se a lista resultante é igual a [1..N].
FAÇA
params-words-ratio
Um template no qual os placeholders dominam o texto fixo se assemelha a um despejo de dados brutos e é sinalizado durante a revisão de conteúdo. O linter do Switchbord alerta quando a proporção de variáveis em relação ao total de palavras excede aproximadamente 1 em 4 — um template com três tokens{{n}} deve ter pelo menos doze palavras de texto fixo ao redor deles.
FAÇA
length-caps
Cada componente tem um limite rígido de caracteres. Conte a string bruta do template, incluindo os placeholders — a expansão em tempo de execução não conta para o limite.
FAÇA
button-limits
Os botões têm limites rígidos por tipo. Exceder qualquer um desses limites rejeita o template inteiro no momento do envio.
Botões de URL dinâmicos devem ter
{{1}} como única variável, aparecendo no final do caminho da URL ou do valor de consulta — nunca no hostname.
FAÇA
component-ordering
Os componentes de um template devem aparecer na ordemHEADER → BODY → FOOTER → BUTTONS. Cada componente pode aparecer no máximo uma vez, exceto BODY, que é obrigatório exatamente uma vez. A Meta normaliza a ordem em alguns casos, mas rejeita duplicatas e tipos desconhecidos com o código 100.
FAÇA
footer-has-variables
Os rodapés servem para texto estático e legalmente relevante — a identidade do remetente, a instrução de opt-out, um aviso legal. Eles não podem conter placeholders{{n}}. Coloque os dados dinâmicos no corpo.
FAÇA
Conjunto de regex de referência rápida
Se você estiver escrevendo seu próprio validador ou criando scripts para verificações em massa, os regex canônicos são:Veja também
- Seu primeiro template — passo a passo completo.
- Templates de marketing — regras específicas por categoria e opt-out.
- Endpoints da API de templates — envio programático.