Modèles de message

Un modèle de message est requis pour démarrer des conversations marketing, utilitaires et d’authentification. Ces conversations peuvent être des messages de service clientèle ou des rappels de rendez-vous, des informations relatives à un paiement ou à une livraison, des alertes, etc.

Conditions requises

  • Un modèle de message doit être approuvé avant d’être utilisé pour démarrer une conversation. En savoir plus
  • Pour démarrer des conversations marketing, utilitaires et d’authentification, le client ou la cliente doit avoir accepté de recevoir des messages de votre entreprise. En savoir plus.

Catégories de modèles prises en charge

Consultez la page Catégories.

Traductions

Lors de l’envoi d’un modèle de message, vous devez spécifier la langue dans le champ language. Votre entreprise est responsable de toutes les traductions qu’elle souhaite utiliser.

Langues prises en charge

Langues prises en charge

Vous trouverez ci-dessous les langues prises en charge pour les modèles de message.

LanguesCode

Afrikaans

af

Albanais

sq

Arabe

ar

Azerbaïdjanais

az

Bengali

bn

Bulgare

bg

Catalan

ca

Chinois (CHN)

zh_CN

Chinois (HKG)

zh_HK

Chinois (TAI)

zh_TW

Croate

hr

Tchèque

cs

Danois

da

Néerlandais

nl

Anglais

en

Anglais (RU)

en_GB

Anglais (États-Unis)

en_US

Estonien

et

Philippin

fil

Finnois

fi

Français

fr

Allemand

de

Grec

el

Gujarati

gu

Hausa

ha

Hébreu

he

Hindi

hi

Hongrois

hu

Indonésien

id

Irlandais

ga

Italien

it

Japonais

ja

Kannada

kn

Kazakh

kk

Coréen

ko

Lao

lo

Letton

lv

Lituanien

lt

Macédonien

mk

Malais

ms

Malayalam

ml

Marathi

mr

Norvégien

nb

Perse

fa

Polonais

pl

Portugais (BR)

pt_BR

Portugais (POR)

pt_PT

Pendjabi

pa

Roumain

ro

Russe

ru

Serbe

sr

Slovaque

sk

Slovène

sl

Espagnol

es

Espagnol (ARG)

es_AR

Espagnol (ESP)

es_ES

Espagnol (MEX)

es_MX

Swahili

sw

Suédois

sv

Tamoul

ta

Télougou

te

Thaïlandais

th

Turc

tr

Ukrainien

uk

Ourdou

ur

Ouzbek

uz

Vietnamien

vi

Zoulou

zu

Packs de langue

Les modèles de message sont stockés dans les packs de langue. Un pack de langue est un ensemble d’éléments de modèles de message dans une langue ou des paramètres régionaux spécifiques. Si au moins une traduction est disponible dans une langue ou des paramètres régionaux donnés, un pack est créé pour cette langue ou ces paramètres régionaux.

Un espace de nom de modèles de message est un ensemble de packs de langue destinés à une entreprise spécifique.

Options de la politique en matière de langue

Lorsqu’un modèle de message est envoyé alors que le champ language: policy est paramétré sur deterministic, la valeur par défaut, WhatsApp diffuse le modèle de message exactement dans la langue et les paramètres régionaux demandés. L’appareil interroge ensuite le serveur sur la disponibilité d’un pack de langue dans la langue choisie.

Quand l’appareil reçoit ce message, il procède comme suit :

  • Vérification de la règle/du code : si les options définies sont "policy": "deterministic" et "code": "en", y a-t-il un pack en mis en cache sur l’appareil ?
    • Si la réponse est oui, passez à la vérification de l’élément.
    • Si la réponse est non, le pack en est-il disponible sur le serveur ?
      • Si la réponse est oui, mettez à jour le cache local et passez à la vérification de l’élément.
      • Si la réponse est non, le serveur renvoie une erreur de type structure_unavailable via un webhook, et aucun message n’est généré sur l’appareil.

  • Vérification de l’élément : est-ce que l’élément "element": "hello_world" existe ?
    • Si la réponse est oui, décompactez les paramètres et affichez le message sur l’appareil.
    • Si la réponse est non :
      • Si le pack de langue se trouve dans le cache local, téléchargez le dernier pack en depuis le serveur et recommencez la vérification de l’élément.
      • Si le pack de langue a été téléchargé récemment depuis le serveur, le serveur renvoie une erreur de type structure_unavailable via un webhook, et aucun message n’est généré sur l’appareil.

La langue/les paramètres régionaux de l’appareil sont complètement ignorés.

Si vous utilisez la politique deterministic, votre requête peut porter sur des données qui n’existent pas. Vérifiez que :

  • l’espace de nom est correct
  • le nom de l’élément est correct
  • la traduction dans la langue/les paramètres régionaux existe pour cet élément
  • le nombre de paramètres envoyés correspond à celui spécifié dans le modèle de message

Localisation

Les modèles de message fournissent un support de localisation prêt à l’emploi en localisant le message en fonction des paramètres régionaux de l’appareil.

Paramètres localisables

Les modèles sont associés à des paramètres qui sont intégrés de manière dynamique dans le message. Pour l’exemple utilisé dans ce document, le modèle de message ressemble à cela :

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

Pour "namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e" associé à "element_name": "purchase_with_credit_card", la première valeur de votre liste remplace la variable {{1}} dans le modèle de message, et la seconde valeur remplace la variable {{2}}.

Le nombre de paramètres transférés dans la charge utile doit correspondre à celui de l’objet template. Si ce n’est pas le cas, vous recevez un rappel indiquant qu’un problème d’affichage du modèle de message est survenu.

Certains de ces paramètres (par exemple, date_time ou currency) sont localisables et s’affichent en fonction des préférences de langue et de paramètres régionaux du client ou de la cliente. Si l’appareil ne parvient pas à localiser un paramètre, il adopte alors la valeur fournie par fallback_value.

S’il vous faut spécifier la devise et la date en plus de fallback_value, utilisez les objets currency et date_time. Le client ou la cliente peut ainsi localiser les données de manière optimale, ne revenant à fallback_value que lorsqu’il ou elle ne peut pas les localiser.

Les options localizable_params figurent dans le tableau ci-dessous :

Paramètres

NomDescription

fallback_value

type : Chaîne

Obligatoire.

Texte par défaut en cas d’échec de la localisation. Tous les paramètres de localisation doivent avoir une valeur par défaut. Lors de la spécification du texte, seule la valeur par défaut est requise.

currency

type : objet currency

Facultatif.

Si l’objet currency est utilisé, il contient les paramètres obligatoires currency_code et amount_1000.

date_time

type : objet date_time

Facultatif.

Si l’objet date_time est utilisé, une définition de la date et de l’heure est nécessaire. Voir l’exemple ci-dessous qui illustre l’utilisation de deux des options.

Objet currency

Le client de l’API WhatsApp Business tente de formater la devise en fonction d’une localisation spécifiée.

NomDescription

currency_code

type : Chaîne

Obligatoire.

Code devise conforme à la norme ISO 4217

amount_1000

type : Entier

Obligatoire.

Montant multiplié par 1 000

Exemple

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

Objet date_time

Le client de l’API WhatsApp Business tente de formater la date/l’heure en fonction d’une localisation spécifiée. Les formats de date et d’heure pris en charge incluent :

  • Heure composée : l’heure est assemblée à partir de composantes (c.-à-d., le jour de la semaine, le mois, l’heure, etc.) L’heure spécifiée est la même, quel que soit le fuseau horaire du client.
  • Heure Unix : l’heure affichée dépend du fuseau horaire du client.

DateTime

NomDescription

component

type : DateTimeComponent

Obligatoire en l’absence de unix_epoch.

Date/heure basée sur des composantes

unix_epoch

type : DateTimeUnixEpoch

Obligatoire en l’absence de component.

Date/heure basée sur l’époque Unix

L’un des champs suivants est obligatoire : component ou unix_epoch. Vous ne pouvez utiliser que l’un d’entre eux, le cas échéant.

DateTimeComponent

NomDescription

day_of_week

type : Chaîne

Facultatif.

En cas de différence par rapport à la valeur dérivée de la date (si elle est spécifiée), utilisez la valeur dérivée. Les chaînes de caractères et les chiffres sont acceptés.
Options : "MONDAY", 1, "TUESDAY", 2, "WEDNESDAY", 3, "THURSDAY", 4, "FRIDAY", 5, "SATURDAY", 6, "SUNDAY", 7

year

type : Entier

Facultatif.

Année

month

type : Entier

Facultatif.

Mois

day_of_month

type : Entier

Facultatif.

Jour du mois

hour

type : Entier

Facultatif.

Heure

minute

type : Entier

Facultatif.

Minute

calendar

type : Chaîne

Facultatif.

Type du calendrier
Options : GREGORIAN, SOLAR_HIJRI

Exemple

{
    "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 sera bientôt obsolète. DateTimeComponent sera la nouvelle valeur par défaut. Veuillez apporter des modifications à votre code pour éviter tout problème.

NomDescription

timestamp

type : Entier

Obligatoire.

Horodatage d’époque en secondes. Ce champ sera bientôt obsolète.

Étapes suivantes

Ce document contient des informations de référence sur les modèles de message. Consultez Envoi de modèles de messages pour découvrir comment créer et envoyer un modèle. La section Modèle de message de la page Messages détaille tous les paramètres qui peuvent être utilisés dans un modèle de message.

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