Odbieranie wiadomości

Agenci RBM otrzymują wiadomości i zdarzenia za pomocą webhooka. Gdy użytkownik wyśle wiadomość do Twojego agenta, usługa RBM od Google wyśle ją do skonfigurowanego przez Ciebie webhooka. Agent może następnie zdekodować wiadomość, przetworzyć ją i wysłać odpowiedź do użytkownika.

Użytkownik wysyła wiadomość do agenta

Użytkownicy mogą wysyłać dowolny tekst, lokalizacje lub pliki, które są obsługiwane przez ich klienta RCS. Agent musi obsługiwać wszystkie teksty, lokalizacje i pliki, które użytkownik może wysłać, a także wszystkie stany błędów, które mogą wywołać te wiadomości.

Obsługa wiadomości przychodzących

Sposób obsługi i odpowiadania na wiadomości od użytkowników przez agenta zależy w dużej mierze od logiki biznesowej. Ogólnie jednak kroki, które należy wykonać, aby odpowiedzieć na wiadomość użytkownika, są podobne.

Krok 1. Określ typ wiadomości wysłanej przez użytkownika

Użytkownicy mogą wysyłać 4 rodzaje wiadomości:

  • Wiadomości tekstowe to odpowiedzi w dowolnej formie.
  • Wiadomości sugestii zawierają dane zwrotne i tekst sugerowanego działania lub sugerowanej odpowiedzi, które użytkownik kliknął.
  • Wiadomości Lokalizacja zawierają wartości szerokości i długości geograficznej.

  • Wiadomości File zawierają identyfikator URI pliku i powiązane dane.

Krok 2. Przetwarzanie treści wiadomości

Treść wiadomości użytkownika powinna kierować logiką agenta i jego następną odpowiedzią w rozmowie.

Najłatwiejszym sposobem określenia intencji użytkownika jest wykorzystanie danych zwrotnych z sugerowanej odpowiedzi lub sugerowanego działania. Niezależnie od tekstu powiązanego z sugestią dane zwrotne są czytelne dla komputera.

Jeśli użytkownik wyśle SMS-a, Twój agent może przeanalizować odpowiedź pod kątem obsługiwanych słów kluczowych lub użyć NLU (np. Dialogflow), aby przetworzyć wiadomość użytkownika i określić dalsze działania.

Wiadomości z lokalizacją i plikami nie zawierają tekstu ani danych zwrotnych, więc przed udzieleniem odpowiedzi agent powinien wziąć pod uwagę kontekst rozmowy i ostatnie wiadomości.

Jeśli agent nie wie, jak odpowiedzieć na wiadomość użytkownika, powinien zwrócić stan błędu i spróbować kontynuować rozmowę, prosząc użytkownika o dodatkowe informacje, zadając pytanie w inny sposób lub prezentując sugerowane odpowiedzi i sugerowane działania, na które agent wie, jak odpowiedzieć.

Krok 3. Zaimplementuj logikę biznesową interakcji

Gdy agent zidentyfikuje prawidłową odpowiedź na wiadomość użytkownika, zbiera niezbędne informacje z infrastruktury i w razie potrzeby wchodzi w interakcję z innymi systemami, aby zrealizować logikę biznesową interakcji.

Krok 4. Odpowiedz użytkownikowi

Po wykonaniu logiki biznesowej interakcji agent wysyła kolejną wiadomość i kontynuuje rozmowę z użytkownikiem.

Przykłady

Poniższy kod pokazuje, jak agent otrzymuje wiadomości. Informacje o formatowaniu i wartościach znajdziesz w sekcji UserMessage.

Uwaga: w przypadku ruchu z USA wiadomości do użytkowników i kliknięcia sugerowanych działań podlegają klasyfikacjom modelu rozliczeń w USA. Gdy agent otrzyma te zdarzenia, uwzględni pole richMessageClassification, które określa typ zdarzenia podlegający opłacie. Szczegółowe informacje o klasyfikacji znajdziesz w przewodniku po modelu rozliczeniowym w Stanach Zjednoczonych.

Specjalista z zespołu pomocy otrzymuje tekst

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "text": "Hello, world!"
}

Agent otrzymuje wiadomość z sugestii

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "suggestionResponse": {
    "postbackData": "suggestion_1",
    "text": "Suggestion #1"
  }
}

Agent otrzymuje lokalizację

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "location": {
    "latitude": 37.422000,
    "longitude": -122.084056
  }
}

Specjalista z zespołu pomocy otrzymuje plik

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "userFile": {
    "thumbnail": {
      "mimeType": "image/jpeg",
      "fileSizeBytes": 1280,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8",
      "fileName": "4_animated.jpeg"
    },
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  }
}

Obsługa zdarzeń przychodzących

Agent otrzymuje powiadomienia, gdy wysłane przez niego wiadomości do użytkowników zostaną dostarczone i odczytane.

Poniższy kod pokazuje, jak agent otrzymuje wiadomości. Informacje o formatowaniu i wartościach znajdziesz w sekcji UserEvent.

Wiadomość dostarczona do użytkownika

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "DELIVERED"
}

Wiadomość przeczytana przez użytkownika

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "READ"
}

Użytkownik pisze

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "agentId": "AGENT_ID"
}