Praca z globalnymi zmiennymi

Note

Funkcje opisane w tym artykule są obsługiwane przez standardowy mechanizm, który wykorzystuje opcje rozliczeniowe opisane w Licencjonowanie agentów obsługiwanych przez standardowy mechanizm. Dowiedz się, jak uzyskać dostęp do standardowych funkcji w Uzyskiwanie dostępu do standardowych agentów i przepływów agentów.

Zmienne przechowują odpowiedzi Twoich klientów na pytania Twojego agenta. 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żna używać tylko w temacie, w którym została utworzona zmienna. Możesz jednak chcieć ponownie użyć wartości w wielu tematach. Na przykład temat Witamy prosi klienta o podanie imienia i nazwiska oraz adresu e-mail. W temacie Rezerwacja terminu chcesz, aby agent zapamiętał, co klient już podał i nie pytał ponownie.

Zmienną można ponownie użyć, przekazując zmienną z jednego tematu do innego. Można również ustawić zmienną globalną w zakresie. W tym artykule opisano zmienne globalne. Są one nazywane zmiennymi globalnymi, ponieważ są one dostępne we wszystkich tematach w całym agencie. Twój agent może również ustawić je ze źródeł zewnętrznych.

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.

Note

Nazwa zmiennej globalnej musi być unikatowa we wszystkich tematach.

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

  2. W panelu Właściwości zmiennej wybierz opcję Globalna (każdy temat ma dostęp). Nazwa zmiennej pobiera prefiks Global. , aby odróżnić go od zmiennych na poziomie tematu. Na przykład zmienna UserName staje się Global.UserName.

  3. Zapisz temat.

Używanie zmiennych globalnych

Podczas tworzenia komunikatu w węźle Komunikat lub w węźle Pytanie wybierz ikonę {x} , aby wyświetlić zmienne, do których ma dostęp temat. Można również używać zmiennych globalnych w węzłach Tool, które wywołują prompty lub przepływy pracy. Zmienne globalne są wyświetlane na karcie Niestandardowe wraz z dowolnymi zmiennymi tematu. Zmienne są wymieniane w kolejności alfabetycznej.

Znajdź wszystkie tematy korzystające ze zmiennej globalnej

Możesz dowiedzieć się, gdzie jest zdefiniowana zmienna globalna i które inne tematy go używają. Ta funkcja jest przydatna, jeśli pracujesz nad nowym agentem lub jeśli masz wiele zmiennych i złożone rozgałęzianie tematów.

  1. Wybierz zmienną globalną, której chcesz użyć na kanwie tworzenia lub na panelu Zmienne .

  2. W panelu Właściwości zmiennej, 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.

Usuwanie zmiennych globalnych

Jeśli usuniesz zmienną globalną używaną w innych tematach, odwołania do tej zmiennej w tematach będą wyświetlane jako Unknown. Przed potwierdzeniem operacji zostanie wyświetlone ostrzeżenie o usunięciu zmiennej globalnej.

Węzły zawierające odwołania do usuwanej zmiennej globalnej będą zawierać informację o nieznanej zmiennej.

Tematy z węzłami zawierającymi odwołania do usuniętych zmiennych globalnych mogą przestać działać. Przed opublikowaniem agenta upewnij się, że usunąłeś lub poprawiłeś wszystkie tematy, w których użyto usuniętej już zmiennej.

Cykl życia zmiennych globalnych

Domyślnie wartość zmiennej globalnej jest zachowywana do momentu zakończenia sesji . Węzeł Wyczyść wartości zmiennych resetuje wartości zmiennych globalnych. W temacie Resetowanie systemu konwersacji jest używany ten węzeł. Gdy przekierowanie wyzwala ten temat (lub gdy użytkownik wprowadza frazę, taką jak „Zacznij od początku”), wszystkie zmienne globalne są resetowane.

Ustawianie zmiennych globalnych ze źródeł zewnętrznych

Aby upewnić się, że agent rozpoczyna konwersację z pewnym kontekstem, użyj zmiennej globalnej i ustaw jej wartość ze źródła zewnętrznego. Załóżmy, że witryna wymaga od użytkowników zalogowania się. Jeśli przechowujesz nazwę użytkownika w zmiennej globalnej i przekazujesz ją do agenta, agent może przywitać klientów po imieniu, zanim zaczną wpisywać pierwsze pytanie. Innym przykładowym scenariuszem jest przekazywanie kontekstu z Dynamics 365 Customer Service do agenta, dzięki czemu może rozpocząć rozmowę z wiedzą o tym, co klient chce osiągnąć.

Aby zapobiec niepożądanym opóźnieniu, określ, jak długo agent może czekać na wartość. Można również ustawić wartość domyślną, która ma być używana, gdy źródło zewnętrzne nie odpowiada w żądanym czasie.

Note

Agenty publikowane w kanale Dynamics 365 Contact Center na potrzeby scenariuszy IVR nie obsługują limitów czasu skonfigurowanych dla zmiennych globalnych ustawianych przez źródła zewnętrzne.

  1. Utwórz dedykowany temat do przechowywania konfiguracji dla wszystkich zmiennych, które mają być ustawiane ze źródeł zewnętrznych. Możesz na przykład nazwać ten temat „Ustawianie zmiennych kontekstowych”. Ten temat nie służy innym celom, więc nie musi mieć ustawionych fraz wyzwalających.

  2. Dodaj węzeł Ustaw wartość zmiennej do dedykowanego tematu.

  3. W sekcji Ustaw zmienną otwórz selektor zmiennych i wybierz opcję Utwórz nową zmienną.

  4. Wybierz domyślną nazwę nowej zmiennej. Zostanie wyświetlony panel Właściwości zmiennej.

  5. Zastąp nazwę domyślną nazwą zgodną dokładnie z nazwą zmiennej przekazywanej z systemu zewnętrznego.

  6. W sekcji Użycie wybierz opcję Globalne (dostępne dla wszystkich tematów) oraz Źródła zewnętrzne mogą ustawiać wartości.

  7. W obszarze Odwołanie, wybierz trzy kropki () w prawym górnym rogu, a następnie opcję Pobierz wartość z tego węzła, jeśli jest pusty.

  8. (Opcjonalnie) Ustaw opóźnienie limitu czasu w milisekundach. Wartość ta określa, jak długo agent może czekać na ustawienie zmiennej przez źródło zewnętrzne przed upływem limitu czasu i kontynuowaniem działania z wartością domyślną ustawioną w węźle Ustaw wartość zmiennej. To ustawienie jest istotne w scenariuszach, w których zmienna zależy od długotrwałego lub asynchronicznego procesu, ale agent musi przestrzegać maksymalnego opóźnienia, aby zapewnić dobre środowisko użytkownika.

    W przypadku zmiennych pochodzących z wielokanałowej obsługi klienta użyj wartości 10 sekund (10 000 ms) jako maksymalnego czasu oczekiwania.

  9. W węźle Ustaw wartość zmiennej wprowadź wartość domyślną, która ma być używana, jeśli osiągnięto limit czasu. W czasie działania agent oczekuje wartości tego samego typu danych. Jeśli chcesz, aby ta wartość domyślna była pustym ciągiem znaków, użyj formuły Text("").

    Zrzut ekranu przedstawiający konfigurację zmiennej globalnej, która ma zostać ustawiona ze źródła zewnętrznego.

  10. W przypadku wszelkich innych wartości, które mają pochodzić z systemu zewnętrznego, dodaj więcej węzłów Ustaw wartość zmiennej do dedykowanego tematu i skonfiguruj wymagane zmienne globalne w ten sam sposób.

Po skonfigurowaniu agenta w ten sposób jest gotowy do testowania. Po wywołaniu agent zamiast czekać na wypełnienie wszystkich zmiennych przez czas nieokreślony, może natychmiast rozpocząć wysyłanie komunikatów, które nie są zależne od przekazywanych zmiennych. Gdy agent próbuje uzyskać dostęp do zmiennej, która jest ustawiana zewnętrznie, jest wstrzymywana do momentu nadejścia wartości lub przekroczenia limitu czasu. Dowiedz się więcej w temacie Optymalizowanie agentów w celu zminimalizowania opóźnień.

Important

Podczas normalnego przepływu konwersacji, jeśli agent ustawia zmienną, która w przeciwnym razie pochodzi z wartości zewnętrznej, wartość ustawiona z poziomu agenta zwycięży. Każda wartość przekazywana w kontekście jest ignorowana. Ta reguła uniemożliwia agentowi nadpisywanie wartości ustawionych celowo w tematach.

Ustaw zmienne globalne w osadzonym agencie

Jeśli osadzasz swojego agenta na prostej stronie internetowej, możesz dodać zmienne i ich definicje do adresu URL agenta. 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 w przypadku zmiennej globalnej Global.UserName użyj tylko UserName w zapytaniu.

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

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

Przykład:

Nazwa parametru jest niewrażliwa na wielkość liter: username=Ana działa 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, podstawiając variableName1 jako nazwę zmiennej bez prefiksu Global. oraz variableDefinition1 jako 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. 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));
    

W zależności od konfiguracji uwierzytelniania agenta dostępny jest zestaw globalnych zmiennych powiązanych z wybranym dostawcą uwierzytelniania. Aby uzyskać szczegółowe informacje o tym, które zestawy zmiennych są dostępne i jak z nich korzystać, zobacz Dodawanie uwierzytelniania użytkownika do tematów.