

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création de modèles de messages
<a name="create-message-templates1"></a>

Si vous concevez et envoyez fréquemment un certain type de message, tel qu’un e-mail hebdomadaire ou un rappel de rendez-vous, vous pouvez le créer et l’enregistrer en tant que modèle de message. Vous pouvez ensuite utiliser le modèle comme point de départ chaque fois que vous avez besoin d’envoyer ce type de message, au lieu de concevoir et d'écrire à nouveau le message.

Cette rubrique s'adresse aux administrateurs et aux responsables de centres de contact qui souhaitent créer des modèles de messages à l'aide du site Web Amazon Connect d'administration. 

**Astuce**  
Même si les modèles de messages utilisent les agents Connect AI APIs, ils n'entraînent pas de facturation supplémentaire. Vous ne payez que le prix du message de chat ou de l’e-mail. Pour plus d’informations, consultez [Tarification d’Amazon Connect](https://aws.amazon.com/connect/pricing/).

## Que sont les modèles de messages ?
<a name="what-message-templates"></a>

Un *modèle de message* est un ensemble de contenu et de paramètres que vous pouvez créer, enregistrer, puis réutiliser dans les messages que vous envoyez. Dans certaines entreprises, ils sont appelés *modèles d’e-mails* et *modèles de SMS*. Lorsque vous créez un modèle de message, vous spécifiez le contenu que vous souhaitez réutiliser dans les divers composants de messages qui sont basés sur le modèle.

Lorsque vous créez un message, vous pouvez choisir un modèle à utiliser pour le message. Si vous choisissez un modèle, Amazon Connect renseigne le message avec le contenu et les paramètres de ce modèle.

Vous pouvez créer les types de modèles de message suivants dans Amazon Connect :
+ **Modèles d’e-mail** pour les messages que vous envoyez en réponse aux e-mails des clients envoyés à votre contact, ou que les agents peuvent utiliser pour répondre aux questions fréquemment posées. Les modèles d’e-mail peuvent définir la structure du message pour l’agent (pour une signature, par exemple) ou ils peuvent constituer une réponse complète.
+ **SMS templates (Modèles de SMS)** pour les SMS que vous envoyez à partir de campagnes ou à un public restreint en tant que messages directs ou de test.
+ **WhatsApp modèles de** WhatsApp messages que vous envoyez à partir de campagnes ou à un public limité sous forme de messages directs ou de test.

Vous pouvez créer des modèles dotés des fonctionnalités suivantes : 
+ Mise en forme de texte enrichie (gras, italique, souligné, barré, exposant, indice), style de police de texte enrichi (couleur, surlignage, taille, titre, famille, citation, bloc de code), caractères spéciaux, emojis, listes (à puces, numérotées), alignement et mises en retrait, tableaux, liens hypertextes et images intégrées
+ Attributs du modèle d’e-mail permettant de définir des détails personnalisés tels que le nom du client, l’adresse e-mail du client, le numéro de compte client, le numéro de téléphone du client, l’adresse du client et le nom de l’agent.
+ Pièces jointes pouvant atteindre 1 Mo. Pour obtenir une liste des types de pièces jointes pris en charge, consultez [Amazon Connect spécifications des fonctionnalités](feature-limits.md).

Lorsque vous créez un e-mail basé sur un modèle, Amazon Connect renseigne le message avec le contenu et les paramètres que vous avez définis dans ce modèle. 

## Comment créer des modèles de messages
<a name="howto-message-templates"></a>

1. Connectez-vous au site Web Amazon Connect d'administration avec un compte administrateur ou un compte utilisateur dont le profil de sécurité inclut **la gestion du contenu** - **Modèles de messages** - **Créez**. 

1. Dans le panneau de navigation, choisissez **Message templates (Modèles de message)**.

1. S’il s’agit de la première fois que vous créez des modèles, vous êtes invité à créer une base de connaissances dans laquelle les modèles seront stockés.

   Votre entreprise peut avoir plusieurs bases de connaissances, mais une seule d’entre elles peut être associée aux modèles. 

1. Sélectionnez **Create template (Créer un modèle)**.

1. Sous **Canal**, choisissez un canal.

1. Dans **Nom**, saisissez le nom du modèle. Le nom doit commencer par une lettre ou un chiffre. Il peut contenir jusqu'à 128 caractères. 

1. Pour **Description *(facultatif)***, saisissez une brève description du modèle. La description peut contenir jusqu'à 255 caractères.

1. Pour **Profils de routage *(facultatif)***, entrez les profils de routage pour que les agents puissent utiliser ce modèle à partir de leur espace de travail.

1. Selon que vous créez un **e-mail**, un **SMS** ou un **WhatsApp**modèle, effectuez l'une des opérations suivantes :

   Pour les modèles d’e-mails :

   1. Sous **Email details (Détails de l'e-mail)**, utilisez les options suivantes pour spécifier le contenu des messages qui utilisent le modèle :
      + Pour **Subject (Objet)**, saisissez le texte que vous souhaitez afficher dans la ligne d'objet du message.
      + Pour **Corps**, saisissez le contenu que vous souhaitez afficher dans le corps du message.
        + **Éditeur** : utilisez l’éditeur de texte enrichi pour saisir le contenu. Utilisez la barre d’outils de mise en forme pour appliquer une mise en forme et ajouter des liens et d’autres fonctionnalités au message. Pour que vous puissiez ajouter des pièces jointes, votre administrateur informatique doit activer cette fonctionnalité pour cette option.
        + **Code** : vous pouvez saisir manuellement un contenu HTML, y compris la mise en forme, les liens, ainsi que d’autres fonctionnalités que vous souhaitez inclure dans le message.

        Vous pouvez également inclure du contenu personnalisé dans l’objet et le corps du modèle à l’aide d’attributs. Pour cela, ajoutez des variables de message qui font référence à des attributs spécifiques qu’Amazon Connect ou vous-même avez créés (attribut qui stocke le prénom d’un utilisateur, par exemple). En utilisant des variables de message, vous pouvez afficher différents contenus pour chaque destinataire d'un message qui utilise le modèle. 

        Pour utiliser une variable de message, choisissez le nom d’un attribut existant dans l’outil de **Recherche d’attributs**. Amazon Connect l’ajoutera à votre message. Vous pouvez le copier et le coller à l’emplacement de votre choix. Pour plus d’informations, consultez [Ajout de contenu personnalisé aux modèles de messages](personalize-templates.md).  
![\[Outil de recherche d’attributs sur la page Modèles de messages.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/message-template-attribute-finder.png)

   1. Sous **En-têtes *(facultatif)***, vous pouvez ajouter deux en-têtes statiques à l’e-mail. Par exemple, pour ajouter un lien de désabonnement en un clic à un e-mail promotionnel, ajoutez les deux en-têtes suivants :
      + **List-Unsubscribe** : sélectionnez le lien de désinscription de votre entreprise. Ce lien doit prendre en charge les demandes HTTP POST pour permettre le traitement de la demande de désinscription du destinataire.
      + **List-Unsubscribe-Post** : définissez-le sur `List-Unsubscribe=One-Click`.

      L’inclusion d’un lien de désabonnement dans votre e-mail est une bonne pratique, et dans certains pays, c’est une obligation légale. Notez que si votre modèle inclut un lien avec cet attribut, vous devez avoir mis en place un mécanisme pour gérer les demandes de désabonnement.

   1. Lorsque vous avez terminé de saisir le contenu et les paramètres du modèle, choisissez **Enregistrer**.

   1. Avant de mettre le modèle à la disposition des utilisateurs, nous vous recommandons d’envoyer un e-mail de test pour vous assurer que ce modèle fonctionne comme prévu.

   1. Lorsque vous êtes prêt à ce que le modèle soit disponible dans les flux, les campagnes et pour les agents via l’espace de travail, suivez les étapes permettant de l’[activer](#create-message-templates1). 

**Pour les modèles de SMS :**

1. Sous **Détails du SMS** dans le **corps**, écrivez le message. Suivez les instructions ci-dessus pour personnaliser le message en ajoutant les attributs nécessaires.

1. Lorsque vous avez terminé de saisir le contenu et les paramètres du modèle, choisissez **Create (Créer)**.

1. Avant de mettre le modèle à la disposition des utilisateurs, nous vous recommandons d’envoyer un message de test pour vous assurer que ce modèle fonctionne comme prévu.

1. Lorsque vous êtes prêt à ce que le modèle de SMS soit disponible dans le bloc **Envoyer un message** ou à ce que le modèle d’e-mail soit disponible pour les campagnes par e-mail, suivez les étapes permettant de l’[activer](#create-message-templates1). 

**Pour les WhatsApp modèles :**

1. Dans **WhatsApp Détails**, sélectionnez le modèle dans le menu déroulant. Veuillez noter que seuls les modèles approuvés par Meta peuvent être utilisés pour créer des modèles de messages. Assurez-vous que vos modèles importés sont approuvés dans Meta Business WhatsApp Manager avant de continuer.

1. Définissez un nom pour le modèle et ajoutez des descriptions si nécessaire.

1. Une fois que vous avez sélectionné le modèle Meta approved, vous verrez les détails affichés au format **Body** and **Template Metadata (JSON)**.

1. **Mappage des attributs :** pour permettre la diffusion personnalisée des messages dans Amazon Connect, vous devez associer vos méta-attributs importés à du texte personnalisé. En combinant vos attributs Connect existants avec du texte brut, vous pouvez créer des messages personnalisés pour vos clients. Par exemple, vous pouvez voir Hello \$1\$11\$1\$1 dans le **corps**, et vous pouvez choisir `Attributes.Customer.FirstName` de le faire correspondre dans la liste d'attributs Connect.

1. Il existe différents types de boutons qui peuvent être ajoutés à un modèle de contenu. Si le modèle que vous avez sélectionné inclut des boutons, tels qu'une URL de site Web contenant des attributs, vous pouvez soit sélectionner Connect les attributs à mapper, soit saisir du texte statique.

1. Lorsque vous avez terminé le mappage des attributs, choisissez **Enregistrer**.

1. Avant de mettre le modèle à la disposition des utilisateurs, nous vous recommandons d’envoyer un message de test pour vous assurer que ce modèle fonctionne comme prévu.

# Activation d’un modèle de message
<a name="activate-message-templates"></a>

Afin de vous aider à gérer le développement et l’utilisation de modèles de message individuels, Amazon Connect prend en charge la gestion des versions pour tous les types de modèles de message. La gestion des versions vous permet de créer un historique des modifications apportées à un modèle : chaque version est un instantané d’un modèle à un moment donné. La gestion des versions permet également de contrôler le contenu et les paramètres des messages qui utilisent un modèle.

Vous ne pouvez activer que les modèles de message qui ont été **enregistrés en tant que nouvelle version**. Cela permet d’éviter d’activer accidentellement des modèles qui sont des brouillons.

Lorsqu’une version de modèle est **activée**, elle peut être ajoutée à [Bloc de flux dans Amazon Connect : Envoyer un message](send-message.md) et peut être mise à la disposition des agents via leur espace de travail.

**Pour activer un modèle de message**

Connectez-vous au site Web Amazon Connect d'administration avec un compte administrateur ou un compte utilisateur dont le profil de sécurité inclut **la gestion du contenu** - **Modèles de messages** - **Créez**. 

1. Dans le menu de navigation de gauche, choisissez **Modèles de messages**.

1. Sur la page **Modèles de messages**, enregistrez le modèle à l’aide de l’option **Enregistrer en tant que nouvelle version**.

1. Sur la page **Modèles de messages**, rouvrez le modèle que vous venez d’enregistrer.

1. Utilisez le menu déroulant pour choisir la version du modèle à activer.  
![\[Numéro de version d’un modèle.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/message-template-version.png)

1. Choisissez **Activer**.  
![\[Bouton Activer sur la page Modèles de messages.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/message-template-version-activate.png)

# À propos de la gestion des versions de modèles de messages
<a name="about-version-message-templates"></a>

Chaque fois que vous modifiez un modèle, vous pouvez spécifier si vous souhaitez enregistrer vos modifications en tant que nouveau brouillon du modèle ou en tant que mise à jour du brouillon le plus récent du modèle. Lorsque vous concevez, développez et affinez un modèle, chacune de ces versions sert d'instantané qui peut vous aider à suivre la progression et l'état du modèle. Autrement dit, vous pouvez utiliser la gestion des versions pour stocker, suivre et gérer un modèle au fur et à mesure qu'il change au fil du temps. Vous pouvez effectuer les actions suivantes :
+ Suivre l’historique d’un modèle : pour chaque modèle, Amazon Connect fournit une liste de ses versions. Cette liste affiche le nom de chaque version. La liste est triée par ordre chronologique décroissant, la version la plus récente apparaissant en premier.
+ Afficher et comparer les versions d’un modèle : à l’aide de la liste des versions, vous pouvez parcourir les versions précédentes d’un modèle. Si vous choisissez une version dans la liste, Amazon Connect affiche le contenu et les paramètres stockés dans cette version.
+ Restaurer une version précédente d’un modèle : si vous trouvez des problèmes dans la version la plus récente d’un modèle, vous pouvez restaurer une version précédente qui ne contient pas ces problèmes. Vous pouvez ensuite enregistrer cette version précédente en tant que nouvelle version du modèle. Celle-ci devient alors la version la plus récente du modèle.

Vous pouvez également utiliser la gestion de versions pour contrôler la version d'un modèle qui peut être utilisée dans les messages. Pour ce faire, vous devez désigner une version spécifique comme version active d'un modèle. La version active est généralement la version la plus récente vérifiée et approuvée pour utilisation dans les messages, en fonction du flux de travail de votre organisation pour le développement et la gestion des modèles.

Lorsque vous définissez une version en tant que version active, vous activez cette version pour l'utiliser dans les messages. Un modèle évoluant au fil du temps, vous pouvez désigner une version différente comme version active, et vous pouvez changer cette désignation plusieurs fois.

# Ajout de contenu personnalisé aux modèles de messages
<a name="personalize-templates"></a>

Pour diffuser du contenu dynamique et personnalisé dans des messages qui utilisent un modèle, ajoutez des *variables de message* au modèle de message. Une *variable de message* est un espace réservé qui fait référence à un attribut spécifique que vous ou Amazon Connect avez créé pour stocker des informations sur vos utilisateurs. Chaque attribut correspond généralement à une caractéristique d'un utilisateur, comme le prénom d'un utilisateur ou la ville où il habite. En ajoutant des variables de messages aux modèles, vous pouvez utiliser ces attributs pour fournir du contenu personnalisé à chaque destinataire d'un message qui utilise un modèle.

Si un modèle contient des variables de messages, Amazon Connect remplace chaque variable par la valeur actuelle correspondante de l’attribut pour chaque destinataire. Il le fait lors de chaque envoi d’un message qui utilise le modèle. Cela signifie que vous pouvez envoyer du contenu personnalisé à chaque destinataire sans créer plusieurs versions personnalisées d'un message ou d’un modèle de message. Vous pouvez également être sûr que le message contient les dernières informations dont vous disposez pour un destinataire.

Par exemple, si votre projet est une application de fitness pour les coureurs et qu'il comprend des attributs pour le prénom de chaque utilisateur, son activité préférée et son enregistrement personnel, vous pouvez utiliser les variables de texte et de messages suivantes dans un modèle :

`Hi {{Attributes.Customer.FirstName}}, attached is information about the insurance plans we discussed.`

Lorsque vous envoyez un message qui utilise le modèle, Amazon Connect remplace les variables par la valeur actuelle de chaque attribut pour chaque destinataire. Voici quelques exemples :

**Exemple 1**  
`Hi Sofia, attached is information about the insurance plans we discussed.`

**Exemple 2**  
`Hi Alejandro, attached is information about the insurance plans we discussed.`

## Ajout de variables de messages
<a name="message-templates-add-variables"></a>

Vous pouvez ajouter des attributs de message à un nouveau modèle que vous créez ou à un modèle existant. Si vous ajoutez des variables à un modèle existant, Amazon Connect n’applique pas nécessairement les modifications aux messages qui utilisent ce modèle et qui n’ont pas encore été envoyés. Cela dépend de la version du modèle à laquelle vous ajoutez des variables et de la façon dont vous avez configuré les messages qui utilisent le modèle. 

**Pour ajouter une variable de message à un modèle de message**

1. Dans le panneau de navigation, choisissez **Message templates (Modèles de message)**.

1. Sur la page **Message templates (Modèles de message)** effectuez l'une des opérations suivantes : 
   + Pour créer un nouveau modèle et y ajouter une variable de message, choisissez **Create a template (Créer un modèle)**. Ensuite, sur la page du modèle, saisissez un nom pour ce dernier et, éventuellement, une description.
   + Pour ajouter une variable de message à un modèle existant, choisissez le modèle auquel vous souhaitez ajouter une variable. Ensuite, sur la page du modèle, choisissez **Edit (Modifier)**. Sous **Template details (Détails du modèle)**, utilisez le sélecteur de version pour choisir la version du modèle que vous souhaitez utiliser comme point de départ. Si vous choisissez la version la plus récente du modèle, vous pouvez enregistrer vos modifications directement dans cette version du modèle. Dans le cas contraire, vous pouvez enregistrer vos modifications en tant que nouvelle version du modèle.

1. Dans la section des détails du message, déterminez où vous souhaitez ajouter une variable de message. Pour les modèles d’e-mail, vous pouvez ajouter des variables à l’objet ou au corps du message. Pour les modèles de SMS, vous pouvez ajouter des variables dans le corps du message. 

1. Placez votre curseur à l’endroit où vous souhaitez placer l’attribut dans le message. Cliquez ou appuyez sur l’**outil de recherche d’attributs**, puis faites défiler la page jusqu’à l’attribut pour lequel vous souhaitez ajouter une variable de message.   
![\[Outil de recherche d’attributs sur la page Modèles de messages.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/message-template-attribute-finder.png)

   Vous pouvez choisir parmi les types d'attributs suivants :
   + **Attributs système** :
     + **CustomerEndpointAddress**: adresse e-mail du client à l'origine du contact.
     + **SystemEmailAddress**: adresse e-mail à laquelle le client a envoyé l'e-mail.
     + **Nom** : nom d’affichage figurant dans l’e-mail que le client a envoyé à votre centre de contact. 
   + **Attributs d’agent** :
     + **FirstName**
     + **LastName**
   + **Attributs Profils des clients**. Pour une liste et des descriptions complètes, consultez [Attributs Profils des clients](connect-attrib-list.md#customer-profiles-attributes).
     + **Attributs de recommandation** : lorsque vous utilisez Predictive Insights avec des campagnes sortantes, vous pouvez inclure des recommandations de produits personnalisées dans vos modèles de messages. Ces attributs sont disponibles lorsque vous configurez des recommandations dans le cadre d'une campagne déclenchée par un événement.

       Chaque recommandation est accessible à l'aide d'un index, par exemple `{{Attributes.Customer.Recommendations.[0].CatalogItem.Name}}` `{{Attributes.Customer.Recommendations.[1].CatalogItem.Name}}` pour la première recommandation, pour la seconde, etc.  
![\[Éditeur de modèles d'e-mail affichant les attributs de recommandation dans l'outil de recherche d'attributs et des recommandations de produits personnalisées dans le corps du message.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/RecommendationAttributesInTemplate.png)

       Pour plus d'informations sur la configuration des recommandations dans les campagnes, consultez[Création d’une campagne sortante à l’aide de déclencheurs d’événements](how-to-create-campaigns-using-event-triggers.md).

1. Lorsque vous cliquez sur un attribut dans l’outil de recherche d’attributs, il est automatiquement placé dans le message. Vous pouvez copier et coller cet attribut à un autre emplacement.

   Une fois que vous avez collé l’attribut, Amazon Connect l’affiche entre deux ensembles d’accolades (`{{Attributes.Agent.FirstName}}`, par exemple). L’image suivante montre un e-mail avec trois attributs : le prénom et le nom de famille du client, et le prénom de l’agent.  
![\[E-mail avec des attributs de message.\]](http://docs.aws.amazon.com/fr_fr/connect/latest/adminguide/images/message-template-email-attributes.png)

1. Lorsque vous avez terminé, effectuez l'une des opérations suivantes :
   + Si vous avez ajouté des variables de message à un nouveau modèle, choisissez **Enregistrer**.
   + Si vous avez ajouté des variables de message à un modèle existant et que vous souhaitez enregistrer vos modifications en tant que nouvelle version du modèle, choisissez **Enregistrer en tant que nouvelle version**.
   + Si vous avez ajouté des variables de message à un modèle existant et que vous souhaitez enregistrer vos modifications en tant que mise à jour du brouillon le plus récent du modèle, choisissez **Enregistrer**. Si vous souhaitez mettre à jour le brouillon et créer une autre version à partir de ce brouillon, choisissez **Enregistrer en tant que nouvelle version**.

# Utilisation des assistants de modèles de messages
<a name="message-template-helpers"></a>

Avec les modèles de message Amazon Connect, les clients peuvent créer des modèles réutilisables basés sur le langage Handlebars.js. Les assistants fournissent diverses fonctionnalités, telles que le formatage d’un prix dans la devise d’une région spécifique ou l’ajout d’un lieu basé sur un fuseau horaire. Un assistant peut utiliser une chaîne ou un nombre entier spécifique pour la valeur ou une variable de message Amazon Connect spécifique.

Voici les catégories d’assistants, décrites dans les sections suivantes.

## Assistants par défaut
<a name="defaulthelpers"></a>

Cette section décrit les assistants **intégrés** fournis par Handlebars. 

**Important**  
L’assistant `with` intégré fourni par Handlebars n’est pas pris en charge. Cependant, tous les autres assistants Handlebars sont entièrement pris en charge. Pour obtenir la liste complète, consultez [Assistants intégrés](https://handlebarsjs.com/guide/builtin-helpers.html) sur [handlebarsjs.com](https://handlebarsjs.com). 

 Voici les assistants intégrés :
+ `each` : itère une liste.
**Note**  
La taille maximale de la liste est de 15 éléments.
+ `if` : évalue une déclaration.

*each*  
Itère une liste. Cet assistant utilise uniquement une instruction de bloc. Si vous le souhaitez, vous pouvez :   
+ envoyer `@index` dans la demande pour référencer l’indice de boucle actuel.
+ utiliser l’assistant `this` pour référencer l’élément en cours d’itération.
+ renvoyer la réponse de l’assistant sous forme de liste, à l’aide de la balise `<li>`.
**Utilisation**  
`{{#each value}}`  
La valeur à la position `{{@index}}` est `{{this}}`.  
`{{else}}`  
La condition est false.  
`{{/each}}`  
`each` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/each}}` fermant dans l’instruction de bloc.  
**Exemple**  
Dans cet exemple, `each` est utilisé pour renvoyer une liste des couleurs préférées d’un utilisateur. Dans le cas d’une valeur `false`, une déclaration `else` est renvoyée. Si la demande est la suivante :  
`{{#each User.UserAttributes.FavoriteColors}}`  
`<li>{{this}}</li>`  
`{{else}}`  
*You have no favorite colors.*  
`{{/each}}` renvoie  
+ *red*
+ *blue*
+ *yellow*
pour une déclaration true.

*if*  
Évalue si quelque chose est « true » et renvoie une réponse basée sur l’évaluation.   
**Utilisation**  
`{{#if value}}`  
La valeur est indéfinie  
`{{else}}`  
La valeur est indéfinie  
`{{/if}}`  
`if` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/if}}` fermant dans l’instruction de bloc.  
**Exemple**  
Dans cet exemple, l’assistant `if` est utilisé pour évaluer le prénom d’un utilisateur. Si le nom est trouvé, un message d’accueil est renvoyé qui transmet le prénom de l’utilisateur dans la réponse. Dans le cas contraire, l’instruction `else` renvoie un autre message d’accueil.  
`{{#if User.UserAttributes.FirstName.[0]}}`  
`Hello {{User.UserAttributes.FirstName.[0]}},`  
`{{else}}`  
*Hello,*  
`{{/if}}`  
renvoie *Hello, Jane* si l'`if`assistant est vrai.

## Assistants conditionnels
<a name="conditionhelpers"></a>

Cette section décrit les assistants **conditionnels**. 

Les assistants conditionnels peuvent être utilisés sur une seule ligne ou dans une instruction de bloc. Vous pouvez personnaliser la réponse quelle que soit la méthode d’assistance que vous utilisez. Vous pouvez transmettre des aides conditionnelles supplémentaires dans les instructions sur une seule ligne et dans les instructions par blocs. Les assistants conditionnels suivants indiquent d’abord l’utilisation d’une seule ligne, puis d’une instruction de bloc à l’aide d’une clause `else` facultative. Voici les assistants conditionnelles :
+ `and` : compare si tous les éléments transmis sont égaux.
+ `eq` : teste si deux éléments sont égaux.
+ `gt` : teste si un élément est supérieur à un autre.
+ `gte` : teste si un élément est supérieur ou égal à un autre.
+ `if` : évalue si quelque chose est vrai.
+ `lt` : teste si un élément est inférieur à un autre.
+ `lte` : teste si un élément est inférieur ou égal à un autre.
+ `neq` : évalue si deux éléments ne sont pas égaux.
+ `not` : inverse la réponse d’une opération booléenne.
+ `or` : compare si l’un des éléments de l’argument est égal.

*and*  
Compare si *tous* les éléments transmis dans un argument sont égaux, puis renvoie la réponse en fonction du résultat. Cet assistant peut être utilisé pour les valeurs non booléennes. Vous devez transmettre au moins deux éléments pour la condition.  
**Utilisation**  
+ `{{and valuea valueb valuec valued yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#and valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/and}}`

  `and` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/and}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cet exemple, `eq` est utilisé dans l’instruction de bloc `and` pour déterminer si les deux chaînes transmises pour les attributs `Location.City ` et `Location.Country` sont vraies. Si les deux conditions sont égales, une déclaration true est renvoyée. Si l’un de ces attributs est faux, une déclaration `else` est renvoyée.  
`{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}`  
*You live in Los Angeles and the US.*  
`{{else}}`  
*You don’t live in Los Angeles and the US.*  
`{{/and}}`

*eq*  
Teste si deux éléments sont égaux ou si la valeur d’un élément est égale à une chaîne passée.  
**Utilisation**  
+ `{{eq valuea valueb yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#eq valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/eq}}`

  `eq` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/eq}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cet exemple, `eq` est utilisé pour évaluer si la valeur de `User.UserAttributes.FavoriteColors.[0]` est*Red*. Si la réponse est `true`, une déclaration true est renvoyée. Si la réponse est `false`, une déclaration `else` est renvoyée.  
`{{#eq User.UserAttributes.FavoriteColors.[0] "red"}}`  
*Your favorite color is red.*  
`{{else}}`  
*You don't like red.*  
`{{/eq}}`

*gt*  
Teste si la valeur d’un élément est supérieure à celle d’un autre.   
**Utilisation**  
+ `{{gt valuea valueb yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#gt valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/gt}}`

  `gt` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/gt}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cet exemple, l'assistant compare la valeur de l'`User.UserAttributes.UserAge.[0]`attribut à une chaîne *17* afin de vérifier si l'âge de l'utilisateur est supérieur à 17 ans. Si la réponse est `true`, une déclaration true est renvoyée. Si la réponse est `false`, une déclaration `else` est renvoyée.  
`{{#gt User.UserAttributes.UserAge.[0] "17"}}`  
*You are old enough to rent a car.*  
`{{else}}`  
*You are not old enough to rent a car.*  
`{{/gt}}`

*gte*  
Teste si la valeur d’un élément est supérieure ou égale à celle d’un autre.  
`Usage`  
+ `{{gte valuea valueb yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#gte valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/gte}}`

  `get` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/gte}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cet exemple, l'assistant compare l'`User.UserAttributes.UserAge.[0]`attribut à une chaîne *18* afin de vérifier si l'âge de l'utilisateur est supérieur ou égal à 18 ans. Si la réponse est `true`, une déclaration true est renvoyée. Si la réponse est `false`, une déclaration `else` est renvoyée.  
`{{#gte User.UserAttributes.UserAge.[0] "18"}}`  
*You are old enough to rent a car.*  
`{{else}}`  
*You are not old enough to rent a car.*  
`{{/gte}}`

*if*  
Évalue si quelque chose est « true » et renvoie une réponse basée sur l’évaluation.  
**Utilisation**  
+ `{{#if value}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#if value}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/if}}`

  `if` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/if}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cet exemple, l’assistant est utilisé pour évaluer le prénom d’un utilisateur. Si le nom est trouvé, un message d’accueil est renvoyé qui transmet le prénom de l’utilisateur dans la réponse. Dans le cas contraire, l’instruction « else » renvoie un autre message d’accueil.  
`{{#if User.UserAttributes.FirstName.[0]}}`  
*Hello* `{{User.UserAttributes.FirstName.[0]}}`*,*  
`{{else}}`  
*Hello,*  
`{{/if}}`  
renvoie *Hello Jane,* si l'assistant est vrai.

*lt*  
Teste si la valeur d’un élément est inférieure à la valeur d’un autre.  
**Utilisation**  
+ `{{lt valuea valueb yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#lt valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/lt}}`

  `lt` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/lt}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cet exemple, l'assistant compare l'`User.UserAttributes.UserAge.[0]`attribut à une chaîne *18* afin de vérifier si l'âge de l'utilisateur est inférieur à 18 ans. Si la réponse est `true`, une déclaration true est renvoyée. Si la réponse est `false`, une déclaration `else` est renvoyée.  
`{{#lt User.UserAttributes.UserAge.[0] "18"}}`  
*You are not old enough to rent a car.*  
`{{else}}`  
*You are old enough to rent a car.*  
`{{/lt}}`

*lte*  
Teste si la valeur d’un élément est inférieure ou égale à celle d’un autre.  
**Utilisation**  
+ `{{lte valuea valueb yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#lte valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/lte}}`

  `lte` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/lte}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cette instruction de bloc, l'assistant compare l'`User.UserAttributes.UserAge.[0]`attribut à une chaîne *17* afin de vérifier si l'âge de l'utilisateur est inférieur ou égal à 17 ans. Si la réponse est `true`, une déclaration true est renvoyée. Si la réponse est `false`, une déclaration `else` est renvoyée.  
`{{#lte User.UserAttributes.Age.[0] "17"}}`  
*You are not old enough to rent a car.*  
`{{else}}`  
*You are old enough to rent a car.*  
`{{/lte}}`

*neq*  
Vérifiez si deux éléments *ne sont pas* égaux.  
**Utilisation**  
+ `{{neq valuea valueb yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#neq valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/neq}}`

  `neq` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/neq}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cette instruction de bloc, l’attribut `User.UserAttributes.FavoriteColors.[0]` est comparé à la chaîne `Red`. Si la réponse est `true`, une déclaration true est renvoyée. Si la réponse est `false`, une déclaration `else` est renvoyée.  
`{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}`  
*You do not like red.*  
`{{else}}`  
*You like red.*  
`{{/neq}}`

*not*  
Inverse la réponse d’une opération booléenne, de sorte que si `not` est une comparaison positive, une instruction `true` soit renvoyée. Si la réponse est false, une instruction « else » est renvoyée.   
**Utilisation**  
+ `{{not value yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition.
+ `{{#not value}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/not}}`

  `not` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/not}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cette instruction de bloc, l'`User.UerAttributes.FavoriteColors.[0]`attribut est vérifié par rapport à une chaîne à *red* l'aide de l'`eq`assistant. L’assistant `not` renvoie alors le contraire de l’assistant `eq`. Si la réponse renvoie une couleur autre que*red*, `true` une instruction est renvoyée. Si la réponse est renvoyée*red*, une `else` déclaration indiquant une fausse déclaration est renvoyée.  
`{{#not (eq User.UserAttributes.Favorite.Colors.[0] "red")}}`  
*You do not like red.*  
`{{else}}`  
*You like red.*  
`{{/not}}`  
**Exemple**  
Dans cet exemple,   
`{{not (eq User.UserAttributes.FavoriteColors.[0] "red")}}`  
renvoie faux si `User.UserAttributes.FavoriteColors.[0]` c'est le cas*red*.

*or*  
Compare si *l’un* des éléments de l’argument est égal, puis renvoie une réponse basée sur le résultat. Cet assistant peut être utilisé pour les valeurs non booléennes.  
**Utilisation**  
+ `{{or valuea valueb valuec valued yes='y' no='n'}}`

  Vous pouvez remplacer *y* et par *n* d'autres valeurs, telles que *yes* et*no*, ou toute autre chaîne que vous souhaitez renvoyer, en fonction de la condition. Vous devez transmettre au moins deux éléments pour la condition.
+ `{{#or valuea valueb}}`

  La condition est true.

  `{{else}}`

  La condition est false.

  `{{/or}}`

  `or` doit être précédé d’un signe dièse (`#`) et se terminer par un symbole `{{/or}}` fermant dans l’instruction de bloc.
**Exemple**  
Dans cette instruction de bloc `or`, deux chaînes de l’attribut `Location.City` sont également comparées à l’aide de l’assistant `eq`. Si l’un des attributs est `true`, une déclaration true est renvoyée. Si une ou plusieurs réponses sont `false`, une instruction `else` est renvoyée.  
`{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}`  
*You live on the West Coast of the United States.*  
`{{else}}`  
*You do not live on the West Coast of the United States.*  
`{{/or}}`

## Assistants de chaîne
<a name="stringhelpers"></a>

Cette section décrit les assistants de **chaîne** suivants :
+ `abbreviate` : tronque une valeur.
+ `capitalize` : met en majuscule chaque mot entre des espaces blancs.
+ `capitalizeFirst` : met en majuscule le premier caractère d’une valeur.
+ `center` : centre une valeur.
+ `cut` : supprime une valeur.
+ `dateFormat` : définit le style de date.
+ `inflect` : renvoie une chaîne au singulier ou au pluriel en fonction du nombre.
+ `join` : joint un tableau, un itérateur ou un objet itérable.
+ `ljust` : justifie une valeur dans la marge de gauche.
+ `lower` : convertit une valeur en minuscules.
+ `now` : imprime la date actuelle.
+ `ordinalize` : ordinalise une valeur numérique.
+ `replace` : remplace une chaîne par une autre.
+ `rjust` : justifie une valeur par la marge droite.
+ `slugify` : convertit une valeur en minuscules et supprime les caractères autres que des mots, convertit les espaces en tirets et supprime les espaces blancs de fin.
+ `stripTags` : supprime les balises HTML [X] d’une valeur.
+ `substring` : renvoie une nouvelle chaîne sous forme de sous-chaîne d’une valeur transmise.
+ `upper` : convertit la valeur transmise en majuscules.
+ `yesno` : remplace true, false et « no » par « Oui », « Non » et « Peut-être ».

*abbreviate*  
Tronque une valeur si celle-ci dépasse le nombre spécifié. Les espaces blancs sont inclus dans le décompte des longueurs. Des points de suspension apparaissent dans la réponse pour indiquer une valeur tronquée. Les points de suspension sont pris en compte dans la valeur tronquée de la réponse. Ce type d’assistant est pratique si vous avez une grande table et un espace minimal. Le fait de tronquer les valeurs d’une cellule permet d’uniformiser l’apparence du tableau.  
**Utilisation**  
 `{{abbreviate value X}}`, en *X* remplaçant par une valeur numérique indiquant le nombre de caractères à conserver. Les nombres négatifs ne sont pas pris en charge.  
**Exemple**  
Dans cet exemple, `abbreviate` est utilisé pour tronquer `User.UserAttributes.LastName.[0]` à six (6) caractères. La réponse comprend des points de suspension, dont les points sont pris en compte dans le total des six caractères.  
`{{abbreviate User.UserAttributes.LastName.[0] 6}}` renvoie  
*Ale...*si *Alejandro* est la valeur de`[0]`.

*capitalize*  
Met en majuscule chaque mot entre des espaces blancs.  
**Utilisation**  
 `{{capitalize value}}`  
**Exemple**  
Dans cet exemple, la capitalisation initiale est appliquée à chaque mot de l’entrée `Attributes.description.[0]`.  
`{{capitalize Attributes.description.[0]}}`  
Si `Attributes.description.[0]` renvoie   
 *My First Post*, si la valeur de `Attributes.description.[0]` est*my first post*.

*capitalizeFirst*  
Met en majuscule le premier caractère d’une valeur.  
**Utilisation**  
`{{capitalizeFirst value}}`  
**Exemple**  
Dans cet exemple, la mise en majuscule est appliquée au premier caractère du premier mot de l’entrée `Attributes.description.[0]`.  
`{{capitalizeFirst Attributes.description.[0]}}` renvoie  
 *My first post*, si la valeur de `Attributes.description.[0]` est*my first post*.  
**Exemple**

*center*  
Centre la valeur dans un champ d’une largeur donnée par le nombre spécifié. Vous pouvez éventuellement transmettre un caractère à afficher pour le remplissage ou laisser le champ vide. Si aucun caractère n’est transmis, un espace blanc est utilisé.  
**Utilisation**  
 `{{center value size=X [pad=" "}}`, en *X* remplaçant par une valeur numérique.  
Si `pad` est laissé vide, un espace blanc est utilisé comme remplissage dans la réponse. Si vous transmettez un caractère, celui-ci apparaît dans chaque espace du remplissage. Les nombres négatifs ne sont pas pris en charge.  
**Exemple**  
Dans cet exemple, la valeur de `Location.City ` est centrée sur une taille de*19*.  
`{{center Location.City size=19}}` renvoie   
*"    Los Angeles    "*Si `Location.City` c'est le cas*Los Angeles*. Notez que les guillemets affichés dans l’exemple de sortie sont uniquement fournis pour souligner la valeur.

*cut*  
Supprime la valeur spécifiée d’une chaîne de caractères.   
**Utilisation**  
 `{{cut value [" "]}}`, en remplaçant l’espace dans le paramètre entre guillemets par la valeur à couper. Si aucune valeur de paramètre n’est transmise, un espace blanc est utilisé.   
**Exemple**  
Cet exemple supprime la lettre *e* de l'`Location.City`attribut.  
`{{cut Location.City "e"}}` renvoie  
*Los Angls*si `[Location.City` c'est le cas*Los Angeles*.

*dateFormat*  
Définit le style de date par défaut pour la date dans n’importe quelle réponse. Pour obtenir la liste des fuseaux horaires IDs, voir[https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).  
**Utilisation**  
`{{dateFormat date [inputFormat="format1"] [outputFormat="format2"] [tz=timeZoneId] [locale=localeID]}}`  
Le paramètre `format` doit être défini sur .  
+ « `full` » : format de date complet. Par exemple : *Tuesday, September 19, 2020*
+ « `long` » : format de date long. Par exemple : *September 19, 2020*
+ « `medium` » : format de date moyen. Par exemple : *Sept 19, 2020*
+ « `short` » : format de date court. Par exemple : *9/19/20*
+ « `pattern` » : utilise un format de modèle de date personnalisé. Pour plus d’informations sur les modèles de date, consultez [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html).
« `locale` » : utilise un format de date basé sur des paramètres régionaux donnés. Pour plus d’informations concernant les paramètres régionaux, consultez [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-).  
Si un format n’est pas transmis, `medium` est utilisé par défaut.   
**Exemple**  
Dans cet exemple, l'`[0]`entrée `User.UserAttributes.StartDate.[0]` est **09/19/2020** et un message est envoyé à un utilisateur en utilisant le format de `full` date basé sur le *America/Los\$1Angeles* fuseau horaire.  
`We can meet with you any time on ``{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.` renvoie  
*We can meet with you any time on Tuesday, September 19, 2020.*

*inflect*  
Renvoie une chaîne au singulier ou au pluriel en fonction de la valeur du décompte.  
**Utilisation**  
 `{{inflect count singular plural [includeCount=false]}}`  
+ Entrez les formes singulière et plurielle de la chaîne que vous souhaitez transmettre dans l’argument.
+ Si `includeCount` est défini sur `false`, aucun nombre n’est renvoyé dans la réponse. S’il est défini sur `true`, le `count` est inclus dans la réponse.
**Exemple**  
Les exemples suivants montrent l’inflexion d’un achat de pommes, avec ou sans `includeCount`.  
`Thank you for your purchase of {{inflect 3 apple apples includeCount=false}}.` renvoie :  
*Thank you for your purchase of apples.*  
Si `includeCount` est défini sur `true`, la réponse est  
*Thank you for your purchase of 3 apples.*

*joindre*  
Joint un tableau, un itérateur ou un objet itérable. La réponse renvoie une liste, chaque valeur de la liste étant concaténée par le caractère que vous avez transmis à `join`. Par exemple, vous pouvez séparer les valeurs à l’aide d’une virgule (`,`). La valeur de cet assistant doit être une liste sans indice de position d’attribut. Par exemple, `Attributes.custom_attribute`.  
**Utilisation**  
`{{join value " // " [prefix=""] [suffix=""]}}`  
**Exemple**  
Dans cet exemple, une liste de couleurs est renvoyée, séparée par une virgule et un espace (`", "`) :  
`{{join Attributes.favorite_colors ", "}}` renvoie   
*blue, red, green*si `Attributes.favorite_colors` c'est la liste*blue,red,green*.

*ljust*  
Justifie la valeur dans la marge de gauche et ajoute de l’espace sur la droite pour que la longueur de la valeur corresponde au nombre. Les nombres négatifs ne sont pas pris en charge.  
Vous pouvez éventuellement transmettre un caractère à afficher pour le `pad` ou laisser le champ vide. Si vous laissez la valeur `pad` vide, la valeur par défaut est un espace blanc.  
**Utilisation**  
`{{ljust value size=X [pad=" "]}}`, où *X* est la longueur totale de la valeur, espaces blancs compris.   
**Exemple**  
Dans cet exemple, une valeur de justification gauche de *15 * est appliquée à Location.City.  
`{{ljust Location.City size=15}}` renvoie  
*"Los Angeles    "*si la valeur de `Location.City` est*Los Angeles*. Notez que les guillemets affichés dans l’exemple de sortie sont uniquement fournis pour souligner la valeur.

*lower*  
Convertit une valeur en minuscules.  
**Utilisation**  
`{{lower value}}`  
**Exemple**  
Dans cet exemple, l’entrée `[0]` pour `User.UserAttributes.LastName.[0]` est remplacée par des minuscules.  
`{{lower User.UserAttributes.LastName.[0]}}` renvoie  
*santos*si *Santos* est la valeur de`[0]`.

*maintenant*  
Imprime la date actuelle en fonction de l’ID de fuseau horaire passé. Pour obtenir la liste des fuseaux horaires IDs, voir[https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).  
**Utilisation**  
`{{now ["format"] [tz=timeZoneId] [locale=localeID]}}`  
Le paramètre `format` doit être défini sur .  
+ « `full` » : format de date complet. Par exemple : *Tuesday, September 19, 2020*
+ « `long` » : format de date long. Par exemple : *September 19, 2020*
+ « `medium` » : format de date moyen. Par exemple : 19 sept 2020
+ « `short` » : format de date court. Par exemple : 19/9/20
+ « `pattern` » : un modèle de date. Pour plus d’informations sur les modèles de date, consultez [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html). 
« `locale` » : utilise un format de date basé sur des paramètres régionaux donnés. Pour plus d’informations concernant les paramètres régionaux, consultez [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-).  
Si un format n’est pas transmis, `medium` est utilisé par défaut.  
**Exemple**  
Dans cet exemple, la date actuelle à Los Angeles est renvoyée au format `medium`.  
`{{now "medium" tz=America/Los_Angeles}}` renvoie   
*Sept 19, 2020*.

*ordinalize*  
Ordinalise la valeur numérique transmise dans l’argument. Par exemple, *1* est ordinalisé comme *1st* et *2* comme*2nd*. Seules les valeurs numériques sont prises en charge.  
**Utilisation**  
`{{ordinalize [number]}} `  
**Exemple**  
Dans cet exemple, l’entrée `[0]` de `User.UserAttributes.UserAge` est ordinalisée et renvoyée, accompagnée d’un message.   
`Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!`renvoie *22* ordinalisé sous la forme*22nd*.  
*Congratulations on your 22nd birthday\$1*

*replace*  
Remplace une chaîne par une autre. Une chaîne ou une valeur numérique doit être littérale. Les caractères génériques ne sont pas pris en charge.  
**Utilisation**  
`{{replace stringToReplace replacementValue}}`  
**Exemple**  
Dans cet exemple, un trait de soulignement (\$1) remplace un espace blanc.  
`{{replace Location.City " " "_"}}` renvoie  
*Los\$1Angeles*si `Location.City ` c'est le cas*Los Angeles*.

*rjust*  
Justifie la valeur par la marge de droite et ajoute de l’espace vers la gauche pour que la longueur de la valeur corresponde au nombre. Les nombres négatifs ne sont pas pris en charge.  
Vous pouvez éventuellement transmettre un caractère à afficher pour le `pad` ou laisser le champ vide. Si vous conservez la valeur `pad` vide, la valeur par défaut est un espace blanc.  
**Utilisation**  
`{{rjust value size=X [pad=" "]}}`, où *X* est la longueur totale de la valeur, espaces blancs compris.   
**Exemple**  
Dans cet exemple, une valeur de justification correcte de *15* est appliquée à l'`Location.City`attribut.  
`{{rjust Location.City size=15}}` renvoie  
*"    Los Angeles" *. si `Location.City` c'est le cas*Los Angeles*. Notez que les guillemets affichés dans la sortie ne sont fournis qu’à titre d’accentuation.

*slugify*  
Convertit la valeur transmise en minuscules, supprime les caractères autres que les mots (alphanumériques et traits de soulignement), convertit les espaces en traits d’union et supprime tout espace blanc en début ou en fin de texte.  
**Utilisation**  
`{{slugify value}}`  
**Exemple**  
Dans cet exemple, l’opération slugify est effectuée pour l’attribut `Location.City`.   
`{{slugify Location.City}}` renvoie  
*los-angeles*si `Location.City` c'est le cas*Los Angeles*.

*stripTags*  
Supprime les balises HTML [X] d’une valeur.  
**Utilisation**  
 `{{stripTags value}}`  
**Exemple**  
Dans cet exemple, les balises HTML pour l'utilisateur. UserAttributes.interest. [0] sont supprimés.   
`{{stripTags User.UserAttributes.interests.[0]}}` renvoie  
*Art*, si `User.UserAttributes.interests.[0]` c'est le cas`<h1>Art</h1>`.

*substring*  
Renvoie une nouvelle chaîne sous forme de sous-chaîne de la valeur transmise. La longueur et la position sont déterminées par les paramètres `startOffset` et `endOffset`, qui doivent être des entiers. Les nombres négatifs ne sont pas pris en charge. Si un `endOffset` n’est pas transmis, la sous-chaîne utilise la valeur de fin d’origine de la chaîne.  
**Utilisation**  
`{{substring value startOffset [endOffset]}}`  
**Exemple**  
Dans cet exemple, un décalage de 4 et un endOffset de 9 sont appliqués à l’attribut Location.City.   
`{{substring Location.City 4 9}} ` renvoie  
`Angel`si Los Angeles nous `Location.City` vaut*Los Angeles*.

*upper*  
Convertit la valeur transmise en majuscules.  
**Utilisation**  
`{{upper value}}`  
**Exemple**  
Dans cet exemple, l’entrée `[0] ` de l’attribut `User.UserAttributes.LastName` est convertie en majuscules.  
`{{upper User.UserAttributes.LastName.[0]}}` renvoie  
*ROE*si la `User.UserAttributes.LastName.[0]` valeur est*Roe*.

*yesno*  
Remplace `true`, `false` et `NULL` par `Yes`, `No` et `Maybe`.  
**Utilisation**  
`{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}`  
**Exemple**  
Dans cet exemple, l’attribut `IsUserSubscribed` indique si un utilisateur est abonné à une liste particulière.  
`{{yesno Attributes.IsUserSubscribed}}` renvoie   
*yes*si `Attributes.IsUserSubscribed` c'est le cas*true*.

## Assistants mathématiques et d’encodage
<a name="mathhelpers"></a>

Cette section décrit les assistants **mathématiques et d’encodage**.
+ `add` : renvoie la somme de deux nombres.
+ `ceiling` : arrondit un entier à son plafond mathématique.
+ `decode64` : décode en chaîne une valeur encodée en base64.
+ `divide` : renvoie le quotient de deux nombres.
+ `encode64` : encode une chaîne en base64.
+ `floor` : arrondit un entier à son plancher mathématique.
+ `md5`— Hache une chaîne transmise à l'aide de l' MD5algorithme.
+ `modulo` : renvoie le reste de deux nombres avec des virgules flottantes.
+ `multiply` : renvoie le produit de deux nombres.
+ `round` : arrondit une valeur décimale au nombre entier le plus proche.
+ `sha256` : hache une chaîne transmise en utilisant SHA-256.
+ `sha512` : hache une chaîne transmise en utilisant SHA-512.
+ `subtract` : renvoie la différence de deux nombres.
+ `uuid` : génère aléatoirement un UUID au format 128 bits.

*ajouter*  
Renvoie la somme de deux nombres avec des virgules flottantes.  
**Utilisation**  
`{{add arg1 arg2}}`  
**Exemple**  
`{{add 5 2.3}} ` renvoie  
*7.3*

*ceiling*  
Arrondit un entier à son plafond mathématique, qui est le nombre entier le plus élevé le plus proche de la valeur transmise.  
**Utilisation**  
`{{ceiling value}}`  
**Exemple**  
`{{ceiling 5.23}}` renvoie  
*6*

*decode64*  
Décode en chaîne une valeur encodée en base64.  
**Utilisation**  
`{{decode64 "string"}}`  
**Exemple**  
`{{decode64 "SGVsbG8gd29ybGQ="}}` renvoie  
*Hello World*

*divide*  
Renvoie le quotient de deux nombres, virgules flottantes comprises.  
**Utilisation**  
 `{{divide arg1 arg2}}`  
**Exemple**  
`{{divide 5 2.3}}` renvoie  
*2.17391304*

*encode64*  
Encode la chaîne transmise dans l’argument avec base64.  
**Utilisation**  
`{{encode64 "string"}}`  
**Exemple**  
`{{encode64 "Hello World"}}`  
*SGVsbG8gd29ybGQ=*

*floor*  
Arrondit un entier à son plancher mathématique, qui est le plus petit nombre entier le plus proche de la valeur transmise.  
**Utilisation**  
`{{floor value}}`  
**Exemple**  
`{{floor 5.23}}` renvoie  
*5*

*md5*  
Hache une chaîne transmise à l'aide de l' MD5 algorithme.  
**Utilisation**  
`{{md5 "string"}}`  
**Exemple**  
`{{md5 "Hello World"}}`  
*3e25960a79dbc69b674cd4ec67a72c62*

*modulo*  
Renvoie le reste de deux nombres en utilisant des nombres à virgule flottante.  
**Utilisation**  
`{{modulo arg1 arg2}}`  
**Exemple**  
`{{modulo 7 2}}` renvoie  
*1*

*multiply*  
Renvoie le produit de deux nombres, avec les virgules flottantes éventuelles.  
**Utilisation**  
`{{multiply arg1 arg2}}`  
**Exemple**  
`{{multiply 5 2.3}}` renvoie  
*11.5*

*round*  
Arrondit une décimale vers le haut ou vers le bas au nombre entier le plus proche.  
**Utilisation**  
`{{round value}}`  
**Exemple**  
`You spent an average of {{round 19.21}} minutes on our website each day.` renvoie :  
*You spent an average of 19 minutes on our website each day.*

*sha256*  
Hache une chaîne transmise à l’aide de la sécurité cryptographique SHA-256.  
**Utilisation**  
`{{sha256 "string"}}`  
**Exemple**  
`{{sha256 "Hello World"}}` renvoie  
*a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e*

*sha512*  
Hache une chaîne transmise à l’aide de la sécurité cryptographique SHA-512.  
**Utilisation**  
`{{sha512 "string"}}`  
**Exemple**  
`{{sha512 "Hello World"}}` renvoie  
*2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b*

*subtract*  
Renvoie la différence de deux nombres, avec des virgules flottantes éventuelles.  
**Utilisation**  
`{{subtract arg1 arg2}}`  
**Exemple**  
`{{subtract 5 2.3}} ` renvoie  
*2.7*

*uuid*  
Génère aléatoirement un UUID dans un format standard de 128 bits. Aucune valeur ne doit être transmise dans l’argument.  
**Utilisation**  
`{{uuid}}`  
**Exemple**  
`{{uuid}} ` renvoie  
**95f36680-152c-4052-99ec-cc3cdf7ca594**

## Partiels en ligne
<a name="inlinepartials"></a>

Bien qu’ils ne soient techniquement pas des assistants, les partiels en ligne sont un moyen utilisé par Handlebar pour simplifier les modèles qui incluent des chaînes répétées, afin de faciliter leur réutilisation. Pour plus d’informations, consultez [Partiels en ligne](https://handlebarsjs.com/guide/partials.html#inline-partials) sur [handlebarsjs.com](https://handlebarsjs.com). 

**Utilisation**

`{{#* inline "inlineName"}}Content to reuse{{/inline}}`

Pour référencer le contenu du partiel en ligne ailleurs, utilisez :

` {{> inlineName}}`

**Exemple**

L’exemple suivant crée un partiel en ligne qui inclut le prénom du destinataire et, s’il est disponible, son nom de famille, en ajoutant le code suivant au début du modèle :

`{{#* inline "fullName"}}`

`{{User.UserAttributes.FirstName.[0]}} {{#if User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}`

`{{/inline}}`

Après avoir créé le partiel `fullName`, vous pouvez l’inclure n’importe où dans votre modèle en faisant précéder le nom du partiel d’un symbole `>` (plus grand que), suivi d’un espace, comme dans l’exemple suivant : `{{> fullName}}`.

*` Hello {{> fullName}}`*

renvoie le prénom et le nom de famille de l'utilisateur s'ils sont vrais, par exemple*Hello Jane Doe*. Sinon, si aucun nom de famille n'est trouvé, *Hello Jane* il est renvoyé.

Handlebars inclut d’autres fonctionnalités en plus de celles documentées ici. Pour plus d’informations, consultez [handlebarsjs.com](https://handlebarsjs.com/).

## Utilisation de variables avec des assistants de modèles de messages
<a name="template-helpers-variables"></a>

Les noms des attributs personnalisés Amazon Connect prennent en charge les espaces. Pour qu’un attribut personnalisé soit appelé `"Last Name"`, vous devez mettre en forme l’attribut comme `Attributes.[Last Name]`. 

## Utilisation d’assistants imbriqués
<a name="template-helpers-nesting"></a>

 Vous pouvez imbriquer plusieurs modèles de messages d’assistance les uns dans les autres. L’exemple suivant montre comment formater deux assistants : `{{ first helper (second helper)}}`. Le second assistant est traité en premier, suivi du premier assistant. N’oubliez pas que le premier assistant détermine toujours la sortie. Les assistants suivants doivent être imbriqués dans l’assistant précédent comme suit : `{{ first helper (second helper (third helper) )}}`.

L’exemple suivant montre comment imbriquer deux assistants pour transformer **JANE** en **Jane** : `{{capitalizeFirst (lower "JANE")}}`. `lower` convertit d’abord **JANE** en **jane**. Puis `capitalizeFirst` convertit **jane** en **Jane**.