从聊天机器人转移到人工客服

当用户与代理通信时,代理的期望方式取决于代理的呈现方式以及他们收到的消息的撰写者。每次代理发送消息时,它都可以确定是自动 (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 代表发送所有后续消息。