Freigeben über


Variablen themenübergreifend wiederverwenden

Variablen speichern die Antworten Ihrer Kunden auf Fragen Ihres Agenten. Sie können beispielsweise den Namen eines Kunden in einer Variablen namens UserName speichern. Der Agent kann den Kunden dann im weiteren Verlauf der Unterhaltung mit seinem Namen ansprechen.

Standardmäßig kann der Wert einer Variablen nur in dem Thema verwendet werden, in dem die Variable erstellt wurde. Es ist jedoch möglich, denselben Wert themenübergreifend wiederzuverwenden. In einem „Willkommen“-Thema fragt der Bot beispielsweise nach dem Namen und der E-Mail-Adresse des Kunden. Im Thema „Terminbuchung“ soll sich der Agent die Eingaben des Kunden merken und nicht noch einmal nachfragen.

Eine Möglichkeit der Wiederverwendung einer Variablen besteht darin, die Variable zwischen Themen zu übergeben. Die andere Möglichkeit besteht darin, den Bereich der Variablen als global festzulegen, und darum geht es in diesem Artikel. Globale Variablen werden so genannt, weil sie in allen Themen des gesamten Agenten verfügbar sind.

Globale Variablen gelten während einer Einzelbenutzersitzung. Sie geben an, welche Variablen als globale Variablen behandelt werden sollen, um sie von Variablen auf Themenebene zu unterscheiden.

Erstellen einer globalen Variablen

Sie erstellen eine globale Variable, indem Sie den Bereich jeder Themenvariablen ändern.

  1. Erstellen Sie eine Variable oder verwenden Sie den Variablen-Bereich, um eine vorhandene Variable zu öffnen.

  2. Wählen Sie im Bereich Variableneigenschaftenglobal (jedes Thema kann zugreifen) aus.

    Der Variablenname erhält das Präfix Global., um es von den Variablen auf Themenebene zu unterscheiden. Zum Beispiel wird die Variable UserName jetzt als Global.UserName angezeigt.

  3. Speichern Sie das Thema.

    Der Name einer globalen Variable muss über alle Themen hinweg eindeutig sein.

Verwenden von globalen Variablen

Wenn Sie eine Nachricht in einem Nachrichten-Knoten oder Frage-Knoten verfassen, wählen sie das {x} Symbol, um die im Thema verfügbaren Variablen anzuzeigen. Globale Variablen werden auf der Registerkarte Benutzerdefiniert neben den Themenvariablen angezeigt. Variablen werden in alphabetischer Reihenfolge aufgeführt.

Finden aller Themen mit einer globalen Variablen

Sie können ermitteln, wo eine globale Variable definiert wurde und von welchen anderen Themen sie verwendet wird. Diese Funktion kann nützlich sein, wenn Sie an einem neuen Agent arbeiten oder wenn Sie mehrere Variablen und komplexe Themenverzweigung haben.

  1. Wählen Sie die gewünschte globale Variable auf der Bearbeitungsfläche oder im Bereich Variable aus.

  2. Wählen Sie im Bereich Variableneigenschaften im Abschnitt Referenz die Option Alle Verweise anzeigen aus.

  3. Wechseln Sie zur Registerkarte Andere und wählen Sie ein beliebiges Thema aus, in dem die Variable verwendet wird, um direkt zu diesem Thema und Knotenpunkt zu wechseln.

Lebenszyklus globaler Variablen

Standardmäßig bleibt der Wert einer globalen Variablen bestehen, bis die Sitzung endet. Der Knoten Variablenwerte löschen setzt die Werte globaler Variablen zurück und wird im Systemthema Unterhaltung zurücksetzen verwendet. Dieses Thema kann entweder durch Umleitung oder durch Eingabe eines Triggerausdrucks wie „Von vorne beginnen“ durch den Benutzenden ausgelöst werden. In diesem Fall werden alle globalen Variablen zurückgesetzt.

Festlegen eines Wertes einer globalen Variablen aus externen Quellen

Wenn Sie sicherstellen möchten, dass der Agent eine Unterhaltung mit etwas Kontext beginnt, können Sie eine globale Variable mithilfe einer externen Quelle initialisieren. Angenommen, auf Ihrer Website müssen sich die Benutzer anmelden. Da Ihr Agent den Namen eines Benutzenden bereits kennt, kann er Kunden mit Namen begrüßen, bevor diese ihre erste Frage eingeben.

  1. Wählen Sie eine globale Variable aus.

  2. Wählen Sie im Bereich Variableneigenschaften die Option Externe Quellen können Werte festlegen aus.

Globale Variablen in einem eingebetteten Agent festlegen

Wenn Sie Ihren Agenten in eine einfache Webseite einbetten, können Sie Variablen und ihre Definitionen an die URL des Agenten anhängen. Oder, wenn Sie etwas mehr Kontrolle wünschen, können Sie einen <script>-Codeblock zum programmatischen Aufrufen und Verwenden von Variablen verwenden.

Der Variablenname in der Abfragezeichenfolge der URL muss mit dem Namen der globalen Variablen übereinstimmen, ohne das Global.-Präfix. Eine globale Variable Global.UserName würde in der Abfrage beispielsweise als UserName bezeichnet.

In den folgenden Beispielen wird eine einfache Deklaration für die Variablen verwendet. In einem Produktionsszenario könnten Sie als Abfrageparameter oder Variablendefinition eine andere Variable als Abfrageparameter oder Variablendefinition eine andere Variable übergeben, die bereits den Namen des Benutzers gespeichert hat (z.B. wenn Sie den Benutzernamen aus einem Anmeldeskript haben).

Hängen Sie die Variablen und ihre Definitionen an die URL des Agenten als Parameter für Abfragezeichenfolgen im Format botURL?variableName1=variableDefinition1&variableName2=variableDefinition2 an.

Zum Beispiel:

Beim Parameternamen wird die Groß-/Kleinschreibung nicht berücksichtigt. username=Ana würde auch in diesem Beispiel funktionieren.

Einem benutzerdefiniertem Canvas globale Variablen hinzufügen

Sie können die Variable auch einem benutzerdefinierten Canvas hinzufügen.

  1. In dem <script>-Abschnitt auf der Seite, auf der Sie Ihren Agenten haben, definieren Sie die Variablen wie folgt und ersetzen Sie variableName1 für den Variablennamen ohne Global.-Präfix und variableDefinition1 für die Definition. Trennen Sie mehrere Variablen durch Kommas (,).

       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. Rufen Sie in Ihrem <script>-Abschnitt store auf, wenn Sie Ihren Agent einbetten, wie im folgenden Beispiel, wo store genau oberhalb aufgerufen wird, wo styleOptions aufgerufen wird (Sie müssen die BOT_ID mit Ihrer Agent-ID ersetzen):

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