การส่งมอบจากบ็อตไปยังตัวแทนแบบเรียลไทม์

เมื่อผู้ใช้สื่อสารกับตัวแทน ความคาดหวังของผู้ใช้จะเป็นไปตามวิธีที่ตัวแทน นำเสนอตัวเองและผู้ที่เขียนข้อความที่ได้รับ ทุกครั้งที่ตัวแทน ส่งข้อความ ซึ่งจะระบุได้ว่าตัวแทนอัตโนมัติ (BOT) หรือตัวแทนแบบเรียลไทม์ (HUMAN) ตัวแทน เขียนข้อความ ผู้ใช้จะเห็นข้อมูลนี้ภายในการสนทนา และ ช่วยให้ผู้ใช้เข้าใจว่า พวกเขาน่าจะมีการโต้ตอบประเภทใด ช่วงเวลาหนึ่ง

หากตัวแทนสนับสนุนทั้งตัวแทน BOT และ HUMAN คุณต้อง ให้บริบทเมื่อต้องสลับระหว่าง 2 มุมมองนี้ เมื่อเปลี่ยนจาก BOT เป็น ตัวแทน HUMAN โปรดส่ง REPRESENTATIVE_JOINED กิจกรรมก่อนหน้า กำลังส่งข้อความจากตัวแทนของ HUMAN และติดป้ายกำกับทั้งหมด การติดตามข้อความจากตัวแทนแบบเรียลไทม์จากตัวแทน 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 ยกเว้น มีตัวแทนแบบเรียลไทม์อีกคน เข้าร่วมการสนทนาด้วย