Options dynamiques
Une réponse options présente aux clients une liste de choix parmi lesquels choisir. Vous pouvez utiliser le paramètre dynamique pour générer la liste à partir d'options qui peuvent être différentes à chaque fois.
Les options dynamiques sont générées sur la base des données stockées dans une variable, qui doit être disponible pour l'étape qui pose la question. La variable source doit contenir un tableau de valeurs, dont chacune représente l'une des options qui seront présentées au client. Les éléments du tableau peuvent être des valeurs simples telles que des chaînes ou des nombres (par exemple, " [ "Raleigh", "Boston", "New York" ]) ou des objets JSON composés.
Un scénario courant pour les options dynamiques est celui où un tableau est renvoyé par une API externe que vous appelez à l'aide d'une extension personnalisée. Par exemple, vous pouvez utiliser une extension personnalisée pour récupérer une liste de cartes de crédit associées au compte d'un client. Vous pouvez ensuite utiliser des options dynamiques pour demander au client quelle carte utiliser au cours de la conversation. (Pour plus d'informations sur les extensions personnalisées, voir Appeler une extension personnalisée)
Vos actions peuvent également alimenter la variable source à l'aide d'expressions. Par exemple, vous pouvez utiliser une variable de session pour constituer un panier contenant les articles que le client a décidé d'acheter. Une action de retrait d'un article du panier pourrait alors utiliser des options dynamiques pour afficher les articles du panier afin que le client puisse choisir celui qu'il souhaite retirer. (Pour plus d'informations sur l'utilisation d'expressions pour les valeurs de variables, voir Utilisation d'une expression pour affecter une valeur à une variable de session)
Définition des options dynamiques
Pour définir une option dynamique de réponse du client :
Dans une étape, cliquez sur Définir la réponse du client.
Choisissez le type de réponse Options.
Cliquez sur le bouton Dynamique.
Dans le champ Variable source, choisissez la variable qui contient le tableau définissant les options dynamiques (par exemple, la variable contenant la réponse d'une extension personnalisée que vous avez appelée à l'étape précédente).
Facultatif : dans le champ Option, écrivez une expression qui associe les éléments du tableau source aux options qui seront listées. Cette expression sert de modèle pour convertir chaque élément du tableau en une valeur significative qui sera affichée au client. Dans cette expression, la variable dynamique "
${item}est utilisée pour représenter l'article.Dans certaines situations, il n'est pas nécessaire de spécifier une expression :
Si les éléments du tableau sont des valeurs simples telles que des chaînes ou des nombres entiers, la valeur de chaque élément est automatiquement affichée en tant qu'option. Cependant, vous pouvez toujours définir une correspondance si vous souhaitez manipuler ou reformater les éléments pour les rendre plus significatifs. Par exemple, vous pouvez utiliser l'expression "
"Part #" + ${item}pour afficher les numéros de pièces au format "Part #12345.Si les éléments du tableau sont des objets JSON, le mappage par défaut recherche une propriété appelée "
labelet utilise sa valeur (si elle est présente) comme option. Si l'article ne comporte pas de propriété "labelou si vous ne souhaitez pas utiliser la valeur de la propriété "labelcomme option, vous devez écrire une expression pour spécifier une correspondance. Vous pouvez utiliser la notation par points pour faire référence à une propriété de l'objet en utilisant son chemin JSON (par exemple, "${item}.name).
Facultatif : Cliquez sur Ajouter une option de repli pour inclure un choix statique, tel que "
None of the above, si les options ne correspondent pas aux souhaits du client. Vous pouvez ensuite ajouter une étape conditionnée par cette option statique pour fournir une assistance supplémentaire. Pour ajouter la condition, écrivez une expression telle que "${step_id}.value == "None of the above".
Exemples de cartographie
Supposons que vous souhaitiez créer une action qui affiche une liste d'animaux disponibles à l'adoption et qui invite le client à sélectionner un animal pour obtenir plus d'informations à son sujet. La variable source contient un tableau provenant d'une extension personnalisée au format suivant :
[
{
"id": "123",
"name": "Casey",
"breed": "Shetland sheepdog",
"age": 3
},
{
"id": "987",
"name": "Phoebe",
"breed": "chihuahua",
"age": 7
}
]
Le schéma des articles ne comprend pas de propriété " label, de sorte que la correspondance par défaut n'est pas disponible. Au contraire, vous pouvez utiliser une expression pour construire une étiquette complexe qui inclut des données provenant de plusieurs propriétés différentes. Par exemple, vous pouvez utiliser l'expression " ${item}.name + " (" + ${item}.breed + ", age " + ${item}.age + ")" pour définir les étiquettes des options :

Rappelez-vous que vous pouvez utiliser des méthodes d'expression pour manipuler les valeurs de la variable source de différentes manières. Par exemple, vous pouvez avoir une action que les clients utilisent pour sélectionner une carte de crédit pour le paiement, mais pour des raisons de sécurité, vous ne voulez pas afficher le numéro de la carte dans son intégralité. Vous pouvez écrire une expression qui utilise la méthode " substring() pour inclure uniquement les quatre derniers chiffres de chaque numéro de carte (par exemple, " "Card ending in " + ${item}.card_number.substring(16, 20)).
Référencement de l'élément sélectionné
Une fois que le client a sélectionné l'une des options générées dynamiquement, vous devrez probablement faire référence à l'élément sélectionné dans une étape ultérieure.
Si vous faites référence à la variable d'action représentant la réponse du client, la valeur de l'option sélectionnée est utilisée par défaut. Cependant, dans certaines situations, vous ne voudrez peut-être pas utiliser la même valeur que celle qui a été utilisée pour afficher l'option au client. Au lieu de cela, vous devrez peut-être utiliser un identifiant unique ou une autre propriété qui identifie sans ambiguïté l'option sélectionnée.
Par exemple, si le client sélectionne un animal de compagnie sur lequel il souhaite obtenir davantage d'informations, vous devrez probablement utiliser un identifiant unique (la propriété " id dans notre exemple) pour interroger la base de données, car le nom, l'âge et la race de l'animal peuvent ne pas être uniques. Si le client sélectionne une carte de crédit à partir d'options qui n'affichent que les quatre derniers chiffres, vous devrez utiliser le numéro complet de la carte de crédit pour accéder aux détails du compte ou effectuer une transaction.
Dans cette situation, vous pouvez écrire une expression pour accéder aux propriétés originales de l'élément sélectionné :
Créez ou modifiez une étape qui vient après l'étape au cours de laquelle le client fait son choix parmi les options dynamiques.
Dans la section Valeurs des variables, écrivez une expression pour assigner une valeur à une variable de session. (Pour plus d'informations, voir Utilisation d'une expression pour affecter une valeur à une variable de session)
Dans l'éditeur d'expressions, saisissez un signe de dollar (
$), puis sélectionnez l'étape au cours de laquelle le client a sélectionné l'option dynamique.Utilisez le nom de propriété "
itempour représenter l'élément sélectionné et la notation par points pour accéder à ses propriétés. Par exemple, l'expression suivante permet d'accéder à la propriété "idde l'élément sélectionné lors d'une étape précédente :${step_331}.item.idVous pouvez utiliser une expression complexe pour construire une valeur en utilisant plusieurs propriétés de l'élément sélectionné. Par exemple, vous pouvez utiliser une expression telle que "
${step_123}.item.firstname + " " + ${step_123}.item.lastnamepour construire le nom complet d'une personne. Utilisez l'expression pour définir la valeur dans le format dont vous avez besoin pour mener à bien l'action requise.