

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.

# 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\_Angeles}} 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\!}}

*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 (\_) remplace un espace blanc.  
`{{replace {{Location.City}} {{" " "_"}}}}` renvoie  
{{Los\_Angeles}}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**.