รับเหตุการณ์

เอเจนต์จะได้รับเหตุการณ์ Webhook จากแพลตฟอร์ม RBM ซึ่งจะแจ้งให้คุณทราบทั้งการโต้ตอบของผู้ใช้และการอัปเดตระดับแพลตฟอร์ม

เหตุการณ์เหล่านี้จัดหมวดหมู่ตามแหล่งที่มา ดังนี้

  • เหตุการณ์ของผู้ใช้: การแจ้งเตือนที่ส่งจากอุปกรณ์ของผู้ใช้ไปยัง ตัวแทนของคุณ ซึ่งส่งสัญญาณการโต้ตอบกับตัวแทนหรือข้อความของตัวแทน
  • เหตุการณ์แพลตฟอร์ม: การแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงสถานะการเปิดตัวของตัวแทนและข้อความที่หมดอายุซึ่งส่งโดยแพลตฟอร์ม RBM

ดูรายละเอียดเกี่ยวกับเหตุการณ์สถานะที่ตัวแทนส่งไปยังอุปกรณ์ของผู้ใช้ได้ที่ ส่งเหตุการณ์

เหตุการณ์ผู้ใช้

เหตุการณ์ของผู้ใช้คือการแจ้งเตือนจากอุปกรณ์ของผู้ใช้ที่รายงานสถานะข้อความ หรือการเปลี่ยนแปลงการสมัครรับข้อมูล (เช่น ผู้ใช้ได้ยกเลิกการสมัครรับข้อมูล หรือสมัครรับข้อมูลอีกครั้ง ใน Google Messages)

ดูตัวเลือกการจัดรูปแบบและค่าทั้งหมดได้ในข้อมูลอ้างอิงของ UserEvent

ผู้ใช้ได้รับข้อความของตัวแทน

เหตุการณ์นี้บ่งชี้ว่าระบบได้นำส่งข้อความไปยังอุปกรณ์ของผู้ใช้เรียบร้อยแล้ว

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "DELIVERED",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้อ่านข้อความของตัวแทน

เหตุการณ์นี้บ่งชี้ว่ามีการเปิดหรือรับทราบข้อความ

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "READ",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้เริ่มพิมพ์

เหตุการณ์นี้บ่งชี้ว่าผู้ใช้กำลังพิมพ์คำตอบ

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้ส่งข้อความ

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "text": "Hi",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้ส่งไฟล์

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "userFile": {
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  },
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้แตะคำตอบที่แนะนำ

เมื่อผู้ใช้แตะคำตอบที่แนะนำ ตัวแทนจะได้รับเหตุการณ์ที่มี ข้อมูลการแจ้งผล Conversion ของคำตอบและข้อความ

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234",
    "text": "Hello there!"
  }
}

ผู้ใช้แตะการดำเนินการที่แนะนำ

เมื่อผู้ใช้แตะการกระทําที่แนะนํา ตัวแทนของคุณจะได้รับเหตุการณ์ที่มี ข้อมูลการรายงานผล Conversion ของการกระทํา

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234"
  }
}

ผู้ใช้ยกเลิกการสมัครรับข้อมูลการสนทนา

เหตุการณ์นี้บ่งชี้ว่าผู้ใช้ได้ยกเลิกการสมัครรับข้อความที่ไม่จำเป็น เช่น โปรโมชัน จากเอเจนต์ของคุณและธุรกิจที่เอเจนต์เป็นตัวแทน ผู้ใช้จะเรียกใช้เหตุการณ์นี้ได้โดยการยกเลิกการสมัครรับข้อความจากแชท RBM ใน Google Messages

ตัวอย่างเพย์โหลด JSON มีดังนี้

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "UNSUBSCRIBE",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

วิธีการทำงานของการยกเลิกการสมัครรับอีเมล

  • ตัวเลือกยกเลิกการสมัครรับข้อมูลจะอยู่ในเมนูแชทเสมอ สำหรับเอเจนต์ที่ใช้เพื่อการโปรโมตและแบบหลายครั้ง ตัวเลือกนี้จะปรากฏในแชทโดยตรงหลังจากมีข้อความที่ยังไม่อ่านจำนวนหนึ่ง (กฎเฉพาะจะแตกต่างกันไปตามประเทศ)
  • การเลือกยกเลิกการสมัครรับข้อมูลจะทริกเกอร์การดำเนินการ 2 อย่างพร้อมกัน ได้แก่ Google Messages จะส่งคีย์เวิร์ดเฉพาะประเทศ (เช่น "STOP") ไปยังตัวแทน และ แพลตฟอร์ม RBM จะส่งเหตุการณ์ UNSUBSCRIBE ไปยังเว็บฮุก

    ระบบจะกำหนดคีย์เวิร์ดตามรหัสประเทศแบบ 2 ตัวอักษรของหมายเลขโทรศัพท์ของผู้ใช้ ตารางต่อไปนี้แสดงคีย์เวิร์ดสำหรับแต่ละประเทศที่รองรับ

    ประเทศ (รหัสประเทศ) คีย์เวิร์ดการยกเลิกการสมัครรับข้อมูล
    สหรัฐอเมริกา (US), อินเดีย (IN), สหราชอาณาจักร (GB), เยอรมนี (DE) หยุด
    สเปน (ES), เม็กซิโก (MX) BAJA
    ฝรั่งเศส (FR) หยุด
    บราซิล (BR) parar
  • หลังจากที่ผู้ใช้ยกเลิกการติดตามแล้ว การสนทนาจะยังคงอยู่ในกล่องจดหมาย เว้นแต่จะมีการรายงานว่าเป็นจดหมายขยะ ซึ่งในกรณีนี้ระบบจะย้ายการสนทนาไปยังโฟลเดอร์จดหมายขยะและข้อความที่ถูกบล็อก

  • Google จะตรวจสอบรูปแบบข้อความหลังจากที่ผู้ใช้ยกเลิกการสมัครรับอีเมลเพื่อระบุการละเมิดนโยบายและกฎทางธุรกิจ

กฎธุรกิจ

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

ตัวอย่าง

หากผู้ใช้ยกเลิกการสมัครรับข้อความจากตัวแทนสายการบินที่มี Use Case เป็นการใช้งานหลายอย่าง คุณต้องหยุดส่งข้อความการตลาด อย่างไรก็ตาม คุณสามารถส่งข้อมูลอัปเดตเที่ยวบินได้ หากผู้ใช้ให้ความยินยอมอย่างชัดแจ้งในการรับข้อมูลอัปเดตสำหรับเที่ยวบินนั้นๆ

เหตุผลในการยกเลิกการสมัครรับอีเมล

เมื่อผู้ใช้ยกเลิกการติดตามเอเจนต์ของคุณ ผู้ใช้จะเลือกเหตุผลจากตัวเลือกต่อไปนี้ได้

  • สแปม
  • ไม่เคยลงชื่อสมัครใช้
  • มีข้อความมากเกินไป
  • ไม่สนใจเป็นสมาชิกแล้ว
  • อื่นๆ

เหตุผลในการยกเลิกการสมัครรับข้อมูลจะแสดงในภาพรวมข้อมูลวิเคราะห์เพื่อช่วยให้พาร์ทเนอร์ เข้าใจสาเหตุที่ผู้ใช้ยกเลิกการสมัครรับข้อมูล

ผู้ใช้สมัครรับข้อมูลการสนทนาอีกครั้ง

เหตุการณ์นี้บ่งชี้ว่าผู้ใช้ต้องการรับข้อความจากตัวแทนของคุณอีกครั้ง รวมถึงเนื้อหาที่ไม่จำเป็น เช่น โปรโมชัน ผู้ใช้สามารถทริกเกอร์เหตุการณ์นี้ได้โดยการสมัครรับข้อมูลการสนทนาที่ยกเลิกการสมัครรับข้อมูลไปก่อนหน้านี้อีกครั้งใน Google Messages

ตัวอย่างเพย์โหลด JSON มีดังนี้

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "SUBSCRIBE",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

วิธีการทำงานของการสมัครใช้บริการอีกครั้ง

  • ตัวเลือกสมัครรับข้อมูลซึ่งมีให้ใช้งานจากทั้งเมนูแชทและลิงก์ในแชท ช่วยให้ผู้ใช้สมัครรับข้อมูลการสนทนาที่เคยยกเลิกการสมัครไปแล้วได้อีกครั้ง
  • การเลือกติดตามจะทําให้เกิดการดําเนินการ 2 อย่างพร้อมกัน ได้แก่ Google Messages จะส่งคีย์เวิร์ดเฉพาะประเทศ (เช่น "START") ไปยังตัวแทน และ แพลตฟอร์ม RBM จะส่งเหตุการณ์ SUBSCRIBE ไปยังเว็บฮุก ระบบจะกำหนดคีย์เวิร์ดที่เฉพาะเจาะจงตามรหัสประเทศแบบ 2 ตัวอักษรของหมายเลขโทรศัพท์ของผู้ใช้ ตารางต่อไปนี้แสดงคีย์เวิร์ดสำหรับแต่ละประเทศที่รองรับ

    ประเทศ (รหัสประเทศ) คีย์เวิร์ดการติดตาม
    สหรัฐอเมริกา (US), อินเดีย (IN), สหราชอาณาจักร (GB), เยอรมนี (DE) เริ่ม
    สเปน (ES), เม็กซิโก (MX) ALTA
    ฝรั่งเศส (FR) Démarrer
    บราซิล (BR) começar

กฎธุรกิจ

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

เหตุการณ์ของแพลตฟอร์ม

แพลตฟอร์ม RBM จะส่งเหตุการณ์ของแพลตฟอร์มเพื่อแจ้งให้ตัวแทนทราบเกี่ยวกับการเปลี่ยนแปลงสถานะการเปิดตัวของตัวแทนหรือข้อความหมดอายุ

สถานะการเปิดตัวเอเจนต์มีการเปลี่ยนแปลง

แพลตฟอร์ม RBM จะส่งAgentLaunchEvent สำหรับการเปลี่ยนแปลงทุกครั้งในสถานะการเปิดตัวของตัวแทน เช่น เมื่อสถานะของเอเจนต์เปลี่ยนจาก PENDING เป็น LAUNCHED ระบบจะส่งเหตุการณ์เป็น ข้อความ Pub/Sub หากต้องการแยกความแตกต่างจากเหตุการณ์อื่นๆ ให้ตรวจสอบmessage.attributes.typeเส้นทางสำหรับค่า agent_launch_event

การกำหนดค่าเว็บฮุค

คุณสามารถใช้เว็บฮุคระดับพาร์ทเนอร์หรือระดับตัวแทนเพื่อรับการแจ้งเตือนเหล่านี้

ข้อกำหนดเบื้องต้น

  • กำหนดค่าเว็บฮุคสำหรับการรับส่งข้อความ RBM (นี่เป็นข้อกำหนดสำหรับการรับข้อความและเหตุการณ์ของผู้ใช้)
  • หากต้องการแยกความแตกต่างระหว่างเหตุการณ์ของผู้ใช้และเหตุการณ์สถานะการเปิดตัวเอเจนต์ ให้ตรวจสอบเส้นทาง message.attributes.type เพื่อดูค่า agent_launch_event

โครงสร้างเพย์โหลดของเหตุการณ์

ระบบจะส่ง AgentLaunchEvent เป็นข้อความ Pub/Sub เช่น

{
  "message": {
    "attributes": {
      "business_id": "rbm-chatbot-id@rbm.goog",
      "event_type": "REJECTED",
      "product": "RBM",
      "project_number": "3338881441851",
      "type": "agent_launch_event"
    },
    "data": "....BASE64-encoded-JSON-with-notification...",
    "messageId": "14150481888479752",
    "message_id": "14150481888479752",
    "publishTime": "2025-03-05T18:50:21.88Z",
    "publish_time": "2025-03-05T18:50:21.88Z"
  },
  "subscription": "projects/rbm-partner-gcp/subscriptions/rbm-sub"
}

ฟิลด์ AgentLaunchEvent.LaunchState ในเพย์โหลดของเหตุการณ์จะระบุ สถานะการเปิดตัวใหม่ของเอเจนต์ ค่าที่เป็นไปได้มีดังนี้

ค่า สถานะการเปิดตัวของตัวแทน รายละเอียด
UNLAUNCHED ยังไม่ได้เปิดตัว อนุญาตให้แก้ไขได้
PENDING รอดำเนินการ ระบบได้ส่งคำขอให้ผู้ให้บริการตรวจสอบแล้ว
LAUNCHED เปิดตัวแล้ว ผู้ให้บริการที่ระบุอนุญาตให้ส่งข้อความ
REJECTED ถูกปฏิเสธในผู้ให้บริการรายหนึ่งๆ เหตุผลการปฏิเสธระบุไว้ในความคิดเห็น
SUSPENDED ถูกระงับในเครือข่ายของผู้ให้บริการที่ระบุ เหตุผลในการระงับจะระบุไว้ในความคิดเห็น

ฟิลด์ข้อมูลมีออบเจ็กต์ JSON ที่เข้ารหัส Base64 พร้อมรายละเอียดสถานะการเปิดตัว ตัวอย่าง JSON ที่ถอดรหัสแล้วมีดังนี้

    {
      "eventId": "rbm-chatbot-id/0a7ed168-676e-4a56-b422-b23434",
      "agentId": "rbm-chatbot-id@rbm.goog",
      "botDisplayName": "RBM Welcome Bot 7 - RBM Chatbot name",
      "brandId": "bd38fbff-392a-437b-a6f2-7f2e43745b56",
      "brandDisplayName": "Chatbots brand",
      "regionId": "/v1/regions/fi-rcs",
      "oldLaunchState": "PENDING",
      "newLaunchState": "REJECTED",
      "actingParty": "rbm-support@google.com",
      "comment": "Carrier has rejected the launch: policy violation",
      "sendTime": "2025-03-05T18:50:19.386436Z"
    }

ตารางต่อไปนี้แสดงสถานะการเปิดตัวเอเจนต์และการดำเนินการที่ทริกเกอร์สถานะเหล่านั้น

สถานะการเปิดตัวเดิม สถานะการเปิดตัวใหม่ ทริกเกอร์สำหรับการเปลี่ยนแปลง
PENDING LAUNCHED รอการอนุมัติตัวแทน
PENDING REJECTED ปฏิเสธตัวแทนที่รอดำเนินการ
LAUNCHED SUSPENDED ระงับ Agent ที่เปิดตัวแล้ว
SUSPENDED LAUNCHED เปิดใช้งานตัวแทนที่ถูกระงับอีกครั้ง
SUSPENDED TERMINATED สิ้นสุดการใช้งานตัวแทนที่ถูกระงับแล้ว
TERMINATED LAUNCHED เปิดตัวตัวแทนที่ถูกหยุดใช้งาน

ข้อความหมดอายุแล้ว การเพิกถอนสำเร็จ

เหตุการณ์นี้บ่งบอกว่าเวลาในการใช้งาน (TTL) ของข้อความหมดอายุแล้วและ ระบบเพิกถอนข้อความเรียบร้อยแล้ว ซึ่งเป็นทริกเกอร์ที่ดีสำหรับกลยุทธ์การแสดงข้อความสำรอง

ดูตัวเลือกการจัดรูปแบบและค่าทั้งหมดได้ในข้อมูลอ้างอิงของ ServerEvent

{
  "phoneNumber": "[phone number]" ,
  "messageId": "[RCS message ID]",
  "agentId": [bot ID],
  "eventType": "TTL_EXPIRATION_REVOKED",
  "eventId": "[unique ID]",
  "sendTime": "[time stamp]"
}

ข้อความหมดอายุแล้ว เพิกถอนไม่สำเร็จ

เหตุการณ์นี้บ่งชี้ว่า TTL ของข้อความหมดอายุแล้ว แต่เพิกถอนไม่สำเร็จ

ดูตัวเลือกการจัดรูปแบบและค่าทั้งหมดได้ในข้อมูลอ้างอิงของ ServerEvent

{
  "phoneNumber": "[phone number]",
  "messageId": "[RCS message ID]",
  "agentId": "[bot ID]",
  "eventType": "TTL_EXPIRATION_REVOKE_FAILED",
  "eventId": "[unique ID]",
  "sendTime": "[time stamp]"
}

ไม่รับประกันการนำส่งข้อความ

  • หากส่งข้อความแล้ว คุณจะได้รับเหตุการณ์ DELIVERED ที่ Webhook
  • หากข้อความไม่ได้รับการนำส่ง ให้ใช้ API การเพิกถอนเพื่อส่งคำขอเพิกถอน

หากข้อความมีความเร่งด่วน เช่น OTP หรือการแจ้งเตือนการฉ้อโกง คุณควร ส่งข้อความผ่านช่องทางอื่น เช่น SMS แม้ว่าการดำเนินการนี้จะส่งผลให้ผู้ใช้ได้รับ ข้อความซ้ำก็ตาม