Dodawanie automatyzacji za pomocą Dialogflow

Dialogflow to narzędzie naturalne, które przetwarza dane użytkownika, mapuje je na intencje znane i odpowiada na odpowiednie odpowiedzi. Dialogflow jest 2 wersja. Dzięki zintegrowaniu agenta Business Messages z Dialogflow ES możesz łatwo utworzyć prostą automatyzację, aby szybko rozpocząć pracę agenta. Integracja z Dialogflow CX pozwala utworzyć zaawansowaną automatyzację w przypadku bardziej złożonych rozmów.

Agenty Business Messages obsługują bezpośrednią integrację z

Aby zintegrować agenta Business Messages z innymi funkcjami Dialogflow lub Dialogflow CX, zapoznaj się z dokumentacją każdej usługi.

Gdy użytkownik wysyła wiadomość do agenta, który ma integrację Dialogflow, Business Messages przekazuje tę wiadomość do Dialogflow i wysyła odpowiedź Dialogflow do agenta w obiekcie dialogflowResponse wiadomości. Możesz skonfigurować agenty tak, aby automatycznie wysyłały odpowiedzi Dialogflow do użytkownika bez żadnych działań z Twojej strony. Więcej informacji znajdziesz w artykule Odpowiedzi automatyczne.

Integracja Dialogflow

Aby móc korzystać z automatyzacji opartej na Dialogflow za pomocą Business Messages, musisz włączyć integrację Dialogflow.

Wymagania wstępne

Aby rozpocząć, musisz mieć:

  • agenta Business Messages
  • agenta Dialogflow w regionie Global z językiem głównym angielskiego (en)

Jeśli nie masz agenta Dialogflow, utwórz go.

Dialogflow ES

Aby włączyć integrację Dialogflow ES, potrzebujesz identyfikatora projektu Dialogflow. Aby znaleźć identyfikator projektu:

  1. Otwórz konsolę Dialogflow.
  2. Wybierz agenta Dialogflow, z którym chcesz nawiązać połączenie z Business Messages, a potem kliknij ikonę koła zębatego obok nazwy agenta.
  3. W sekcji Google Project sprawdź wartość identyfikatora projektu.

Dialogflow CX

Aby włączyć integrację Dialogflow CX, musisz mieć identyfikator projektu i agenta agenta Dialogflow. Aby znaleźć te identyfikatory:

  1. Przejdź do konsoli Dialogflow CX.
  2. Wybierz projekt Dialogflow.
  3. W selektorze agentów kliknij rozszerzone menu obok agenta Dialogflow.
  4. Kliknij Kopiuj nazwę. Spowoduje to skopiowanie pełnej nazwy agenta w formacie: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID.
  5. Zapisz wartości identyfikatora projektu i agenta.

Włączanie integracji

  1. W konsoli Business Communications przejdź do opcji Integracje.
  2. W oknie Dialogflow kliknij Włącz integrację.
  3. Kliknij Połącz istniejący model.
  4. Jako wersję Dialogflow wybierz wersję, którą chcesz włączyć.
  5. Wpisz identyfikator projektu agenta Dialogflow.
  6. Aby włączyć Dialogflow CX, wpisz też identyfikator agenta Dialogflow.
  7. Jeśli chcesz, aby aplikacja Business Messages automatycznie odpowiadała użytkownikom, korzystając z odpowiedzi okna dialogowego, wybierz Włącz automatyczną odpowiedź.
  8. Kliknij Dalej.
  9. Skopiuj adres e-mail konta usługi. To konto łączy agenty Business Messages i Dialogflow.
  10. W Google Cloud Console wybierz projekt Dialogflow.
  11. Otwórz uprawnienia.
  12. Kliknij Dodaj i wpisz adres e-mail konta usługi dla nowych podmiotów zabezpieczeń.
  13. W obszarze Wybierz rolę zaznacz Edytor agentów Dialogflow.
  14. Kliknij Add another role (Dodaj kolejną rolę) i wybierz Dialogflow API Client.
  15. Kliknij Zapisz.
  16. W konsoli Business Communications kliknij Dalej.
  17. Kliknij Rozpocznij integrację.

Połączenie Business Messages i Dialogflow trwa około dwóch minut.

Aktualizowanie integracji

  1. W konsoli Business Communications przejdź do opcji Integracje.
  2. Kliknij ikonę koła zębatego obok pozycji Dialogflow.
  3. Przełącz opcję Włącz automatyczną odpowiedź w zależności od tego, czy chcesz, aby aplikacja Business Messages automatycznie odpowiadała użytkownikom z odpowiedziami w Dialogflow.

Przełączanie się między wersjami Dialogflow

Agent Business Messages może obsługiwać tylko jedną integrację Dialogflow naraz. Aby przełączyć się z jednej wersji Dialogflow na inną, musisz wyłączyć bieżącą integrację, zanim włączysz nową.

Wyłącz integrację

  1. W konsoli Business Communications przejdź do opcji Integracje.
  2. Kliknij ikonę koła zębatego obok pozycji Dialogflow.
  3. Kliknij Wyłącz integrację.
  4. Kliknij Wyłącz.

Wyłączenie istniejącej integracji Dialogflow trwa około minuty.

Włącz nową integrację z Dialogflow, wykonując te czynności.

Dopasowanie intencji

Gdy włączysz integrację Dialogflow dla agenta Business Messages, agent będzie mógł korzystać z konfiguracji projektu Dialogflow, aby zrozumieć i odpowiadać na pytania użytkowników bez konieczności pisania kodu. Więcej informacji o zamiarach znajdziesz w dokumentacji Dialogflow ES i Dialogflow CX.

Skonfiguruj intencje Dialogflow dla każdej opcji rozmowy, którą chcesz zautomatyzować. Agenty Business Messages korzystają z Dialogflow, aby rozumieć komunikaty użytkowników.

Gdy wywołujesz interfejsy Dialogflow API, Business Messages przekazuje ładunek wiadomości użytkownika do intencji i webhooka realizacji. Gdy wiadomość użytkownika pasuje do intencji, możesz uzyskać dostęp do tego ładunku w formacie Struct w polu business_messages_payload w obrębie QueryParameters.

Ładunek zawiera wszystkie pola z wiadomości dla użytkownika oprócz DialogflowResponse.

W przypadku Dialogflow CX Business Messages przekazuje też do intencji parametr sesji o nazwie channel o wartości google_business_messages. Możesz go odwołać w agentze w tym formacie: $session.params.channel.

Ten parametr może służyć do dodawania warunków do realizacji okien, aby obsługiwać wiele kanałów w ramach tego samego agenta Dialogflow.

Więcej informacji o parametrach zapytania znajdziesz w dokumentacji Dialogflow ES i Dialogflow CX.

Wymagania wstępne

Podczas tworzenia modeli NLU w Dialogflow możesz skonfigurować różne typy odpowiedzi dla intencji. Business Messages obsługuje odpowiedź domyślną, która może obejmować:

  • Tekst
  • Ładunek niestandardowy
  • Przekazywanie na żywo agenta (tylko Dialogflow Flow CX)

Niestandardowy ładunek musi pasować do poprawnego obiektu odpowiedzi na wiadomość JSON pliku Business Messages. Gdy konfigurujesz niestandardowe odpowiedzi na ładunek dla intencji, Business Messages ignoruje te pola:

  • name
  • messageId
  • representative

Zapoznaj się z przykładowymi odpowiedziami.

Tekst z sugestiami

{
  "text": "Hello World!",
  "fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
  "suggestions": [
    {
      "reply": {
        "text": "Hello",
        "postbackData": "hello-formal"
      }
    },
    {
      "reply": {
        "text": "Hi!",
        "postbackData": "hello-informal"
      }
    }
  ]
}

Karta informacyjna

{
  "fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
  "richCard": {
    "standaloneCard": {
      "cardContent": {
        "title": "Hello, world!",
        "description": "Sent with Business Messages.",
        "media": {
          "height": "TALL",
          "contentInfo":{
            "altText": "Google logo",
            "fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
            "forceRefresh": "false"
          }
        },
        "suggestions": [
          {
            "reply": {
              "text": "Suggestion #1",
              "postbackData": "suggestion_1"
            }
          },
          {
            "reply": {
              "text": "Suggestion #2",
              "postbackData": "suggestion_2"
            }
          }
        ]
      }
    }
  }
}
{
  "fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
  "richCard": {
    "carouselCard": {
      "cardWidth": "MEDIUM",
      "cardContents": [
        {
          "title": "Card #1",
          "description": "The description for card #1",
          "suggestions": [
            {
              "reply": {
                "text": "Card #1",
                "postbackData": "card_1"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/cute-dog.jpg",
              "forceRefresh": false
            }
          }
        },
        {
          "title": "Card #2",
          "description": "The description for card #2",
          "suggestions": [
            {
              "reply": {
                "text": "Card #2",
                "postbackData": "card_2"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/elephant.jpg",
              "forceRefresh": false
            }
          }
        }
      ]
    }
  }
}

Przekazanie agenta na żywo

{
  "metadata": {}
}

Najczęstsze pytania na temat botów

Po włączeniu integracji Dialogflow ES dla agenta Business Messages możesz utworzyć bota z najczęstszymi pytaniami. Odpowiedzi na pytania i odpowiedzi są dostępne w Dokumentach wiedzy. Business Messages i Dialogflow tworzą niezbędną infrastrukturę, która pozwala rozumieć pytania użytkowników i odpowiadać na nie bez konieczności pisania kodu.

Aby zobaczyć działanie bota z najczęstszymi pytaniami, porozmawiaj na czacie z najczęstszymi pytaniami dotyczącymi Business Messages.

Wymagania wstępne

Zanim utworzysz bota z najczęstszymi pytaniami, musisz mieć pytania i odpowiedzi w formie dokumentu wiedzy (maksymalnie 50 MB): pliku dostępnego publicznie w formacie HTML lub pliku CSV.

Dokumenty dotyczące wiedzy

  • Może zawierać ograniczone znaczniki Markdown w odpowiedziach, jak opisano w artykule z tekstem sformatowanym.
  • ich rozmiar nie może przekraczać 50 MB.
  • Przekroczono limit 2000 par pytań i odpowiedzi.
  • Nie obsługujemy duplikatów pytań z różnymi odpowiedziami.

W przypadku plików HTML

  • Pliki z publicznych adresów URL muszą zostać zindeksowane przez Google, aby mogły istnieć w indeksie wyszukiwania. Możesz to sprawdzić w Google Search Console. Indeks nie zmienia treści. W przypadku zmiany treści źródłowej musisz jednoznacznie zaktualizować dokument.
  • Dialogflow usuwa tagi HTML podczas tworzenia odpowiedzi. Dlatego najlepiej unikać tagów HTML i gdy to możliwe, używać zwykłego tekstu.
  • Pliki z jedną parą pytań i odpowiedzi nie są obsługiwane.

W przypadku plików CSV

  • Pliki muszą mieć pytania w pierwszej kolumnie, a odpowiedzi w drugiej – bez nagłówka.
  • Jako separatorów plików należy używać przecinków.

Tworzenie bota z najczęstszymi pytaniami

  1. W konsoli Business Communications przejdź do opcji Integracje.
  2. W sekcji Bazy wiedzy (najczęstsze pytania) kliknij Utwórz bazę wiedzy.
  3. Wpisz nazwę bazy wiedzy i kliknij Dalej.
  4. Wybierz Typ MIME.
  5. Dodaj dokument wiedzy
    • Jeśli wybierzesz HTML dla typu MIME, wpisz publicznie dostępny adres URL strony z najczęstszymi pytaniami w polu Adres URL.
    • Jeśli w polu Typ MIME wybierzesz CSV, kliknij Prześlij i wybierz plik CSV.
  6. Kliknij Dodaj i zakończ.

Aby dodać kolejne dokumenty do bota z najczęstszymi pytaniami, kliknij przycisk Dodaj dokumenty.

Gdy wykonasz te czynności, aplikacja Business Messages uwzględni obiekt dialogflowResponse w wiadomościach wysyłanych do agenta. Jeśli włączysz odpowiedź automatyczną, w wiadomościach biznesowych użytkownik otrzyma parę pytań i odpowiedzi o najwyższym wyniku matchConfidence w porównaniu z wiadomością od użytkownika.

Odpowiedzi automatyczne

Jeśli włączysz automatyczną odpowiedź podczas integracji Dialogflow, aplikacja Business Messages będzie automatycznie odpowiadać użytkownikowi za pomocą Dialogflow. Agent Business Messages odpowiada z najwyższym poziomem ufności. Dzięki integracji Dialogflow ES, jeśli istnieją dopasowania zarówno do odpowiedzi na najczęstsze pytania, jak i własnych intencji, funkcja Business Messages odpowiada dopasowaniem o najwyższym poziomie ufności.

Aplikacja Business Messages oznacza wszystkie wiadomości, na które odpowiada automatycznie, od BOT przedstawicieli. Jeśli agent obsługuje agenty na żywo, Business Messages zawiesza automatyczne odpowiedzi po REPRESENTATIVE_JOINEDzdarzeniach i wznawia je po zdarzeniach REPRESENTATIVE_LEFT. Przeczytaj artykuł Przekazywanie wiadomości od bota do agenta na żywo.

Odpowiedz na najczęstsze pytania

Dzięki integracji Dialogflow ES, jeśli odpowiedź na najczęstsze pytania ma najwyższy poziom pewności, Business Messages mapuje odpowiedź na SMS-a. Jeśli dostępna jest inna, ale inna odpowiedź, wyświetli się komunikat „Wyświetl kolejną odpowiedź”. Jeśli tak się nie stanie, w wiadomości pojawi się pytanie i zostanie zaproponowana odpowiedź na prośbę użytkownika.

Automatyczna odpowiedź z intencją intencji

Odpowiedzi na zamiar mogą obejmować jedną lub kilka z tych odpowiedzi.

Jeśli odpowiedź na zamiar ma najwyższy poziom ufności, obowiązują podane niżej zasady.

  • Jeśli odpowiedź zawiera co najmniej jedną wartość tekstową, Business Messages mapuje ją na SMS-a.
  • Jeśli odpowiedź zawiera co najmniej jeden niestandardowy ładunek z prawidłową strukturą obiektu Business Messages, usługa Wiadomości Business utworzy wiadomość przy użyciu podanego obiektu JSON.
  • Jeśli zawiera ona co najmniej 1 odpowiedź pracownika obsługi klienta, patrz Automatyczne odpowiadanie na żądanie pracownika obsługi klienta.

Ponieważ Dialogflow może zawierać wiele odpowiedzi w ramach jednego dopasowania do intencji, Business Messages wysyła odpowiedź SMS-a, niestandardowego ładunku lub transmisji na żywo jako oddzielną wiadomość. Jeśli intencja zawiera wiele wiadomości, ale niektóre mają nieprawidłowy format, Business Messages wysyła prawidłowe wiadomości tylko jako automatyczne odpowiedzi.

Automatyczna odpowiedź na żądanie pracownika obsługi klienta na żywo

Dialogflow CX obsługuje odpowiedź na żywo agenta. Informuje on, że rozmowę należy przekazać osobie, która zajmuje się nią, i umożliwia przekazywanie niestandardowych metadanych do procedury przekazania. Jeśli odpowiedź intencji ma najwyższy poziom ufności i zawiera przekazywanie pracownika obsługi klienta na żywo, Business Messages wysyła do webhooka żądane zdarzenie na żywo. Aby dowiedzieć się, jak obsługiwać to zdarzenie, przeczytaj artykuł Przekazywanie od bota do agenta na żywo.

Automatyczna odpowiedź z wiadomością zastępczą

W przypadku gdy dopasowanie nie jest wystarczające, Business Messages wysyła odpowiedź zastępczą. Kreacja zastępcza jest obsługiwana w Dialogflow ES i Dialogflow CX inaczej.

Dialogflow ES

W przypadku bota z najczęstszymi pytaniami, jeśli nie istnieje odpowiedź na odpowiedź z najczęstszymi pytaniami, Funkcja Business Messages wysyła wiadomość zastępczą, której nie można znaleźć.

W przypadku skonfigurowanych intencji, jeśli nie odpowiada odpowiedzi na zamiar, usługa Business Messages wysyła odpowiedź zastępczą. Możesz użyć tekstu zastępczego podanego przez Dialogflow lub skonfigurować kreację zastępczą z dodatkowymi tekstami i ładunkami niestandardowymi.

Oto przykład odpowiedzi na intencję zastępczą, którą może uzyskać webhook:

{
  "intentResponses": [
    {
      "intentName": "projects/df-integration/agent/intents/12345",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "1.0",
      "fulfillmentMessages": [
        {
          "text": "One more time?"
        }
      ]
    }
  ]
}

Dialogflow wstępnie wypełnia pola intent_name i intent_display_name.

Dialogflow CX

Dialogflow CX obsługuje odpowiedzi na zastępcze intencje jako wbudowane zdarzenia. Jeśli odpowiedź na intencję się nie zgadza, Business Messages wysyła wiadomość zastępczą z domyślnego zdarzenia „Brak dopasowania” w Dialogflow. Możesz użyć tekstu zastępczego podanego przez Dialogflow lub skonfigurować zasób zastępczy z dodatkowymi tekstami, ładunkami niestandardowymi i opcjami przekazywania na żywo agenta.

Oto przykład odpowiedzi zastępczej intencji, którą może odebrać webhook:

{
  "intentResponses": [
    {
      "intentName": "sys.no-match-default",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "0.3",
      "fulfillmentMessages": [
        {
          "text": "I missed that, say that again?"
        }
      ]
    }
  ]
}

Business Messages zakoduje na stałe intent_name i intent_display_name.

Pola dotyczące Dialogflow

Gdy włączysz integrację Dialogflow, wiadomości użytkownika otrzymane przez agenta będą zawierały obiekt dialogflowResponse. Webhook odbiera ładunki dla wszystkich wiadomości użytkownika niezależnie od tego, czy Business Messages automatycznie odpowiada na wiadomość w Twoim imieniu. Aby sprawdzić automatyczną odpowiedź, zobacz wartość w polu autoResponded i zdecyduj, czy chcesz odpowiedzieć użytkownikowi.

Dialogflow ES

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
    }],
  "faqResponse": {
    "userQuestion": "USER_QUESTION",
    "answers": [{
      "faqQuestion": "FAQ_QUESTION",
      "faqAnswer": "FAQ_ANSWER",
      "matchConfidenceLevel": "CONFIDENCE_LEVEL",
      "matchConfidence": "CONFIDENCE_NUMERIC",
    }],
  },
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Pole Opis
queryText Oryginalny tekst zapytania konwersacyjnego. Jeśli w modelu Dialogflow włączona jest automatyczna poprawka pisowni, queryText zawiera poprawione dane wejściowe użytkownika.
intentName Unikalny identyfikator dopasowanej intencji.
intentDisplayName Nazwa dopasowanej intencji.
intentDetectionConfidence Liczbowy poziom ufności w przypadku dopasowania od queryText do intentName.
text Odpowiedź tekstowa.
jsonPayload Niestandardowa odpowiedź dotycząca ładunku. Ten ciąg pasuje do ładunku niestandardowego zdefiniowanego w Dialogflow. Jeśli ładunek nie ma prawidłowej struktury obiektu JSON Business Messages, error opisuje problem.
error Opis błędu z wiadomością o realizacji intencji.
userQuestion Pytanie użytkownika zadane przez Dialogflow.
faqQuestion Pytanie z Dialogflow zostało dopasowane do pytania użytkownika.
faqAnswer Odpowiedź Dialogflow została dopasowana do pytania użytkownika.
matchConfidenceLevel Poziom pewności dopasowania między userQuestion a faqQuestion.
matchConfidence Liczbowy poziom ufności w dopasowaniu od userQuestion do faqQuestion.
autoResponded Określa, czy aplikacja Business Messages automatycznie odpowiada użytkownikowi za pomocą Dialogflow.
message Ładunek odpowiedzi automatycznej.
responseSource Źródło automatycznej odpowiedzi. Zobacz ResponseSource.

Dialogflow CX

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
      "liveAgentHandoff": {
        "metadata": {}
      }
    }],
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Pole Opis
queryText Oryginalny tekst zapytania konwersacyjnego. Jeśli w modelu Dialogflow włączona jest automatyczna poprawka pisowni, queryText zawiera poprawione dane wejściowe użytkownika.
intentName Unikalny identyfikator dopasowanej intencji.
intentDisplayName Nazwa dopasowanej intencji.
intentDetectionConfidence Liczbowy poziom ufności w przypadku dopasowania od queryText do intentName.
text Odpowiedź tekstowa.
jsonPayload Niestandardowa odpowiedź dotycząca ładunku. Ten ciąg pasuje do ładunku niestandardowego zdefiniowanego w Dialogflow. Jeśli ładunek nie ma prawidłowej struktury obiektu JSON Business Messages, error opisuje problem.
error Opis błędu z wiadomością o realizacji intencji.
liveAgentHandoff Niestandardowe metadane procedury przekazywania na żywo przez agenta.
autoResponded Określa, czy aplikacja Business Messages automatycznie odpowiada użytkownikowi za pomocą Dialogflow.
message Ładunek odpowiedzi automatycznej.
responseSource Źródło automatycznej odpowiedzi. Zobacz ResponseSource.