bot から人間のエージェントへの引き継ぎ

ユーザーがエージェントとやり取りするときの期待は、エージェントが自らを提案する方法や受信するメッセージを作成している人によって設定されます。エージェントがメッセージを送信するたびに、自動(BOT)またはライブ エージェント(HUMAN)が典型的なメッセージを作成したかどうかを識別できます。ユーザーには会話の中でこの情報が表示され、任意の時点でどのようなインタラクションが予期されるかを理解するのに役立ちます。

エージェントが BOTHUMAN の両方の担当者をサポートしている場合は、両者を切り替える際にコンテキストを提供することが重要です。BOT から HUMAN の担当者に切り替える場合は、HUMAN の担当者からメッセージを送信する前に、REPRESENTATIVE_JOINED イベントを送信します。また、人間のエージェントからの後続のメッセージはすべて、HUMAN の担当者として適切にラベル付けします。ライブ エージェントが会話を終了したら、REPRESENTATIVE_LEFT イベントを送信します。こうしたフレーム処理イベントでは、より複雑な質問をしたり、自由な回答を増やしたりすることが期待されます。

この会話フローでは、ユーザーの最初のインタラクションは自動応答で行われます。エージェントは、BOT 担当者としてメッセージを送信しますが、ライブ エージェントは会話に参加して、HUMAN 担当者としてメッセージを送信します。ライブ エージェントのメッセージは、REPRESENTATIVE_JOINED イベントと REPRESENTATIVE_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 の担当者とともに送信します。