Modelos de mensagem

É preciso ter um modelo de mensagem para começar conversas sobre marketing, serviços e autenticação. As conversas podem incluir mensagens de atendimento ao cliente, lembretes sobre horas marcadas, atualizações de pagamento ou envio, alertas e muito mais.

Requisitos

  • O modelo de mensagem precisa ser aprovado antes de ser usado para iniciar uma conversa. Saiba mais.
  • Para iniciar conversas sobre marketing, serviços e autenticação com um cliente, o cliente precisa ter aceitado receber mensagens da sua empresa. Saiba mais.

Categorias de modelos compatíveis

Consulte Categorias.

Traduções

Ao enviar um modelo de mensagem, é necessário especificar o idioma com o campo language. A empresa é responsável por todas as traduções que pretende usar.

Idiomas compatíveis

Idiomas com suporte

A seguir, há exemplos de idiomas com suporte para modelos de mensagem.

IdiomaCódigo

Africâner

af

Albanês

sq

Árabe

ar

Azerbaijano

az

Bengalês

bn

Búlgaro

bg

Catalão

ca

Chinês (CHN)

zh_CN

Chinês (HKG)

zh_HK

Chinês (TAI)

zh_TW

Croata

hr

Tcheco

cs

Dinamarquês

da

Holandês

nl

Inglês

en

Inglês (Reino Unido)

en_GB

Inglês (EUA)

pt_BR

Estoniano

et

Filipino

fil

Finlandês

fi

Francês

fr

Alemão

de

Grego

el

Guzerate

gu

Hauçá

ha

Hebraico

he

Hindi

hi

Húngaro

hu

Indonésio

id

Irlandês

ga

Italiano

it

Japonês

ja

Canarês

kn

Cazaque

kk

Coreano

ko

Laociano

lo

Letão

lv

Lituano

lt

Macedônio

mk

Malaio

ms

Malaiala

ml

Marati

mr

Norueguês

nb

Persa

fa

Polonês

pl

Português (BR)

pt_BR

Português (POR)

pt_PT

Punjabi

pa

Romeno

ro

Russo

ru

Sérvio

sr

Eslovaco

sk

Esloveno

sl

Espanhol

es

Espanhol (ARG)

es_AR

Espanhol (ESP)

es_ES

Espanhol (MEX)

es_MX

Suaíli

sw

Sueco

sv

Tâmil

ta

Telugo

te

Tailandês

th

Turco

tr

Ucraniano

uk

Urdu

ur

Uzbeque

uz

Vietnamita

vi

Zulu

zu

Pacotes de idiomas

Os modelos de mensagem são armazenados em pacotes de idiomas. Um pacote de idiomas é um conjunto de elementos de modelos de mensagem para determinado idioma ou localidade. Se uma empresa utiliza pelo menos uma tradução para um idioma ou uma localidade, um pacote para tal idioma ou localidade será criado.

Um namespace de modelo de mensagem é um conjunto de pacotes de idiomas para uma determinada empresa.

Opções da política de idiomas

Se o modelo de mensagem for enviado com o campo language: policy definido como deterministic, o valor padrão, o WhatsApp veiculará o modelo de mensagem exatamente no mesmo idioma e localidade solicitados. Depois, o dispositivo consultará o servidor para obter o pacote desse idioma específico.

Quando a mensagem for entregue ao dispositivo, acontecerá o seguinte:

  • Verificação de código/política: considerando "policy": "deterministic" e "code": "en", há um pacote en em cache no dispositivo?
    • Se sim, vá para Verificação de elemento.
    • Se não, é possível encontrar o pacote en no servidor?
      • Se sim, atualize o cache local e acesse Verificação de elemento.
      • Se não, registre a falha. O servidor retorna um erro structure_unavailable por meio de um Webhook, e nenhuma mensagem é renderizada no dispositivo.

  • Verificação de elemento: o elemento "element": "hello_world" existe?
    • Se sim, desempacote os parâmetros e renderize a mensagem no dispositivo.
    • Se não:
      • Se o pacote de idiomas for de um cache local, baixe o pacote en mais recente do servidor e repita a Verificação de elemento.
      • Caso o pacote de idiomas tenha sido baixado recentemente do servidor, registre a falha. O servidor retornará um erro structure_unavailable via Webhook, e nenhuma mensagem será renderizada no dispositivo.

As configurações de idioma/localidade do dispositivo serão completamente ignoradas.

Um problema que pode surgir ao usar a política deterministic é se o que você estiver solicitando não existir. Confirme que:

  • o namespace está correto;
  • o nome do elemento está correto;
  • a tradução do idioma/localidade existe para esse elemento;
  • o número de parâmetros enviados corresponde ao especificado no modelo de mensagem.

Localização

Os modelos de mensagem dão suporte imediato localizando a mensagem de acordo com as configurações locais do dispositivo.

Parâmetros localizáveis

Os modelos têm parâmetros que são dinamicamente incorporados à mensagem. Para o exemplo usado neste documento, o modelo de mensagem será assim:

"You made a purchase for {{1}} using a credit card ending in {{2}}."

No caso de "namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e" com "element_name": "purchase_with_credit_card", o primeiro valor listado substitui a variável {{1}} no modelo de mensagem, e o segundo valor substitui a variável {{2}}.

O número de parâmetros transmitidos para a carga deve corresponder ao número de parâmetros no objeto template. Caso contrário, você receberá um retorno de chamada informando que houve um problema com a exibição do modelo de mensagem.

Alguns dos parâmetros (por exemplo, date_time ou currency) são localizáveis para que sejam exibidos de forma adequada com base nas preferências de idioma e localidade do cliente. Se o dispositivo não conseguir localizar um parâmetro, o valor fallback_value será definido por padrão.

Para especificar moeda e data além de fallback_value, use os objetos currency e date_time. Dessa forma, o cliente poderá otimizar a localização dos dados da melhor forma possível, definindo fallback_value como padrão quando não for possível localizar os dados.

Veja as opções de localizable_params na tabela abaixo:

Parâmetros

NomeDescrição

fallback_value

Tipo: string

Obrigatório.

Texto padrão se a localização falhar. Todos os parâmetros de localização devem ter um valor de fallback. Ao especificar o texto, apenas o valor de fallback será necessário.

currency

Tipo: objeto currency

Opcional.

Se o objeto currency for usado, ele conterá parâmetros obrigatórios currency_code e amount_1000.

date_time

Tipo: objeto date_time

Opcional.

Se o objeto date_time for usado, será necessário fornecer mais definições de data e hora. Veja o exemplo abaixo de duas das opções.

O objeto currency

O cliente da WhatsApp Business API tenta formatar a moeda de acordo com a localização definida.

NomeDescrição

currency_code

Tipo: string

Obrigatório.

Código da moeda conforme a norma ISO 4217.

amount_1000

Tipo: número inteiro

Obrigatório.

Valor multiplicado por 1.000.

Exemplo

{
    "type": "currency",
    "currency" : {
        "fallback_value": "$230.99",
        "code": "USD",
        "amount_1000": 230990
    }
}  

O objeto date_time

O cliente da WhatsApp Business API tenta formatar a data/hora de acordo com a localização especificada. Os formatos de data e horário compatíveis incluem os seguintes:

  • Horário do componente: o horário é formado por componentes (isto é, dia da semana, mês, hora e outros). O horário definido será o mesmo, independentemente do fuso horário em que o cliente se encontra.
  • Horário do Unix: o horário exibido depende do fuso horário em que o cliente se encontra.

DateTime

NomeDescrição

component

Tipo: DateTimeComponent

Obrigatório se unix_epoch não estiver presente.

Data/hora por componente.

unix_epoch

Tipo: DateTimeUnixEpoch

Obrigatório se component não estiver presente.

Data/hora da época do Unix.

Pelo menos um dos seguintes campos é obrigatório: component ou unix_epoch. Caso sejam usados, somente um deles pode estar presente.

DateTimeComponent

NomeDescrição

day_of_week

Tipo: string

Opcional.

Se for diferente do valor obtido com a data (caso tenha sido especificada), use o valor obtido. Tanto strings quanto números são aceitos.
Opções:"MONDAY", 1, "TUESDAY", 2, "WEDNESDAY", 3, "THURSDAY", 4, "FRIDAY", 5, "SATURDAY", 6, "SUNDAY" e 7.

year

Tipo: número inteiro

Opcional.

O ano.

month

Tipo: número inteiro

Opcional.

O mês.

day_of_month

Tipo: número inteiro

Opcional.

O dia do mês.

hour

Tipo: número inteiro

Opcional.

A hora.

minute

Tipo: número inteiro

Opcional.

O minuto.

calendar

Tipo: string

Opcional.

O tipo de calendário.
Opções:GREGORIAN e SOLAR_HIJRI.

Exemplo

{
    "type": "date_time",
    "date_time" : {
        "fallback_value": "October 25, 2020",
        "day_of_week": "Saturday",
        "day_of_month": 25,
        "year": 2020,
        "month": 10,
        "hour": 12,
        "minute": 0
    }
}

DateTimeUnixEpoch

DateTimeUnixEpoch ficará obsoleto. DateTimeComponent será o padrão a partir de então. Faça alterações no seu código para evitar problemas.

NomeDescrição

timestamp

Tipo: número inteiro

Obrigatório.

Registro de data e hora de época em segundos. Este campo ficará obsoleto.

Próximas etapas

Este documento contém informações de referência sobre modelos de mensagens. Para ver um guia de como criar e enviar um modelo, consulte Como enviar modelos de mensagem. Para ver todos os parâmetros que podem ser usados em um modelo de mensagem, consulte Mensagens, Modelo de mensagem.

https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager