Udostępnij za pośrednictwem


Ponowne używanie zmiennych w różnych tematach

Zmienne przechowują odpowiedzi klientów na pytania z Twojego agent. Można na przykład zapisać nazwę klienta w zmiennej o nazwie UserName. Agent może następnie zwracać się do klienta za pomocą jego nazwy w trakcie konwersacji.

Domyślnie wartość zmiennej może być używana w temacie, w którym jest tworzona zmienna. Można jednak ponownie wykorzystać tę samą wartość w różnych tematach. Na przykład temat Witamy prosi klienta o podanie imienia i nazwiska oraz adresu e-mail. W temacie Rezerwacja terminów chcesz, aby agent zapamiętywał, co wprowadził klient, i nie pytał ponownie.

Jednym ze sposobów ponownego użycia zmiennej jest przekazanie zmiennej między tematami. Inna możliwość to oznaczenie zmiennej jako globalnej w zakresie i tego dotyczy ten artykuł. Zmienne globalne są tak nazywane, ponieważ są dostępne we wszystkich tematach w całym agent.

Podczas jednej sesji użytkownika są stosowane zmienne globalne. Możesz określić, które zmienne będą traktowane jako zmienne globalne, w celu odróżnienia ich od zmiennych na poziomie tematu.

Utworzenie zmiennej globalnej

Możesz utworzyć zmienną globalną, zmieniając zakres zmiennej tematu.

  1. Utwórz zmienną lub użyj okienka Zmienne, aby otworzyć istniejącą zmienną.

  2. W okienku Właściwości zmiennej w obszarze Globalne (każdy temat może mieć dostęp).

    Nazwa zmiennej ma nadawany prefiks Global., który odróżnia ją od zmiennych na poziomie tematu. Na przykład zmienna UserName jest wyświetlana jako Global.UserName.

  3. Zapisz temat.

    Nazwa zmiennej globalnej musi być unikatowa we wszystkich tematach.

Używanie zmiennych globalnych

Podczas tworzenia wiadomości agent w węźle Wiadomość lub Pytanie wybierz ikonę {x}, aby wyświetlić zmienne dostępne dla tematu. Zmienne globalne pojawiają się na karcie Niestandardowe razem ze zmiennymi tematu. Zmienne są wymieniane w kolejności alfabetycznej.

Znajdowanie wszystkich tematów używającej zmiennej globalnej

Możesz znaleźć miejsce definiowania zmiennej globalnej oraz inne tematy, które jej używają. Może to być przydatne, jeśli pracujesz nad nowym agentem lub jeśli istnieje wiele zmiennych i złożone rozgałęzienia tematów.

  1. Zaznacz pożądaną zmienną globalną na kanwie tworzenia lub w panelu Zmienne.

  2. W panelu Właściwości zmiennych, w sekcji Odwołanie , wybierz opcję Wyświetl wszystkie odwołania .

  3. Przejdź do karty Inne i wybierz dowolny temat, w którym jest używana zmienna, aby przejść bezpośrednio do tego tematu i węzła.

Cykl życia zmiennych globalnych

Domyślnie wartość zmiennej globalnej jest utrzymywana do momentu zakończenia sesji. Węzeł Wyczyść wartości zmiennych resetuje wartości zmiennych globalnych i jest używany w temacie systemowym dotyczącym resetowania konwersacji. Ten temat może zostać wywołany przez przekierowanie lub gdy użytkownik wprowadzi frazę wyzwalającą, taką jak "Zacznij od nowa". W takim przypadku wszystkie zmienne globalne są resetowane.

Ustawianie wartości zmiennej globalnej ze źródeł zewnętrznych

Jeśli chcesz mieć pewność, że agent rozpoczyna konwersację z pewnym kontekstem, możesz zainicjować zmienną globalną z zewnętrznym źródłem. Załóżmy, że użytkownicy muszą logować się do Twojej witryny. Ponieważ Twój agent zna już nazwę użytkownika, może witać klientów po imieniu, zanim zaczną wpisywać swoje pierwsze pytanie.

  1. Wybierz zmienną globalną.

  2. W okienku Właściwości zmiennej wybierz opcję Źródła zewnętrzne mogą ustawiać wartości.

Ustawianie zmiennych globalnych w osadzonym agent

Jeśli osadzasz agent na prostej stronie internetowej, możesz dołączyć zmienne i ich definicje do adresu URL agent. Lub, jeśli chcesz mieć trochę więcej kontroli, możesz użyć bloku kodu <script> do wywoływania i używania zmiennych programowo.

Nazwa zmiennej w ciągu zapytania adresu URL musi być dopasowana do nazwy zmiennej globalnej bez prefiksu Global.. Na przykład zmienna globalna Global.UserName powinna być przywoływana jako UserName w zapytaniu.

W poniższych przykładach użyto podstawowej deklaracji zmiennych. W scenariuszu produkcyjnym jako parametr zapytania lub definicję zmiennej można przekazać inną zmienną, w której była już przechowywana nazwa użytkownika (na przykład jeśli masz nazwę użytkownika ze skryptu logowania).

Dołącz zmienne i ich definicje do adresu URL agenta jako parametry ciągu zapytania w formacie botURL?variableName1=variableDefinition1&variableName2=variableDefinition2.

Na przykład:

W nazwie parametru nie jest rozróżniana wielkość liter. username=Ana sprawdzi się również w tym przykładzie.

Dodawanie zmiennych globalnych do kanwy niestandardowej

Możesz również dodać zmienną do kanwy niestandardowej.

  1. W sekcji <script> na stronie, na której znajduje się agent, zdefiniuj zmienne w następujący sposób, zastępując nazwę zmiennej variableName1 bez prefiku Global.variableDefinition1 dla definicji. Rozdziel poszczególne zmienne przecinkami (,).

       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. W sekcji <script> wywołaj element store podczas osadzania agenta, tak jak w poniższym przykładzie, gdzie element store jest wywoływany dokładnie nad miejsce, w którym jest wywoływany element styleOptions (element BOT_ID należy zastąpić identyfikatorem agenta):

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