Partage via


Réutiliser des variables dans les rubriques

Les variables stockent les réponses de vos clients aux questions de votre agent. Par exemple, vous pouvez enregistrer le nom d’un client dans une variable appelée UserName. L’agent peut alors s’adresser au client par son nom au fil de la conversation.

Par défaut, la valeur d’une variable ne peut être utilisée que dans la rubrique où la variable est créée. Cependant, il est possible de réutiliser la même valeur dans toutes les rubriques. Par exemple, dans une rubrique de « Bienvenue », le bot demande le nom et l’adresse e-mail du client. Dans la rubrique Prise de rendez-vous, vous souhaitez que l’agent se souvienne de la saisie du client sans demander à nouveau.

Une façon de réutiliser une variable consiste à transmettre la variable entre les rubriques. L’autre façon consiste à donner à la variable une portée globale, et c’est ce que couvre cet article. Les variables globales sont appelées ainsi parce qu’elles sont disponibles dans toutes les rubriques dans l’ensemble de l’agent.

Les variables globales s’appliquent pendant une seule session utilisateur. Vous spécifiez quelles variables sont des variables globales pour les distinguer des variables au niveau de la rubrique.

Créer une variable globale

Vous créez une variable globale en changeant la portée d’une variable de rubrique.

  1. Créez une variable ou utilisez le volet Variables pour ouvrir une variable existante.

  2. Dans le volet Propriétés de la variable, sélectionnez Global (n’importe quelle rubrique peut y accéder).

    Le nom de la variable reçoit le préfixe Global., pour la différencier des variables de niveau rubrique. Par exemple, la variable UserName est affichée sous le nom Global.UserName.

  3. Enregistrez la rubrique.

    Le nom d’une variable globale doit être unique dans toutes les rubriques.

Utiliser des variables globales

Lorsque vous composez un message dans un nœud Message ou un nœud Question, sélectionnez l’icône {x} pour afficher les variables disponibles pour la rubrique. Les variables globales s’affichent dans l’onglet Personnalisé, ainsi que les variables de rubrique. Les variables sont répertoriées dans l’ordre alphabétique.

Rechercher toutes les rubriques qui utilisent une variable globale

Vous pouvez voir où une variable globale est définie et quelles autres rubriques l’utilisent. Cette fonctionnalité peut être utile si vous travaillez sur un nouvel agent, ou si vous avez plusieurs variables et des ramifications de rubrique complexes.

  1. Sélectionnez la variable globale souhaitée dans le canevas de création ou dans le volet Variables.

  2. Dans le volet Propriétés de la variable, dans la section Référence, sélectionnez Afficher toutes les références.

  3. Basculez vers l’onglet Autre et sélectionnez n’importe quelle rubrique où la variable est utilisée pour accéder directement à cette rubrique et à ce nœud.

Cycle de vie des variables globales

Par défaut, la valeur d’une variable globale persiste jusqu’à la fin de la session. Le nœud Effacer les valeurs de variable réinitialise les valeurs des variables globales et est utilisé dans la rubrique système Réinitialiser la conversation. Cette rubrique peut être déclenchée soit par redirection, soit lorsque l’utilisateur entre une phrase déclencheur, telle que « Recommencer ». Dans ce cas, toutes les variables globales sont réinitialisées.

Définir la valeur d’une variable globale à partir de sources externes

Si vous voulez vous assurer que l’agent démarre une conversation avec un certain contexte, vous pouvez initialiser une variable globale avec une source externe. Supposons que votre site nécessite que les utilisateurs se connectent. Étant donné que votre agent connaît déjà le nom d’un utilisateur, il peut saluer les clients par leur nom avant qu’ils ne commencent à taper leur première question.

  1. Sélectionnez une variable globale.

  2. Dans le volet Propriétés de la variable, sélectionnez Les sources peuvent définir des valeurs.

Définir les variables globales dans un agent incorporé

Si vous incorporez votre agent dans une simple page web, vous pouvez ajouter des variables et leurs définitions à l’URL de l’agent. Ou bien, si vous souhaitez un peu plus de contrôle, vous pouvez utiliser un bloc de code <script> pour appeler et utiliser les variables par programmation.

Le nom de la variable dans la chaîne de requête de l’URL doit correspondre au nom de la variable globale sans le préfixe Global.. Par exemple, une variable globale Global.UserName serait appelée UserName dans la requête.

Les exemples qui suivent utilisent une déclaration de base pour les variables. Dans un scénario de production, vous pouvez transmettre en tant que paramètre de requête ou définition de variable une autre variable qui stocke déjà le nom de l’utilisateur (par exemple, si vous avez le nom d’utilisateur d’un script de connexion).

Ajoutez les variables et leurs définitions à l’URL de l’agent tant que paramètres de chaîne de requête au format botURL?variableName1=variableDefinition1&variableName2=variableDefinition2.

Par exemple :

Le nom du paramètre est insensible à la casse. username=Ana fonctionne également dans cet exemple.

Ajouter des variables globales à un canevas personnalisé

Vous pouvez également ajouter la variable à un canevas personnalisé.

  1. Dans la section <script> de la page où vous avez votre agent, définissez les variables comme suit, en remplaçant variableName1 pour le nom de variable sans le préfixe Global. et variableDefinition1 pour la définition. Séparez plusieurs variables par des virgules (,).

       const store = WebChat.createStore({}, ({ dispatch }) => next => action => {
         if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
           dispatch({
              type: "WEB_CHAT/SEND_EVENT",
              payload: {
                name: "pvaSetContext",
                value: {
                   "variableName1": "variableDefinition1",
                   "variableName2": "variableDefinition2"
                }
              },
            });
          }
            return next(action);
        });
    
  2. Dans votre section <script>, appelez le store lors de l’intégration de votre agent, comme dans l’exemple suivant où store est appelé juste avant l’endroit où styleOptions est appelé (vous devez remplacer le BOT_ID par l’ID de votre agent) :

    const BOT_ID = "12345-5678";
    const theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
    
    fetch(theURL)
        .then(response => response.json())
        .then(conversationInfo => {
            window.WebChat.renderWebChat(
                {
                    directLine: window.WebChat.createDirectLine({
                        token: conversationInfo.token,
                    }),
                    store,
                    styleOptions
                },
                document.getElementById('webchat')
            );
        })
        .catch(err => console.error("An error occurred: " + err));