Otrzymywanie wiadomości

Agenty RBM odbierają wiadomości i zdarzenia przez webhooka. Gdy użytkownik wysyła wiadomość do Twojego agenta, usługa RBM Google wysyła ją do skonfigurowanego webhooka. Agent może wtedy zdekodować wiadomość, przetworzyć ją i udzielić użytkownikowi odpowiedź.

Użytkownik wysyła wiadomość do agenta.

Użytkownicy mogą wysyłać dowolne treści, lokalizacje i pliki, na które zezwala klient RCS. Agent musi obsługiwać tekst, lokalizacje i pliki wysyłane przez użytkownika, a także wszelkie stany błędów, które mogą wywoływać te komunikaty.

Obsługa wiadomości przychodzących

Sposób, w jaki agent obsługuje wiadomości od użytkowników i na nie odpowiada, w dużym stopniu zależy od Twojej logiki biznesowej. Czynności, które trzeba wykonać, by odpowiedzieć na wiadomość użytkownika, są jednak w zasadzie spójne.

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

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

  • SMS-y to dowolne odpowiedzi.
  • Wiadomości z sugestiami zawierają dane wywołania zwrotnego oraz tekst sugerowanego działania lub sugerowanej odpowiedzi klikniętej przez użytkownika.
  • Komunikaty dotyczące lokalizacji zawierają wartości szerokości i długości geograficznej.

  • Komunikaty File (Plik) zawierają identyfikator URI pliku i powiązane z nim dane.

Krok 2. Przetwórz treść wiadomości

Treść wiadomości dla użytkownika powinna być podstawą logiki agenta i następnej odpowiedzi w rozmowie.

Najłatwiejszym sposobem rozpoznania zamiaru użytkownika jest użycie danych wywołania zwrotnego na podstawie sugerowanej odpowiedzi lub sugerowanego działania. Niezależnie od tekstu powiązanego z sugestią dane wywołania zwrotnego są czytelne dla komputera.

Jeśli użytkownik wysyła SMS-a, agent może przeanalizować jego odpowiedź pod kątem obsługiwanych słów kluczowych lub wykorzystać NLU (np. Dialogflow) do przetworzenia wiadomości i określenia ścieżki do przodu.

Wiadomości dotyczące lokalizacji i plików nie zawierają danych tekstowych ani wywołań zwrotnych, dlatego pracownik obsługi klienta powinien wziąć pod uwagę kontekst wątku i ostatnie wiadomości, zanim odpowiesz.

Jeśli agent nie wie, jak odpowiedzieć na wiadomość użytkownika, powinien wysłać komunikat o błędzie i spróbować kontynuować rozmowę, prosząc użytkownika o dodatkowe informacje, prosząc go o wprowadzenie w inny sposób lub prezentując sugerowane odpowiedzi i działania, na które agent będzie wiedział, jak odpowiedzieć.

Krok 3. Wypełnij logikę biznesową dotyczącą interakcji

Po zidentyfikowaniu prawidłowej odpowiedzi agenta na wiadomość użytkownika gromadzi niezbędne informacje z Twojej infrastruktury i w razie potrzeby współpracuje z innymi systemami, aby zrealizować logikę biznesową interakcji.

Krok 4. Odpowiedz użytkownikowi

Gdy przedstawiciel zrealizuje logikę biznesową interakcji, wyśle kolejną wiadomość i kontynuuje rozmowę z użytkownikiem.

Przykłady

Poniższy kod pokazuje, w jaki sposób agent odbiera wiadomości. Informacje o formatowaniu i wartościach znajdziesz w sekcji UserMessage.

Pracownik obsługi klienta otrzymuje SMS-a

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

Pracownik obsługi klienta 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"
  }
}

Pracownik obsługi klienta 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
  }
}

Pracownik obsługi klienta odbiera plik

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "userFile": {
    "category": "IMAGE",
    "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 wiadomości wysyłane do użytkowników zostaną dostarczone i przeczytane.

Poniższy kod pokazuje, w jaki sposób agent odbiera wiadomości. Informacje o formatowaniu i wartościach znajdziesz w sekcji UserEvent.

Wiadomość została 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"
}