從機器人改為線上服務專員

當使用者與代理程式進行通訊時,系統的期望取決於代理程式的呈現方式以及接收訊息的對象。每次訊息傳送時,系統都能辨識自動化 (BOT) 或線上代理程式 (HUMAN) 代表是否已撰寫訊息。使用者會在對話中看到這項資訊,並有助於使用者瞭解在特定時間點所預期的互動類型。

如果代理程式同時支援 BOTHUMAN 代表,在切換兩者時請務必提供背景資訊。從 BOT 切換為 HUMAN 代表時,請先傳送 REPRESENTATIVE_JOINED 事件,再從 HUMAN 代表寄出訊息,並將所有來自線上服務專員的訊息加上 HUMAN 代表的正確標籤。當即時服務專員離開對話時,請傳送 REPRESENTATIVE_LEFT 事件。這些頁框事件可讓使用者告知,他們可以提出更複雜的問題,並有可能獲得較多的任意回應。

在這個對話流程中,使用者首次互動會以自動化回應者的身分傳送訊息,以便以 BOT 代表的身分傳送訊息,但即時代理程式會加入對話,並以 HUMAN 代表的身分傳送訊息。即時代理程式的訊息會透過 REPRESENTATIVE_JOINEDREPRESENTATIVE_LEFT 事件建立。

  1. 使用者開始與代理程式對話。
  2. 使用者開始輸入回應後,系統會將輸入事件傳送給代理程式。

    {
      "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. 使用者傳送「您好,我遇到問題了」訊息。

    {
      "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. 服務專員已與我們聯絡,感謝您與我們聯絡。當即時服務專員可以與你進行即時通訊時,就會傳遞這則訊息。」由 BOT 代表傳送的訊息。

    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. 有可用的線上服務專員。

  6. 代理程式會先傳送 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. 服務專員傳送時發生問題。我該如何協助他 (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. 即時代理程式和使用者交換訊息,直到使用者要求完成為止。由線上服務專員撰寫的所有訊息都是由 HUMAN 代表傳送。

  9. 當即時服務專員離開對話時,代理程式會傳送 REPRESENTATIVE_LEFT 事件。

    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. 除非其他即時服務專員加入對話,否則代理程式會傳送所有後續訊息給 BOT 代表。