Del via


Genbruge variabler på tværs af emner

Variabler gemmer dine kunders svar på spørgsmål fra din agent. Du kan f.eks. gemme en kundes navn i en variabel, der kaldes UserName. Agenten kan derefter henvende sig til kunden ved hjælp af navnet, efterhånden som samtalen fortsætter.

En variabels værdi kan som standard kun bruges i det emne hvor variablen bliver oprettet. Det er dog muligt at genbruge den samme værdi på tværs af emner. I et "Velkomst"-emne beder botten eksempelvis om kundens navn og mail. I aftalebooking-emnet skal agenten huske, hvad kunden har angivet, og ikke spørge igen.

En måde at genbruge en variabel på er at overføre variablen mellem emner. Den anden måde er at gøre variablen global i omfang, og det er, hvad denne artikel omhandler. Globale variabler kaldes det, fordi de er tilgængelige i alle emner på tværs af hele agenten.

Globale variabler anvendes i en enkelt brugersession. Du angiver, hvilke variable der er globale variabler, for at kunne skelne mellem dem og variabler på emneniveau.

Oprette en global variabel

Du kan oprette en global variabel ved at ændre omfanget af ethvert emne.

  1. Opret en variabel eller brug Variabler-ruden til at åbne en eksisterende variabel.

  2. I ruden Egenskaber for variabel under skal du vælge Global (ethvert emne kan få adgang).

    Variabelnavnet tildeles en præfiksstreng, Global., for at adskille det fra variable på emneniveau. Variablen UserName vises som Global.UserName.

  3. Gem emnet.

    Navnet på en global variabel skal være entydigt på tværs af alle emner.

Bruge globale variabler

Når du opretter en meddelelse i en Meddelelse-node eller Spørgsmål-node, skal du vælge ikonet {x} for at se de variabler, der er tilgængelige for emnet. Globale variabler vises under fanen Brugerdefineret sammen med alle emnevariabler. Variabler sorteres i alfabetisk rækkefølge.

Søg efter alle emner ved hjælp af en global variabel

Når du har oprettet en global variabel, kan du se, hvor den først gange er defineret, og hvilke andre emner der bruger den. Dette kan være nyttigt, hvis du arbejder på en ny agent, eller hvis du har flere variable og komplekse emneforgreninger.

  1. Vælg den ønskede globale variabel på oprettelseslærredet eller i panelet Variabler.

  2. I panelet for Variabelegenskaber skal du i sektionen Reference vælge Vis alle referencer.

  3. Skift til fanen Andet, og vælg et emne, hvor variablen bruges, for at gå direkte til det pågældende emne og node.

Globale variablers livscyklus

Værdien af en global variabel vil som standard vare ved, indtil sessionen slutter. Noden Ryd variable værdier nulstiller værdierne for globale variabler og bruges i systemet Nulstil samtalens systememne. Dette emne kan udløses enten ved omdirigering, eller når brugeren indtaster en udløsersætning som f.eks. "Start forfra". I så fald nulstilles alle globale variabler.

Angiv en global variabels værdi fra eksterne kilder

Hvis du vil sikre dig, at agenten starter en samtale med en vis kontekst, kan du initialisere en global variabel med en ekstern kilde. Lad os sige, at webstedet kræver, at brugerne logger på. Da din agent allerede kender en brugers navn, kan den hilse på kunder ved navn, før de begynder at skrive deres første spørgsmål.

  1. Vælg en global variabel.

  2. Vælg Eksterne kilder kan angive værdier i ruden Egenskaber for variabel.

Angive globale variabler i en integreret agent

Hvis du indlejrer din agent på en simpel webside, kan du føje variabler og deres definitioner til agentens URL-adresse. Eller hvis du vil have lidt mere kontrol, kan du bruge en <script>-kodeblok til at kalde og bruge variabler via programmering.

Variabelnavnet i forespørgselsstrengen for URL-adressen skal matche navnet for den globale variabel uden præfikset Global.. F.eks. vil en global variabel Global.UserName referere til som UserName i forespørgslen.

I de følgende eksempler bruges en grundlæggende erklæring for variablerne. I et produktionsscenario kan du som forespørgselsparameter eller variabeldefinition overføre en anden variabel, der allerede har gemt brugerens navn (hvis du f.eks. har et brugernavn i et logonscript).

Tilføj variablerne og deres definitioner til agentens URL-adresse som forespørgselsstrengparametre i formatet botURL?variableName1=variableDefinition1&variableName2=variableDefinition2.

Eksempel:

Parameternavnet skelner mellem store og små bogstaver. username=Ana ville også fungere i dette eksempel.

Tilføj globale variabler til et brugerdefineret lærred

Du kan også tilføje variablen til et brugerdefineret lærred.

  1. I sektionen <script> på siden, hvor du har din agent, skal du definere variablerne på følgende måde og erstatte variableName1 med variabelnavnet uden Global.-præfikset og variableDefinition1 med definitionen. Adskil flere variabler med kommaer (,).

       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. I sektionen <script> skal du kalde store, når du integrerer din agent, som i følgende eksempel, hvor store kaldes lige før, hvor styleOptions blev kaldt (du skal erstatte BOT_ID med din agents id):

    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));