1. บทนำ

อัปเดตล่าสุด: 2021-08-23
การโอนไปยังตัวแทนแบบเรียลไทม์ด้วย Business Messages
ฟีเจอร์การโอนไปยังเจ้าหน้าที่แบบเรียลไทม์ของ Business Messages ช่วยให้ตัวแทนของคุณเริ่มการสนทนาในฐานะบ็อตและเปลี่ยนไปเป็นเจ้าหน้าที่แบบเรียลไทม์ (ตัวแทนที่เป็นมนุษย์) ได้กลางการสนทนา บอทสามารถจัดการคำถามที่พบบ่อย เช่น เวลาทำการ ในขณะที่ตัวแทนที่เป็นมนุษย์สามารถมอบประสบการณ์ที่ปรับแต่งแล้วพร้อมสิทธิ์เข้าถึงบริบทของผู้ใช้ได้มากขึ้น เมื่อการเปลี่ยนผ่านระหว่างประสบการณ์ทั้ง 2 นี้ราบรื่น ผู้ใช้จะได้รับคำตอบสำหรับคำถามอย่างรวดเร็วและถูกต้อง ซึ่งจะส่งผลให้อัตราการมีส่วนร่วมของผู้ใช้ที่กลับมาสูงขึ้นและความพึงพอใจของลูกค้าเพิ่มขึ้น
Codelab นี้จะสอนวิธีใช้ประโยชน์จากฟีเจอร์การโอนสายไปยังตัวแทนแบบเรียลไทม์อย่างเต็มที่
สิ่งที่คุณจะสร้าง
ในโค้ดแล็บนี้ คุณจะได้สร้างเว็บฮุคสำหรับ Agent ที่สามารถส่งและรับเหตุการณ์การโอนไปยังตัวแทนแบบเรียลไทม์ คุณจะใช้ UI พื้นฐานที่โค้ดเริ่มต้นมีให้เพื่อทดสอบสิ่งที่คุณสร้างขึ้น

สิ่งที่คุณจะได้เรียนรู้
- วิธีจัดเก็บและจัดการสถานะการสนทนา
- วิธีใช้ Business Messages เพื่อส่งเหตุการณ์การโอนไปยังตัวแทนแบบเรียลไทม์
- วิธีตั้งค่าเว็บฮุคและ UI พื้นฐานสำหรับการเข้าร่วมการสนทนาในฐานะตัวแทน
- แนวทางปฏิบัติแนะนำสำหรับการใช้ Business Messages API
Codelab นี้มุ่งเน้นการใช้ Business Message API เพื่อใช้การโอนไปยังตัวแทนที่เป็นมนุษย์ คุณสามารถอ่านโค้ดเริ่มต้นสำหรับแต่ละขั้นตอนได้ แต่คุณจะต้องใช้โค้ดที่เกี่ยวข้องกับ Business Messages เท่านั้น
สิ่งที่คุณต้องมี
- ตัวแทน Business Messages รวมถึงคีย์บัญชีบริการ คุณสร้าง Agent ได้โดยทำตามคู่มือการสร้าง Agent
- การกำหนดค่า Cloud Datastore ที่ใช้งานได้ซึ่งลิงก์กับโปรเจ็กต์ GCP ของเอเจนต์ คุณใช้การเริ่มต้นใช้งาน Cloud Datastore อย่างรวดเร็วเพื่อตั้งค่านี้ได้ คุณไม่จำเป็นต้องรู้วิธีใช้ Cloud Datastore
- คอมพิวเตอร์ที่ติดตั้ง Google Cloud SDK และ Node.js (เวอร์ชัน 10 ขึ้นไป)
- อุปกรณ์ Android (เวอร์ชัน 5 ขึ้นไป) หรืออุปกรณ์ iOS สำหรับทดสอบประสบการณ์ของผู้ใช้
- มีประสบการณ์ในการเขียนโปรแกรมเว็บแอปพลิเคชัน คุณจะต้องเขียนโค้ด JavaScript จำนวนเล็กน้อย และอาจต้องแก้ไขข้อบกพร่องของโค้ดที่เขียน
2. สร้างบ็อตที่ตอบกลับ
ในขั้นตอนนี้ คุณจะติดตั้งใช้งานตัวแทนบ็อตพื้นฐานที่เรียกว่า "Echo bot" บ็อตนี้จะรับข้อความของผู้ใช้ บันทึกข้อความเหล่านั้นลงในชุดข้อความการสนทนาใน Cloud Datastore แล้ว "ส่งต่อ" ข้อความของผู้ใช้โดยการตอบกลับด้วยเนื้อหาเดียวกัน เมื่อมีบ็อตพื้นฐานและโครงสร้างพื้นฐานสำหรับการบันทึกแล้ว คุณจะต่อยอดจากนั้นเพื่อสร้างการติดตั้งใช้งานการโอนไปยังตัวแทนแบบสดเต็มรูปแบบในขั้นตอนต่อๆ ไปได้
รับโค้ดเริ่มต้น
ในเทอร์มินัล ให้โคลนโค้ดเริ่มต้นสำหรับการโอนไปยังตัวแทนแบบเรียลไทม์ไปยังไดเรกทอรีการทำงานของโปรเจ็กต์ด้วยคำสั่งต่อไปนี้
git clone https://github.com/google-business-communications/bm-nodejs-live-agent-transfer
ทำความเข้าใจโค้ดเริ่มต้น
มาดูโครงสร้างโค้ดเริ่มต้นที่คุณจะใช้ตลอด Codelab นี้กัน
ไปที่ไดเรกทอรี step-1 แล้วดูเนื้อหา โดยมีองค์ประกอบต่อไปนี้
- bin: ไดเรกทอรีนี้มีสคริปต์เริ่มต้น www ซึ่งตั้งค่าและกำหนดค่าเซิร์ฟเวอร์
- libs: ไดเรกทอรีนี้มี
datastore_util.jsซึ่งมีเมธอดที่สะดวกสำหรับการอ่านและเขียนจาก Cloud Datastore คุณไม่จำเป็นต้องเข้าใจวิธีการทำงานของไฟล์นี้ เพียงจดบันทึกวิธีการที่มีและสิ่งที่วิธีการเหล่านั้นทำ - resources: มีคีย์บัญชีบริการเป็นไฟล์ชื่อ
credentials.json - routes: ไฟล์
index.jsมี Webhook และเมธอดตัวช่วยทั้งหมด นี่คือไฟล์หลักที่คุณจะใช้ทำงานและเพิ่มข้อมูล - views: ไดเรกทอรีนี้มีไฟล์เทมเพลต EJS สำหรับองค์ประกอบ UI ซึ่งจะมีไฟล์เพิ่มเติมในขั้นตอนต่อๆ ไป
- app.js, app.yaml, package.json: ไฟล์เหล่านี้กำหนดค่าแอปพลิเคชันและทรัพยากร Dependency ของแอป
ก่อนที่จะติดตั้งใช้งาน ให้ดาวน์โหลดคีย์บัญชีบริการ GCP และคัดลอกไฟล์ข้อมูลเข้าสู่ระบบ JSON ลงในไดเรกทอรีทรัพยากรแต่ละรายการในโค้ดตัวอย่าง โดยให้ทำเช่นนี้กับทุกขั้นตอนของโค้ดแล็บ
cp credentials.json bm-nodejs-live-agent-transfer/step-<step number>/resources/credentials.json
การติดตั้งใช้งานโค้ดเริ่มต้น
ในเทอร์มินัล ให้ไปที่ไดเรกทอรี step-1 ของตัวอย่าง จากนั้นตั้งค่าเครื่องมือ gcloud ให้ใช้โปรเจ็กต์ Google Cloud โดยตั้งค่ารหัสโปรเจ็กต์ที่คุณใช้ลงทะเบียนกับ API
gcloud config set project <PROJECT_ID>
หากต้องการทําให้แอปพลิเคชันใช้งานได้ ให้เรียกใช้คําสั่งต่อไปนี้
gcloud app deploy
จด URL ของแอปพลิเคชันที่ติดตั้งใช้งานในเอาต์พุตของคำสั่งสุดท้าย
Deployed service [default] to [https://PROJECT_ID.appspot.com]
โค้ดเริ่มต้นที่คุณเพิ่งติดตั้งใช้งานมีเว็บแอปพลิเคชันที่มี Webhook เพื่อรับข้อความจาก Business Messages แอปพลิเคชันจะส่งข้อความกลับไปยังผู้ใช้และบันทึกชุดข้อความไปยัง Cloud Datastore
กำหนดค่าตัวแทนของคุณ
ไปที่หน้าการตั้งค่าบัญชีในคอนโซลของนักพัฒนาซอฟต์แวร์สำหรับการสื่อสารทางธุรกิจ และตั้งค่า Webhook เป็น URL ของแอปพลิเคชันที่ใช้งาน เช่น https://PROJECT_ID.appspot.com/callback/
จากนั้นในหน้าข้อมูลตัวแทน ให้กำหนดค่าประเภทการโต้ตอบหลักและรองเป็นบ็อตและมนุษย์ตามลำดับ

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

โต้ตอบกับตัวแทนโดยส่งข้อความ 2-3 ข้อความ แพลตฟอร์มการสนทนาจะคัดลอกเฉพาะสิ่งที่คุณพูดเท่านั้น ซึ่งไม่ใช่ประสบการณ์ของผู้ใช้ที่มีประโยชน์มากนัก หากมีวิธีพูดคุยกับเจ้าหน้าที่จริงๆ ก็คงจะดี
3. ร่วมวงสนทนา
ตอนนี้มาดูการสนทนาจากมุมมองของตัวแทนแบบเรียลไทม์กัน ในฐานะเจ้าหน้าที่แบบเรียลไทม์ คุณต้องทราบข้อมูลบางอย่างเกี่ยวกับการสนทนาก่อนเข้าร่วม เช่น รหัสการสนทนา นอกจากนี้ การทราบว่าผู้ใช้ขอพูดคุยกับตัวแทนแบบเรียลไทม์หรือไม่ก็เป็นประโยชน์เช่นกัน ในขั้นตอนนี้ คุณจะใช้หน้า CRM (การจัดการลูกค้าสัมพันธ์) พื้นฐานเพื่อดูข้อมูลนี้และเข้าร่วมการสนทนาในฐานะตัวแทนแบบเรียลไทม์
โค้ดเริ่มต้นสำหรับขั้นตอนนี้จะเพิ่ม CRM พื้นฐานซึ่งแสดงรายการเธรดการสนทนาที่กำลังดำเนินอยู่ทั้งหมดสำหรับตัวแทน มาดู CRM นั้นกันเพื่อดูว่าการสนทนาใดที่อาจต้องได้รับความสนใจจากตัวแทนแบบเรียลไทม์
ไปที่ไดเรกทอรี step-2 แล้วติดตั้งใช้งานแอปอีกครั้งเหมือนกับที่คุณทำในขั้นตอนก่อนหน้า
เมื่อติดตั้งใช้งานแอป คุณจะเห็น URL เป้าหมาย ไปที่ URL นี้ในเบราว์เซอร์เพื่อดูข้อมูลที่มีชุดข้อความการสนทนาที่คุณเริ่มในขั้นตอนก่อนหน้า ขณะนี้สถานะของการสนทนาคือ "บ็อตจัดการ" เนื่องจากบ็อตเอคโคทำหน้าที่เป็นตัวแทนของตัวแทนในการสนทนานี้

ปุ่มเข้าร่วมแชทจะปรากฏขึ้น แต่ยังไม่มีการดำเนินการใดๆ นอกจากนี้ คุณยังไม่สามารถบอกได้จากอินเทอร์เฟซนี้ว่าผู้ใช้ต้องการพูดคุยกับตัวแทนแบบเรียลไทม์หรือไม่
Business Messages มีเหตุการณ์ที่ขอตัวแทนแบบเรียลไทม์ซึ่งจะระบุเมื่อผู้ใช้ต้องการพูดคุยกับตัวแทนแบบเรียลไทม์ คุณต้องติดตามสถานะดังกล่าวเพื่อแสดงใน UI
ดูเมธอด Callback ใน index.js TODO ความคิดเห็นจะระบุตำแหน่งที่คุณต้องรับคำขอของผู้ใช้สำหรับตัวแทนแบบเรียลไทม์และอัปเดตสถานะเธรด
step-2/routes/index.js
/**
* The webhook callback method.
*/
router.post('/callback', async function(req, res, next) {
...
} else if (requestBody.userStatus !== undefined) {
if (requestBody.userStatus.requestedLiveAgent !== undefined) {
...
// TODO: Update the thread state to QUEUED_THREAD_STATE.
}
}
});
...
});
คุณต้องใช้วิธีการใน libs/datastore_utils.js เพื่อโหลดเธรดการสนทนาปัจจุบันและอัปเดตสถานะเป็น QUEUED_THREAD_STATE
หากไม่แน่ใจว่าต้องทำอย่างไร ให้ดูวิธีแก้ปัญหา โค้ดเริ่มต้นมีไดเรกทอรี solutions ในทุกขั้นตอนที่คุณต้องเขียนโค้ดให้เสร็จสมบูรณ์ ไดเรกทอรีเหล่านี้มีสำเนาของแอปทั้งหมดพร้อมการติดตั้งใช้งานที่สมบูรณ์สำหรับขั้นตอนที่ระบุ
เมื่อติดตั้งใช้งานเสร็จสมบูรณ์และนำแอปไปใช้งานอีกครั้งแล้ว ให้ใช้เมนูแบบเลื่อนลงในการสนทนาบนอุปกรณ์เคลื่อนที่เพื่อขอรับบริการจากตัวแทนแบบเรียลไทม์

ตอนนี้หากกลับไปที่ CRM คุณจะเห็นหมายเหตุในเธรดการสนทนาที่ระบุว่า "ขอรับบริการจากตัวแทนแบบเรียลไทม์" ผู้ใช้รายนี้ต้องการความช่วยเหลือจากเจ้าหน้าที่ คุณต้องใช้ปลายทาง joinConversation เพื่อให้ปุ่มทำงาน
ค้นหาTODOความคิดเห็นอื่นๆ ในเมธอดที่สร้างขึ้นสำหรับ /joinConversation
step-2/routes/index.js
/**
* Updates the thread state and sends a representative join signal to the user.
*/
router.post('/joinConversation', async function(req, res, next) {
let conversationId = req.body.conversationId;
// TODO: Update the thread state to LIVE_AGENT_THREAD_STATE and post a REPRESENTATIVE_JOINED event.
res.json({
'result': 'ok',
});
});
คุณต้องอัปเดตสถานะเธรดอีกครั้ง โดยครั้งนี้ให้เป็นLIVE_AGENT_THREAD_STATE นอกจากนี้ คุณต้องใช้วิธี conversations.events.create ของ Business Messages API เพื่อโพสต์เหตุการณ์ REPRESENTATIVE_JOINED
หากต้องการสร้างเพย์โหลดคำขอ คุณต้องตั้งค่าช่องที่ระบุไว้ในตารางต่อไปนี้
ชื่อฟิลด์ | เคล็ดลับ |
| ตั้งค่าเป็น "conversations/{conversationId}" |
| สร้างรหัสแบบสุ่มของคุณเองสำหรับกิจกรรม |
| ใช้เมธอด |
| นี่คือเนื้อหาของกิจกรรม คุณควรกำหนด eventType และ representative |
ดูความช่วยเหลือได้ที่หน้าข้อมูลอ้างอิงสำหรับเมธอด create หรือหน้าข้อมูลอ้างอิงของเหตุการณ์
เมื่อติดตั้งใช้งานเสร็จแล้ว ให้ติดตั้งแอปอีกครั้ง แล้วคลิกปุ่มเข้าร่วมแชท กล่องโต้ตอบเข้าร่วมการสนทนาจะปรากฏขึ้น และสถานะแชทจะเปลี่ยนเป็น "แชทสด" หากดูการสนทนาในอุปกรณ์เคลื่อนที่ คุณจะเห็นหมายเหตุในแชทว่าตัวแทนแบบเรียลไทม์ได้เข้าร่วมแล้ว
ยินดีด้วย ในขั้นตอนถัดไป เราจะมาดูวิธีทำให้ตัวแทนที่เป็นมนุษย์ได้พูดคุยกับผู้ใช้
4. การรับส่งข้อความในฐานะเจ้าหน้าที่บริการลูกค้า
ตอนนี้คุณได้เข้าร่วมการสนทนาแล้ว ก็ถึงเวลาส่งข้อความในฐานะตัวแทนแบบเรียลไทม์
ไปที่ไดเรกทอรี step-3 แล้วติดตั้งแอปอีกครั้ง ใน CRM ให้คลิกเธรดการสนทนาจากขั้นตอนก่อนหน้า ตอนนี้คุณควรเห็นอินเทอร์เฟซแชทพื้นฐาน จากที่นี่ คุณจะเห็นข้อความของผู้ใช้แบบเรียลไทม์ได้

อย่างไรก็ตาม เรายังไม่ได้ติดตั้งใช้งานการส่งข้อความในฐานะตัวแทน คุณต้องดำเนินการให้เสร็จในขั้นตอนนี้
เปิดไฟล์ routes/index.js แล้วดูปลายทาง 3 รายการที่เพิ่มใหม่
/messages: รับไฟล์มุมมองmessages.ejsและแสดงในเบราว์เซอร์ เมื่อคลิกชุดข้อความการสนทนาจากดัชนี คุณจะไปยังหน้าใดหน้าหนึ่งต่อไปนี้/retrieveMessages: รับเนื้อหาข้อความของชุดข้อความและแสดงผลรายการข้อความทั้งหมดในการสนทนาที่จัดรูปแบบแล้ว หน้าข้อความจะเรียกใช้ปลายทางนี้เป็นระยะๆ เพื่อแสดงข้อความล่าสุด/sendMessage: ส่งข้อความจากตัวแทนที่เป็นเจ้าหน้าที่บริการลูกค้าไปยังผู้ใช้ หน้าข้อความจะเรียกใช้ฟังก์ชันนี้เมื่อคุณคลิก "ส่ง" ขณะนี้ยังไม่ได้ใช้งาน
ตอนนี้มาดูstoreAndSendResponseวิธีที่มีอยู่กัน
step-3/routes/index.js
/**
* Updates the thread, adds a new message and sends a response to the user.
*
* @param {string} message The message content that was received.
* @param {string} conversationId The unique id for this user and agent.
* @param {string} threadState Represents who is managing the conversation for the CRM.
* @param {string} representativeType The representative sending the message, BOT or HUMAN.
*/
async function storeAndSendResponse(message, conversationId, threadState, representativeType) {
...
}
เว็บฮุคใช้วิธีนี้อยู่แล้วในการส่งการตอบกลับจากบอทที่ส่งเสียงก้อง เมธอดนี้จะจัดเก็บข้อมูลข้อความที่เข้ามาในออบเจ็กต์ Cloud Datastore สำหรับการสนทนาก่อน จากนั้นก็จะส่งข้อความตอบกลับ พิจารณาออบเจ็กต์ข้อความที่สร้างขึ้นอย่างละเอียด โดยเฉพาะอย่างยิ่งประเภทตัวแทน
ตอนนี้ ให้คุณติดตั้งใช้งานปลายทาง /sendMessage ด้วยตนเอง คุณสามารถใช้วิธีการstoreAndSendResponseที่มีอยู่ที่นี่เพื่อทำงานส่วนใหญ่ได้ สิ่งสำคัญคืออย่าลืมตั้งค่าตัวแทนที่ถูกต้อง
เมื่อใช้งานได้แล้ว ให้ติดตั้งแอปอีกครั้ง แล้วกลับไปที่การสนทนาใน CRM ตอนนี้คุณจะเห็นข้อความปรากฏในประวัติแชทแล้ว นอกจากนี้ คุณยังเห็นข้อความของตัวแทนปรากฏในอุปกรณ์ทดสอบเคลื่อนที่ด้วย

ก่อนดำเนินการต่อ โปรดตรวจสอบว่าคุณเข้าใจวิธีการทำงานของปลายทางใหม่ ในขั้นตอนถัดไป คุณจะเพิ่มปลายทางของคุณเองเพื่อออกจากการสนทนา
5. การออกจากการสนทนา
หลังจากช่วยตอบคำถามของผู้ใช้แล้ว คุณอาจต้องการออกจากการสนทนาและปล่อยให้ผู้ใช้พูดคุยกับบ็อตอีกครั้ง ใน Business Messages การเปลี่ยนแปลงนี้จะส่งสัญญาณโดยเหตุการณ์ REPRESENTATIVE_LEFT
ไปที่ไดเรกทอรี step-4 แล้วติดตั้งแอปอีกครั้ง จากนั้นกลับไปที่เธรดการสนทนา ตอนนี้มีลิงก์ปิดและออกจากการสนทนาที่ด้านล่างของเธรดแล้ว ลิงก์นี้ยังใช้งานไม่ได้เนื่องจากยังไม่ได้ติดตั้งใช้งานปลายทาง leaveConversation

ดูไฟล์ index.js มีความคิดเห็น TODO ที่แนะนำให้คุณสร้างปลายทาง leaveConversation ใหม่
step-4/routes/index.js
/*
* TODO: Create a '/leaveConversation' endpoint that does the following:
* - Updates the thread to BOT_THREAD_STATE.
* - Sends a REPRESENTATIVE_LEFT event.
* - Sends a message to the thread informing the user that they are speaking to the echo bot again.
*
* Hint: You can use the same methods that '/joinConversation' uses.
*/
หากต้องการใช้ฟีเจอร์นี้ คุณต้องรวบรวมทุกอย่างที่ได้เรียนรู้จากโค้ดแล็บมาจนถึงตอนนี้ ปลายทางนี้ควรดำเนินการต่อไปนี้
- อัปเดตเธรดเป็น
BOT_THREAD_STATE - ส่งเหตุการณ์
REPRESENTATIVE_LEFT - ส่งข้อความในการสนทนาเพื่อบอกให้ผู้ใช้ทราบว่ากำลังพูดกับบ็อตที่ตอบกลับ ใช้เมธอด
storeAndSendResponseโปรดทราบว่าตัวแทนได้เปลี่ยนกลับเป็นBOTแล้ว
ขั้นตอนสุดท้ายจะอธิบายสถานะของการสนทนาให้ผู้ใช้ทราบ ผู้ใช้จะเห็นเหตุการณ์เมื่อตัวแทนออกจากแชท แต่จะไม่ทราบว่ากำลังพูดกับบอทเสียงก้องอีกครั้ง การส่งข้อความจากบ็อตโดยตรงจะช่วยลดความสับสนของผู้ใช้และปรับปรุงประสบการณ์การใช้งาน
ตอนนี้บ็อตจัดการเรื่องต่างๆ แล้ว เจ้าหน้าที่แบบเรียลไทม์จึงพร้อมเข้าร่วมการสนทนาอื่นๆ ลองเล่นกับโค้ดตัวอย่างและ CRM ได้มากเท่าที่คุณต้องการ ทดสอบแนวคิดต่างๆ ที่คุณมีสำหรับประสบการณ์การโอนไปยังตัวแทนแบบเรียลไทม์ของธุรกิจ และดูว่าคุณจะพบอะไร
6. สรุป
ขอแสดงความยินดีที่ทำ Codelab การโอนไปยังเจ้าหน้าที่บริการลูกค้าสำเร็จ
คุณได้สร้างเอเจนต์ที่สามารถจัดการการโอนไปยังตัวแทนแบบเรียลไทม์ตั้งแต่ต้นจนจบ นอกจากนี้ คุณยังได้เรียนรู้วิธีหนึ่งในการติดตามสถานะของการสนทนาด้วย Cloud Datastore
การโอนไปยังตัวแทนแบบสดช่วยให้คุณฝากคำขอทั่วไปไว้กับบ็อตได้ ในขณะที่ตัวแทนแบบสดจะจัดการคำถามที่ซับซ้อนกว่า ผู้ใช้จะพึงพอใจกับประสบการณ์การใช้งานใหม่ที่ปรับแต่งและมีประโยชน์มากขึ้น ซึ่งจะเพิ่มโอกาสที่ผู้ใช้จะกลับมาและแนะนำธุรกิจของคุณให้เพื่อนๆ
สิ่งต่อไปที่ควรทำ
ลองใช้ Codelab เหล่านี้
อ่านเพิ่มเติม
- ดูข้อมูลพื้นฐานเกี่ยวกับการโอนสายไปยังตัวแทนแบบเรียลไทม์ได้ที่คู่มือการส่งต่อจากบอทไปยังตัวแทนแบบเรียลไทม์
- อัปเกรดบ็อตที่ตอบคำถามซ้ำๆ ให้เป็นบ็อตคำถามที่พบบ่อยด้วยคู่มือ Dialogflow