กิจกรรม

เหตุการณ์คือการแจ้งเตือนที่ตัวแทนของคุณจะส่งและรับได้ เหตุการณ์มี 3 ประเภท ได้แก่

เหตุการณ์ที่เซิร์ฟเวอร์สร้างขึ้น

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

สำหรับตัวเลือกการจัดรูปแบบและค่า โปรดดู ServerEvent

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

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

{
  "phoneNumber": [phone number of recipient that the original message was intended for] ,
  "messageId": [RCS message ID of the message],
  "agentId": [bot ID],
  "eventType": "TTL_EXPIRATION_REVOKED",
  "eventId": [unique ID generated by the RBM platform],
  "sendTime": [time at which the server sent this event]
}

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

ข้อความหมดอายุแล้ว แต่ยังไม่ได้เพิกถอน

{
  "phoneNumber": [phone number of recipient that the original message was intended for] ,
  "messageId": [RCS message ID of the message],
  "agentId": [bot ID],
  "eventType": "TTL_EXPIRATION_REVOKE_FAILED",
  "eventId": [unique ID generated by the RBM platform],
  "sendTime": [time at which the server sent this event]
}

โดยไม่มีการรับประกันการส่งข้อความ

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

หากข้อความขึ้นอยู่กับเวลา เช่น OTP หรือการแจ้งเตือนการประพฤติมิชอบ วิธีที่ดีที่สุดคือการส่งข้อความผ่านช่องทางอื่นอย่าง SMS แม้จะส่งผลให้เกิดข้อความซ้ำไปยังผู้ใช้

กิจกรรมที่ผู้ใช้สร้างขึ้น

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

สำหรับตัวเลือกการจัดรูปแบบและค่า โปรดดู UserEvent

ผู้ใช้ได้รับข้อความจาก Agent

เหตุการณ์นี้แสดงว่ามีการส่งข้อความแล้ว

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

ผู้ใช้อ่านข้อความ Agent

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

{
  "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"
}

ผู้ใช้ส่ง SMS

{
  "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 ได้

เหตุการณ์ UNSUBSCRIBE แสดงให้เห็นว่าผู้ใช้ยกเลิกการพูดคุยกับตัวแทนและธุรกิจที่เป็นตัวแทน ต่อไปนี้คือตัวอย่างเพย์โหลด JSON

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

วิธีการทำงาน

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

กฎเกณฑ์ทางธุรกิจ

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

ตัวอย่าง

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

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

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

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

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

ผู้ใช้จะสมัครรับการสนทนาที่ยกเลิกการสมัครไปก่อนหน้านี้อีกครั้งใน Google Messages ได้

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

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

วิธีการทำงาน

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

กฎเกณฑ์ทางธุรกิจ

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

กิจกรรมที่ตัวแทนสร้างขึ้น

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

สำหรับตัวเลือกการจัดรูปแบบและค่า โปรดดู phones.agentEvents

ตัวแทนส่งเหตุการณ์ READ

สำหรับผู้ใช้ กิจกรรมนี้จะปรากฏเป็นใบตอบรับการอ่านสำหรับข้อความที่เจาะจง เพื่อแจ้งให้ผู้ใช้ทราบว่าแพลตฟอร์ม RBM เป็นผู้ส่งข้อความและตัวแทนกำลังประมวลผลข้อความ

โค้ดต่อไปนี้จะส่งเหตุการณ์ READ สำหรับข้อความที่มี messageId ตรงกัน

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d "{
  'eventType': 'READ',
  'messageId': 'MESSAGE_ID'
}"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send the device an event to indicate that messageId has been read
rbmApiHelper.sendReadMessage('+12223334444', messageId);
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM

Java

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Send the device an event to indicate that messageId has been read
rbmApiHelper.sendReadMessage(messageId, "+12223334444");
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service

# Send the device an event to indicate that message_id was read
rbm_service.send_read_event('+12223334444', message_id)
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                 projectId);

// Send the device an event to indicate that messageId has been read
rbmApiHelper.SendReadMessage(messageId, "+12223334444");
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM

ตัวแทนส่งเหตุการณ์ IS_TYPING

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

โค้ดต่อไปนี้จะส่งเหตุการณ์ IS_TYPING

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d "{
  'eventType': 'IS_TYPING',
}"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send the device an event to indicate that the agent is typing
rbmApiHelper.sendIsTypingMessage('+12223334444', function() {
    console.log('Typing event sent!');
});
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM

Java

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Send the device an event to indicate that the agent is typing
rbmApiHelper.sendIsTypingMessage("+12223334444");
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service

# Send the device an event to indicate that the agent is typing
rbm_service.send_is_typing_event('+12223334444')
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                 projectId);

// Send the device an event to indicate that the agent is typing
rbmApiHelper.SendIsTypingMessage(messageId, "+12223334444");
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง RBM