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

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

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

ฟิลด์ข้อมูลมีออบเจ็กต์ 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 UNLAUNCHED ยกเลิกการเปิดตัว Agent ที่ถูกระงับ
UNLAUNCHED PENDING เตรียมตัวแทนที่ยังไม่ได้เปิดตัวสำหรับคำขอเปิดตัวใหม่

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

เหตุการณ์นี้บ่งบอกว่าเวลาในการใช้งาน (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 แม้ว่าการดำเนินการนี้จะส่งผลให้ผู้ใช้ได้รับ ข้อความซ้ำก็ตาม