Les messages Viber transactionnels sont envoyés au moyen de modèles approuvés au préalable par Viber. Vous enregistrez un modèle directement dans le portail : vous saisissez le texte et les variables, le portail soumet le modèle à Viber pour approbation et, une fois approuvé, vous pouvez l'utiliser dans les modules et dans l'API. La facturation des modèles est décrite sur la page [Types de messages Viber](https://www.bulkgate.com/fr/centre-d-aide/viber/types-de-messages-viber/).

## Avant de commencer

Un modèle est toujours enregistré sous un expéditeur Viber précis ; il vous faut donc d'abord un [expéditeur Viber enregistré](https://www.bulkgate.com/fr/centre-d-aide/viber/enregistrement-expediteur-viber/). Tant que vous n'en avez pas, la section des modèles affiche seulement un avertissement à la place du formulaire.

## Création d'un modèle

1. Dans le portail, ouvrez **Messagerie SMS et Viber → Viber templates**.
2. Cliquez sur **New template**.
3. Remplissez le formulaire selon le tableau ci-dessous et ajoutez si nécessaire des [variables](#variables).
4. Cliquez sur **Créer**. Le portail soumet le modèle à Viber pour approbation.

| Champ        | Ce qu'il faut saisir                                                                                                                                                                                                                                 |
|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Template key | Votre propre libellé du modèle, 64 caractères au maximum. Le portail l'enregistre en minuscules, sans accents, et remplace les espaces et les autres caractères par des traits d'union. Vous verrez sa forme exacte dans la liste des modèles sous le nom, précédée de `@` — c'est ainsi que vous appelez le modèle depuis l'API |
| Nom          | Nom du modèle, 64 caractères au maximum. Seuls les lettres, les chiffres et les espaces sont autorisés — le portail supprime tous les autres caractères                                                                                            |
| Expéditeur   | L'expéditeur Viber sous lequel le modèle est approuvé et depuis lequel les messages sont ensuite envoyés                                                                                                                                            |
| Type         | `Transactional` pour les notifications, `OTP` pour les codes de vérification à usage unique                                                                                                                                                         |
| Langue       | Langue du texte du modèle. Elle est préremplie avec la langue dans laquelle vous utilisez le portail                                                                                                                                                |
| Texte du message | Texte du modèle, 875 caractères au maximum                                                                                                                                                                                                      |

Pour un même expéditeur, une même clé ne peut pas avoir deux modèles dans la même langue. Vous ajoutez une autre langue au même modèle sous forme de [version linguistique](#versions-linguistiques).

## Variables

Une variable est un emplacement du texte qui est remplacé par une valeur précise lors de l'envoi du message, par exemple un numéro de commande.

- Vous ajoutez une variable avec le bouton **Add variable**. Un modèle peut en compter 8 au maximum.
- Pour chacune, vous renseignez le **Nom de variable** (50 caractères au maximum) et un **Example value** (125 caractères au maximum). L'exemple est obligatoire — il est soumis à Viber avec le modèle pour approbation.
- Dans le texte, une variable s'écrit `{{nom}}`. Vous pouvez la saisir à la main ou l'insérer avec le bouton `{}` à côté de la variable — elle est insérée à la fin du texte.

Exemple de texte avec deux variables `numero` et `date` :

> Votre commande {{numero}} a été expédiée et nous vous la livrerons {{date}}. Merci pour votre achat.

### Règles pour les variables

- Chaque variable de la liste doit être utilisée dans le texte.
- Le texte ne doit pas contenir de `{{…}}` dont le nom ne figure pas dans la liste des variables.
- Une variable ne doit pas se trouver tout au début du texte. Pour le type `Transactional`, elle ne doit pas non plus se trouver tout à la fin.

> [!TIP]
> Lorsqu'une variable se trouve au début ou à la fin du texte, le portail n'affiche aucun message — le bouton **Créer** reste simplement inactif. Si le modèle ne peut pas être créé et qu'aucune erreur n'est visible, vérifiez d'abord le début et la fin du texte.

### Modèle OTP

Pour le type `OTP`, le portail ajoute lui-même la variable `pin` avec la valeur d'exemple `0451`. Le code de vérification y est inséré lors de l'envoi du message. La variable `pin` ne peut être ni renommée ni supprimée et elle doit être utilisée dans le texte. Contrairement au modèle transactionnel, elle peut aussi se trouver à la fin du texte.

## Approbation du modèle

Une fois créé, le modèle apparaît dans la liste. Pour chaque version linguistique, vous voyez son texte, son statut et, à côté du statut, l'identifiant du modèle chez Viber.

- **En attente** — Viber est encore en train d'examiner le modèle.
- **Approved** — vous pouvez utiliser le modèle.
- Un modèle refusé n'a pas été approuvé par Viber et ne peut pas être utilisé.

Le statut dans la liste change de lui-même dès que Viber a examiné le modèle.

> [!IMPORTANT]
> Tant qu'un modèle n'est pas **Approved**, le portail n'envoie aucun message au moyen de ce modèle et ne le propose pas dans les modules.

Un modèle approuvé ou refusé ne peut pas être modifié dans le portail. Pour changer le texte, supprimez la version linguistique et créez-la à nouveau avec la même clé — le nouveau texte passe de nouveau par l'approbation.

> [!NOTE]
> Un modèle créé pour votre expéditeur chez Viber en dehors du portail est ajouté automatiquement à la liste et reçoit une clé générée.

## Versions linguistiques

Un même modèle peut avoir son texte en plusieurs langues. Vous ajoutez une autre langue avec l'icône ⊕ **Add language version** à côté du modèle dans la liste. La clé, le nom, l'expéditeur et le type restent les mêmes — vous choisissez seulement la langue, rédigez le texte et renseignez les variables.

Chaque version linguistique est approuvée séparément et a son propre statut. Lors de l'envoi, vous choisissez toujours une version linguistique précise.

Vous supprimez une version linguistique avec l'icône de corbeille située à côté. Après confirmation, elle est supprimée à la fois dans le portail et chez Viber.

## Utilisation d'un modèle

### Dans les modules

Dans la section **Modules & APIs**, ouvrez les paramètres des notifications et, pour le canal Viber, faites passer le texte du message d'un texte libre à un modèle enregistré. Choisissez-le ensuite dans la liste — seuls les modèles approuvés de l'expéditeur défini pour la notification sont proposés, chaque version linguistique séparément.

Pour chaque variable du modèle s'affiche un champ dans lequel vous pouvez insérer des variables du module. Si vous laissez le champ vide, la valeur de la variable du module portant le même nom est utilisée. Vous verrez le résultat dans l'aperçu sous les champs.

### Via l'API

Dans l'[API transactionnelle avancée](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-viber-transactionnel/), un modèle est envoyé dans l'objet `viber` avec les paramètres suivants :

| Paramètre             | Valeur                                                                                                                             |
|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------|
| `template_id`         | Clé du modèle précédée de `@`, par exemple `@confirmation-commande`, ou l'identifiant du modèle chez Viber tiré de la liste des modèles |
| `template_language`   | Code de la version linguistique que vous souhaitez envoyer. S'il est omis, `en` est utilisé                                       |
| `template_parameters` | Valeurs de toutes les variables du modèle sous leurs noms, par exemple `{"numero": "12345", "date": "vendredi"}`. Chacune est tronquée à 125 caractères |

La plupart des langues ont un code à deux lettres (`cs`, `sk`, `en`, `de`…). Les exceptions sont le français `fr_FR`, l'espagnol `es_ES`, le portugais `pt_BR` et `pt_PT`, et le chinois `zh-Hans` et `zh-Hant`.

L'API n'envoie pas le message au moyen du modèle lorsque le modèle n'existe pas, n'a pas la version linguistique demandée, n'est pas approuvé ou ne reçoit pas toutes ses variables.
