ตัวแทน RBM จะได้รับข้อความและเหตุการณ์ผ่านเว็บฮุค เมื่อผู้ใช้ส่งข้อความถึงตัวแทน บริการ RBM ของ Google จะส่งข้อความไปยังเว็บฮุคที่กำหนดค่าไว้ จากนั้น Agent จะถอดรหัสข้อความ ประมวลผล และส่งคำตอบให้ผู้ใช้ได้
ผู้ใช้จะส่งข้อความ ตำแหน่ง หรือไฟล์ใดก็ได้ที่ไคลเอ็นต์ RCS อนุญาต ตัวแทนจะต้องจัดการกับข้อความ ตำแหน่ง หรือไฟล์ที่ผู้ใช้อาจส่ง รวมถึงข้อผิดพลาดที่ระบุว่าข้อความเหล่านั้นอาจทริกเกอร์
จัดการข้อความขาเข้า
วิธีที่ตัวแทนจัดการและตอบกลับข้อความจากผู้ใช้จะขึ้นอยู่กับตรรกะทางธุรกิจของคุณ อย่างไรก็ตาม ขั้นตอนในการตอบข้อความของผู้ใช้ มักจะเหมือนกัน
ขั้นตอนที่ 1: ระบุประเภทของข้อความที่ผู้ใช้ส่ง
ผู้ใช้จะส่งข้อความได้ 4 ประเภทดังนี้
- ข้อความ Text เป็นการตอบกลับรูปแบบอิสระ
- ข้อความคำแนะนำจะมีข้อมูลระบบรายงานผล Conversion และข้อความของการดำเนินการที่แนะนำหรือการตอบกลับที่แนะนำที่ผู้ใช้แตะ
ข้อความตำแหน่งจะรวมค่าละติจูดและลองจิจูด
ข้อความไฟล์จะมี URI สำหรับไฟล์และข้อมูลที่เกี่ยวข้อง
ขั้นตอนที่ 2: ประมวลผลเนื้อหาของข้อความ
เนื้อหาของข้อความสำหรับผู้ใช้ควรเป็นแนวทางให้กับตรรกะของ Agent และคำตอบถัดไปในการสนทนา
วิธีที่ง่ายที่สุดในการระบุเจตนาของผู้ใช้คือการใช้ข้อมูลระบบรายงานผล Conversion จากการตอบกลับที่แนะนำหรือการดำเนินการที่แนะนำ ไม่ว่าข้อความที่เชื่อมโยงกับคำแนะนำจะเป็นข้อความใด ข้อมูลระบบรายงานผล Conversion จะอ่านได้
หากผู้ใช้ส่ง SMS ตัวแทนอาจแยกวิเคราะห์การตอบกลับสำหรับคีย์เวิร์ดที่รองรับ หรือใช้ NLU (เช่น Dialogflow) เพื่อประมวลผลข้อความของผู้ใช้และระบุเส้นทางข้างหน้า
ตำแหน่งและข้อความในไฟล์จะไม่มี SMS หรือข้อมูลระบบรายงานผล Conversion ดังนั้นตัวแทนจึงควรพิจารณาบริบทของการสนทนาและข้อความล่าสุดก่อนตอบกลับ
หากตัวแทนไม่ทราบวิธีตอบกลับข้อความของผู้ใช้ ตัวแทนควรตอบกลับด้วยสถานะข้อผิดพลาดและพยายามสนทนาต่อโดยแจ้งให้ผู้ใช้ขอข้อมูลเพิ่มเติม โดยการขอข้อมูลด้วยวิธีอื่น หรือแสดงการตอบกลับที่แนะนำและการดำเนินการที่แนะนำซึ่งตัวแทนทราบวิธีตอบกลับ
ขั้นตอนที่ 3: ทำตามตรรกะทางธุรกิจสำหรับการโต้ตอบ
เมื่อ Agent ระบุคำตอบที่ถูกต้องสำหรับข้อความของผู้ใช้แล้ว ตัวแทนจะรวบรวมข้อมูลที่จำเป็นจากโครงสร้างพื้นฐานและทำงานร่วมกับระบบอื่นๆ ตามความจำเป็นเพื่อดำเนินการตามตรรกะทางธุรกิจสำหรับการโต้ตอบ
ขั้นตอนที่ 4: ตอบกลับผู้ใช้
หลังจากที่ตัวแทนดำเนินการตามตรรกะทางธุรกิจสำหรับการโต้ตอบแล้ว ตัวแทนจะส่งข้อความอีกข้อความและสนทนากับผู้ใช้ต่อ
ตัวอย่าง
รหัสต่อไปนี้จะแสดงวิธีที่ตัวแทนรับข้อความ ดูข้อมูลการจัดรูปแบบและค่าได้ที่ UserMessage
ตัวแทนรับข้อความ
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "text": "Hello, world!" }
ตัวแทนได้รับข้อความจากคำแนะนำ
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "suggestionResponse": { "postbackData": "suggestion_1", "text": "Suggestion #1" } }
ตัวแทนได้รับตำแหน่ง
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "location": { "latitude": 37.422000, "longitude": -122.084056 } }
ตัวแทนรับไฟล์
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "category": "IMAGE", "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }
จัดการเหตุการณ์ที่เข้ามาใหม่
ตัวแทนจะได้รับการแจ้งเตือนเมื่อมีการนำส่งและอ่านข้อความที่ตัวแทนส่งถึงผู้ใช้
รหัสต่อไปนี้จะแสดงวิธีที่ตัวแทนรับข้อความ สำหรับการจัดรูปแบบและข้อมูลค่า โปรดดู UserEvent
ข้อความที่ส่งถึงผู้ใช้
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "DELIVERED" }
ข้อความถูกอ่านโดยผู้ใช้
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "READ" }
ผู้ใช้กำลังพิมพ์
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "agentId": "AGENT_ID" }