Udostępnij za pośrednictwem


Używanie zmiennych do przenoszenia zawartości między tematami

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 zwrócić się do klienta po imieniu, gdy rozmowa będzie kontynuowana.

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 temat Rezerwacja terminu chcesz, aby agent zapamiętał, 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.

Agent zmienne mają zastosowanie podczas pojedynczej sesji użytkownika. Należy określić, które zmienne powinny być traktowane jako zmienne agent, aby odróżnić je 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 wybierz pozycję Globalna (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.

    Zrzut ekranu pokazujący okienko Właściwości zmiennej z wyróżnionym ustawieniem globalnym.

  3. Zapisz temat.

    Nazwa zmiennej globalnej musi być unikatowa we wszystkich tematach. W przypadku konfliktu konieczna będzie zmiana nazwy zmiennej przed zapisaniem tematu.

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 temat. Zmienne globalne pojawiają się na karcie Niestandardowe razem ze zmiennymi tematu. Zmienne są wymieniane w kolejności alfabetycznej.

Zrzut ekranu przedstawiający wybór zmiennej globalnej.

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 agent lub jeśli masz wiele zmiennych i złożone rozgałęzienia temat.

  1. Wybierz zmienną globalną na kanwie tworzenia lub otwórz okienko Zmienne i wybierz zmienną globalną.

  2. W okienku Właściwości zmiennej w sekcji Referencje wybierz dowolne tematy, w których zmienna jest używana do przechodzenia bezpośrednio do tematu i węzła.

    Zrzut ekranu pokazujący listę tematów używanych przez zmienną w okienku właściwości zmiennej.

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żna wyzwolić przez przekierowanie lub gdy użytkownik wpisze frazę wyzwalającą, taką jak „Zacznij od początku”. W tym przypadku wszystkie zmienne globalne są resetowane.

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

Jeśli chcesz mieć pewność, że agent rozpoczyna rozmowę 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ą pisać 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 swój 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.

Poniższe przykłady przedstawiają prostą deklarację 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 agent jako parametry ciągu zapytania w formacie botURL?variableName1=variableDefinition1&variableName2=variableDefinition2.

Na przykład:

W nazwie parametru nie jest rozróżniana wielkość liter. Element username=Renata będzie również działać w tym przykładzie.

Dodawanie zmiennych globalnych do kanwy niestandardowej

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

  1. <script> W sekcji na stronie, na której znajduje się agent, zdefiniuj zmienne w następujący sposób, zastępując variableName1 nazwę zmiennej bez prefiksu Global. i variableDefinition1 definicję. 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. <script> W swojej sekcji wywołaj metodę store podczas osadzania agent, jak w poniższym przykładzie, gdzie store jest wywoływana tuż nad miejscem, w którym styleOptions jest wywoływana (musisz zastąpić ją BOT_ID identyfikatorem 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));