Del via


Bruk variabler på nytt på tvers av emner

Variabler lagrer kundenes svar på spørsmål fra agenten. Du kan for eksempel lagre navnet på en kunde i en variabel kalt UserName. Agenten kan deretter henvende seg til kunden ved navn mens samtalen fortsetter.

Som standard kan en variabels verdi bare brukes i emner der variabelen blir opprettet. Det er imidlertid mulig å bruke samme verdi på nytt på tvers av emner. I et Velkommen-emne spør for eksempel roboten etter kundens navn og e-postadresse. I emnet Avtalebestilling vil du at agenten skal huske hva kunden skrev inn, og ikke spørre på nytt.

En måte å bruke en variabel på nytt på er å sende variabelen mellom emner. Den andre måten er å gjøre variabelen global i omfang, og det er det denne artikkelen omhandler. Globale variabler kalles dette fordi de er tilgjengelige i alle emner på tvers av hele agenten.

Globale variabler gjelder under én enkelt brukerøkt. Du angir hvilke variabler som er globale variabler, for å skille dem fra variabler på emnenivå.

Opprette en global variabel

Du kan opprette en global variabel ved å endre omfanget for en emnevariabel.

  1. Opprett en variabel eller bruk Variabler-ruten til å åpne en eksisterende variabel.

  2. I panelet Egenskaper for variabel velger du Global (alle emner har tilgang).

    Variabelnavnet får prefikset Global. for å skille det fra variabler på emnenivå. Variabelen UserName vises for eksempel nå som Global.UserName.

  3. Lagre emnet.

    Navnet på en global variabel må være unikt på tvers av alle emner.

Bruke globale variabler

Når du skriver en melding i en meldingsnode eller en spørsmålsnode, velger du {x}-ikonet for å vise variablene som er tilgjengelige for emnet. Globale variabler vises i fanen Egendefinert sammen med eventuelle emnevariabler. Variabler er oppført i alfabetisk rekkefølge.

Finne alle emner ved hjelp av en global variabel

Du finner hvor en global variabel er definert og hvilke andre emner som bruker den. Denne funksjonen kan være nyttig hvis du arbeider med en ny agent, eller hvis du har flere variabler og en kompleks emneforgrening.

  1. Velg den ønskede globale variabelen på redigeringslerretet eller i Variabler-panelet.

  2. I panelet Egenskaper for variabel, i Referanse-delen, velg Vis alle referanser.

  3. Bytt til Annet-fanen, og velg et emne der variabelen brukes til å gå direkte til emnet og noden.

Livssyklusen til globale variabler

Som standard beholdes verdien til en global variabel til økten er slutt. Noden Fjern variabelverdier tilbakestiller verdiene for globale variabler og brukes i systememnet Tilbakestill samtale. Dette emnet kan utløses enten ved omdirigering eller når brukeren skriver inn et utløseruttrykk, for eksempel "Start på nytt". I så fall tilbakestilles alle globale variabler.

Angi en verdi for en global variabel fra eksterne kilder

Hvis du vil forsikre deg om at agent starter en samtale med en kontekst, kan du initialisere en global variabel med en ekstern kilde. La oss si at området krever at brukere logger seg på. Siden agenten allerede kjenner en brukers navn, kan den hilse kunder med navn før de begynner å skrive inn sitt første spørsmål.

  1. Velg en global variabel.

  2. Velg Eksterne kilder kan angi verdier i ruten Egenskaper for variabel.

Angi globale variabler i en innebygd agent

Hvis du bygger inn agenten på en enkel nettside, kan du legge til variabler og tilhørende definisjoner i agentens nettadresse. Hvis du vil ha litt mer kontroll, kan du også bruke en <script>-kodeblokk til å kalle opp og bruke variabler programmatisk.

Variabelnavnet i spørringsstrengen for nettadressen må samsvare med navnet på den globale variabelen uten Global.-prefikset. En global variabel Global.UserName blir for eksempel henvist til som UserName i spørringen.

Eksemplene nedenfor bruker en grunnleggende deklarasjon for variablene. I et produksjonsscenario kan du inkludere en annen variabel som spørringsparameter eller variabeldefinisjon, som allerede har lagret navnet på brukeren (hvis du for eksempel har brukernavnet fra et påloggingsskript).

Legg til variablene og definisjonene i nettadressen til agenten som spørringsstrengparametere i formatet botURL?variableName1=variableDefinition1&variableName2=variableDefinition2.

Eksempel:

Det skilles mellom små og store bokstaver i parameternavnet. username=Ana vil også fungere i dette eksemplet.

Legg til globale variabler i et egendefinert lerret

Du kan også legge til variabelen i et egendefinert lerret.

  1. I <script>-delen på siden der du har agenten, definerer du variablene som følger, og erstatter variableName1 med variabelnavnet uten Global.-prefikset og variableDefinition1 for definisjonen. Skill flere variabler med komma (,).

       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 <script>-delen kaller du store når du bygger inn agenten, som i følgende eksempel hvor store kalles like før der styleOptions kalles (du må erstatte BOT_ID med ID-en til agenten din):

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