Utiliser les variables globales

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, vous ne pouvez utiliser que la valeur d’une variable dans la rubrique où vous avez créé la variable. Toutefois, vous souhaiterez peut-être réutiliser une valeur sur plusieurs rubriques. Par exemple, dans une rubrique de « Bienvenue », le bot demande le nom et l’adresse e-mail du client. Dans la section Prise de rendez-vous, vous souhaitez que l’agent se souvienne de ce que le client a déjà fourni et ne le redemande pas.

Vous pouvez réutiliser une variable en passant la variable d’une rubrique à une autre. Vous pouvez également rendre la variable globale dans l’étendue. Cet article traite des variables globales. Elles sont appelées variables globales, car elles sont disponibles dans toutes les rubriques de l’agent entier. Votre agent peut également les définir à partir de sources externes.

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.

Note

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

  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 obtient le préfixe Global. pour le différencier des variables de niveau rubrique. Par exemple, la variable UserName devient Global.UserName.

  3. Enregistrez le sujet.

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 auxquelles la rubrique peut accéder. Vous pouvez également utiliser des variables globales dans les nœuds Outil qui appellent des invites ou des flux de travail. Les variables globales s’affichent sous l’onglet Personnalisé , ainsi que toutes 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 trouver où une variable globale est définie et quelles autres rubriques l’utilisent. Cette fonctionnalité est utile si vous travaillez sur un nouvel agent ou si vous avez plusieurs variables et une branche de rubrique complexe.

  1. Sélectionnez la variable globale souhaitée sur 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.

Suppression de variables globales

Si vous supprimez une variable globale utilisée dans d’autres rubriques, les références à cette variable dans les rubriques s’affichent sous la forme Unknown. Vous recevez un avertissement sur la suppression de la variable globale avant de pouvoir confirmer l’opération.

Les nœuds qui contiennent des références à une variable globale supprimée indiquent qu’ils contiennent une variable inconnue.

Les rubriques dont les nœuds contiennent des références à des variables globales supprimées peuvent cesser de fonctionner. Veillez à supprimer ou à corriger tous les sujets qui utilisaient la variable désormais supprimée avant de publier votre agent.

Cycle de vie des variables globales

Par défaut, une valeur de variable globale persiste jusqu’à ce que la session se termine. Le nœud Effacer les valeurs des variables réinitialise les valeurs des variables globales. La rubrique système Reset Conversation utilise ce nœud. Lorsqu’une redirection déclenche cette rubrique (ou lorsque l’utilisateur saisit une phrase telle que « Recommencer »), toutes les variables globales sont réinitialisées.

Définir des variables globales à partir de sources externes

Pour vous assurer que l’agent démarre une conversation avec un contexte donné, utilisez une variable globale et définissez sa valeur à partir d’une source externe. Supposons que votre site exige que les utilisateurs se connectent. Si vous stockez le nom d’un utilisateur dans une variable globale et que vous la transmettez à votre agent, celui-ci peut accueillir les clients par leur nom avant qu’ils ne commencent à taper leur première question. Un autre exemple de scénario consiste à passer le contexte de Dynamics 365 Customer Service à un agent afin qu’il puisse démarrer la conversation avec la connaissance de ce que le client souhaite obtenir.

Pour éviter une latence indésirable, spécifiez la durée pendant laquelle votre agent peut attendre une valeur. Vous pouvez également définir une valeur par défaut à utiliser lorsque la source externe ne répond pas en temps voulu.

Note

Les agents publiés sur le canal de Dynamics 365 Contact Center pour les cas d'utilisation d'IVR ne prennent pas en charge les valeurs de délai d'expiration configurées pour les variables globales définies par des sources externes.

  1. Créez une rubrique dédiée pour contenir la configuration de toutes les variables destinées à être définies à partir de sources externes. Vous pouvez nommer cette rubrique « Définir des variables de contexte » par exemple. Cette rubrique n’est pas utilisée à d’autres fins, elle n’a donc pas besoin d’avoir de phrases déclencheurs définies.

  2. Ajoutez un nœud Définir une valeur de variable à votre rubrique dédiée.

  3. Sous Définir une variable, ouvrez le sélecteur de variables, puis sélectionnez Créer une variable.

  4. Sélectionnez le nom par défaut de la nouvelle variable. Le volet Propriétés de la variable apparaît.

  5. Remplacez le nom par défaut par un qui correspond exactement au nom de la variable transmise à partir du système externe.

  6. Sous Utilisation, sélectionnez Global (n’importe quelle rubrique peut y accéder) et Les sources externes peuvent définir des valeurs.

  7. Sous Référence, sélectionnez les trois points () dans le coin supérieur droit et sélectionnez Obtenir la valeur de ce nœud s’il est vide.

  8. (Facultatif) Définissez un délai d’expiration, en millisecondes. Cette valeur détermine la durée pendant laquelle votre agent peut attendre que la variable soit définie par une source externe avant d’expirer et de continuer avec la valeur par défaut que vous avez définie dans le nœud Définir une valeur de variable. Ce paramètre est pertinent dans les scénarios où la variable dépend d’un processus long ou asynchrone, mais où votre agent doit respecter une latence maximale pour garantir une bonne expérience utilisateur.

    Pour les variables provenant d’Omnichannel pour customer Service, utilisez une valeur de 10 secondes (10 000 ms) comme délai d’attente maximal.

  9. Dans le nœud Définir la valeur de variable , entrez la valeur par défaut à utiliser si le délai d’expiration est atteint. Au moment de l’exécution, votre agent attend des valeurs avec le même type de données. Si vous souhaitez que cette valeur par défaut soit une chaîne vide, utilisez Text("") comme formule.

    Capture d’écran de la configuration d’une variable globale à définir à partir d’une source externe.

  10. Pour toutes les autres valeurs qui devraient provenir d’un système externe, ajoutez d’autres nœuds Définir une valeur de variable à votre rubrique dédiée et configurez les variables globales requises de la même manière.

Lorsque vous configurez votre agent de cette façon, il est prêt à être testé. Lorsque l’agent est appelé, au lieu d’attendre indéfiniment que toutes les variables soient remplies, votre agent peut immédiatement commencer à envoyer tous les messages qui ne dépendent pas des variables transmises. Lorsque votre agent tente d’accéder à une variable définie en externe, elle s’interrompt jusqu’à ce que la valeur arrive ou que le délai d’expiration se produise. Pour en savoir plus, consultez Optimiser les agents pour réduire la latence.

Important

Pendant le flux normal d’une conversation, si votre agent définit une variable qui proviendrait autrement d’une valeur externe, la valeur définie à partir de votre agent prévaut. Toute valeur transmise dans le contexte est ignorée. Cette règle empêche votre assistant d’écraser les valeurs définies intentionnellement dans les rubriques.

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, pour une variable Global.UserName globale, utilisez uniquement UserName dans la requête.

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

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 n’est pas sensible à 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));
    

En fonction de la configuration de l’authentification de l’agent, vous disposez d’un ensemble de variables globales associées au fournisseur d’authentification sélectionné. Pour plus de détails sur l’ensemble de variables disponibles et comment les utiliser, consultez la rubrique de documentation Ajouter l’authentification de l’utilisateur aux rubriques.