Przekazywanie od bota do agenta na żywo

Gdy użytkownicy komunikują się z agentami, oczekiwania są określane przez sposób, w jaki agent się prezentuje i do kogo są wysyłane wiadomości. Za każdym razem, gdy agent wyśle wiadomość, może określić, czy wiadomość została utworzona przez automatycznego (BOT) czy pracownika obsługi klienta (HUMAN) przedstawiciela. Użytkownicy widzą te informacje w rozmowie, a użytkownicy mogą dowiedzieć się, jakiego rodzaju interakcji mogą oczekiwać w danym momencie.

Jeśli agent obsługuje zarówno przedstawicieli BOT, jak i HUMAN, ważne jest podanie kontekstu przy przełączaniu się między nimi. Zmieniając rolę BOT z przedstawiciela HUMAN, wyślij REPRESENTATIVE_JOINEDzdarzenie przed wysłaniem wiadomości od przedstawiciela HUMAN i odpowiednio oznacz wszystkie wiadomości od przedstawicieli HUMAN jako pochodzące od przedstawicieli HUMAN. Gdy pracownik obsługi klienta opuści rozmowę, wyślij zdarzenie REPRESENTATIVE_LEFT. Takie zdarzenia kadrowania informują użytkowników, że mogą zadawać bardziej złożone pytania i oczekiwać bardziej swobodnej odpowiedzi.

W ramach tego procesu pierwsze interakcje użytkownika są wykonywane przez automatyczną odpowiedź, która wysyła wiadomości jako przedstawiciel BOT, ale przedstawiciel na żywo dołącza do rozmowy i wysyła wiadomości jako przedstawiciel HUMAN. Komunikaty czatu na żywo są kadrowane przez zdarzenia REPRESENTATIVE_JOINED i REPRESENTATIVE_LEFT.

  1. Użytkownik rozpoczyna rozmowę z agentem.
  2. Gdy użytkownik zaczyna pisać odpowiedź, wysyła zdarzenie do agenta.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "live-agent-handoff",
      "requestId": "1234567890",
      "userStatus": {
        "isTyping": "true",
        "createTime": "2020-10-02T15:01:23.045123456Z",
      },
      "sendTime": "2020-10-02T15:01:24.045123456Z",
    }
    
  3. Użytkownik wysyła jako wiadomość „Cześć, mam problem”.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "live-agent-handoff",
      "requestId": "123123123",
      "message": {
        "messageId": "4444",
        "name": "conversations/12345/messages/67890",
        "text": "Hi, I have a problem",
        "createTime": "2020-10-02T15:05:23.045123456Z",
      },
      "context": {
        "entryPoint": "PLACESHEET",
        "userInfo": {
          "displayName": "Michael",
          "userDeviceLocale": "en",
        },
        "resolvedLocale": "en",
      }
      "sendTime": "2020-10-02T15:05:24.045123456Z",
    }
    
  4. Agent wysyła "dziękujemy za skontaktowanie się z nami. Przekazuję je, gdy na czacie z Tobą będzie dostępny pracownik obsługi klienta.BOT Wiadomość od przedstawiciela.

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \
    -d "{
      'messageId': '5555',
      'text': 'Thanks for contacting us. I'll pass this along when a live agent is available to chat with you.',
      'representative': {
        'avatarImage': 'https://live.agent/bot-avatar.jpg',
        'displayName': 'Hello World Agent',
        'representativeType': 'BOT'
      }
    }"
    
  5. Dostępny jest pracownik obsługi klienta.

  6. Przed wysłaniem pierwszej wiadomości na żywo agent wysyła zdarzenie REPRESENTATIVE_JOINED.

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/12345/events?eventId=6666" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json /path/to/service/account/key.json businessmessages`" \
    -d "{
      'eventType': 'REPRESENTATIVE_JOINED',
      'representative': {
        'avatarImage': 'https://live.agent/human-avatar.jpg',
        'displayName': 'Jane Doe',
        'representativeType': 'HUMAN',
      },
    }"
    
  7. Pracownik obsługi klienta wysyła od razu wiadomość, że masz problem. Jak mogę pomóc\">w formie wiadomości od przedstawiciela HUMAN.

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \
    -d "{
      'messageId': '7777',
      'text': 'I see you have a problem. How can I help?',
      'representative': {
        'avatarImage': 'https://live.agent/human-avatar.jpg',
        'displayName': 'Jane Doe',
        'representativeType': 'HUMAN'
      }
    }"
    
  8. Czat na żywo z użytkownikiem wykonuje wymianę wiadomości do momentu realizacji żądania użytkownika. Wszystkie wiadomości utworzone przez pracownika obsługi klienta są wysyłane przez przedstawiciela HUMAN.

  9. Pracownik obsługi klienta wysyła zdarzenie REPRESENTATIVE_LEFT, gdy pracownik obsługi klienta opuści rozmowę.

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/12345/events?eventId=6666" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json /path/to/service/account/key.json businessmessages`" \
    -d "{
      'eventType': 'REPRESENTATIVE_LEFT',
      'representative': {
        'avatarImage': 'https://live.agent/human-avatar.jpg',
        'displayName': 'Jane Doe',
        'representativeType': 'HUMAN',
      },
    }"
    
  10. Agent wysyła wszystkie kolejne wiadomości z przedstawicielami BOT, chyba że do rozmowy dołączy inny agent na żywo.