1. ภาพรวมฟังก์ชัน
「รายชื่อผู้ใช้」คือศูนย์โปรไฟล์ผู้ใช้ภายใต้ Agent (ตัวแทน) แต่ละตัว ใช้สำหรับให้ฝ่ายปฏิบัติการและนักพัฒนาดูข้อมูลต่อไปนี้:
- ผู้ใช้ปลายทางคนใดบ้างที่มีปฏิสัมพันธ์ที่มีความหมายกับ Agent นี้
- ตัวระบุตัวตนของผู้ใช้แต่ละราย (
userId/anonymousId) - จำนวนเหตุการณ์สำคัญที่ผู้ใช้แต่ละรายได้สร้างขึ้น
- เวลาที่ผู้ใช้ใช้งาน (การติดต่อครั้งแรก เวลาใช้งานล่าสุด)
- สามารถดูข้อมูลเพิ่มเติมเกี่ยวกับระบบผู้ใช้ได้ที่: ภาพรวมผู้ใช้

ทางเข้า: คอนโซลนักพัฒนา → เข้าสู่ Agent ที่ต้องการ → การจัดการผู้ใช้ (User Manage) → ผู้ใช้ (Users)
2. กฎของรายชื่อผู้ใช้
กฎหลัก: เฉพาะผู้ใช้ที่ได้สร้าง「เหตุการณ์สำคัญ」อย่างน้อยหนึ่งรายการภายใต้ Agent นี้เท่านั้นจึงจะปรากฏในรายชื่อผู้ใช้
2.1 วิธีการสร้างรายชื่อผู้ใช้
ภายในระบบมี「รายชื่อผู้ใช้」ซึ่งจุดทริกเกอร์ที่ทำให้เข้าสู่รายชื่อผู้ใช้แบ่งเป็นสองประเภท:
| จุดทริกเกอร์ | ทำให้ผู้ใช้ปรากฏในรายชื่อหรือไม่ | คำอธิบาย |
|---|---|---|
| ผู้ใช้ปลายทางส่งข้อความใน Agent นี้ | ไม่ | รับประกันเพียงว่าหากมีเหตุการณ์ในภายหลังจะสามารถเชื่อมโยงได้ แต่จะไม่ทำให้ผู้ใช้นี้ปรากฏในรายชื่อด้วยตัวเอง |
| เหตุการณ์ใหม่ถูกเขียนเข้าหลังการสกัดเหตุการณ์สำคัญ | ใช่ จำนวนเหตุการณ์ในโปรไฟล์ +1 และผู้ใช้เข้าสู่รายชื่อ | พร้อมกันนั้นจะอัปเดตฟิลด์ต่าง ๆ เช่น เวลาใช้งานล่าสุด |
| การเปลี่ยนแปลงสถานะของเหตุการณ์ | อัปเดตข้อมูลของผู้ใช้ที่อยู่ในรายชื่อแล้ว | — |
| การเพิ่มข้อมูลติดต่อ | เพิ่มเบอร์โทรศัพท์ ชื่อแสดง ฯลฯ ของผู้ใช้ที่อยู่ในรายชื่อแล้ว | — |
นั่นหมายความว่า ผู้เยี่ยมชมที่เพียงแค่ส่งข้อความแต่ไม่ได้กระตุ้นเหตุการณ์สำคัญใด ๆ จะไม่ปรากฏในรายชื่อผู้ใช้ เฉพาะเมื่อโมเดลภาษาขนาดใหญ่สกัดเหตุการณ์สำคัญอย่างน้อยหนึ่งรายการจากบทสนทนา หรือมีการสร้างเหตุการณ์สำคัญด้วยตนเองผ่าน API/UI เท่านั้น ผู้ใช้รายดังกล่าวจึงจะ「ปรากฏ」ในมุมมองของฝ่ายปฏิบัติการ
2.2 เหตุใดจึงต้องเข้ารายชื่อตามเหตุการณ์สำคัญ
เหตุการณ์สำคัญคือชิ้นส่วนข้อเท็จจริงที่ระบบสกัดความหมายจากเนื้อหาบทสนทนาแล้วยืนยันว่ามีคุณค่าทางธุรกิจ (เช่น「ถอนเงิน」「ร้องเรียน」「ข้อพิพาท」「เปิดบัญชีสำเร็จ」เป็นต้น) การใช้「เคยสร้างเหตุการณ์สำคัญ」เป็นเกณฑ์ในการเข้ารายชื่อช่วยให้:
- รายชื่อมุ่งเน้นที่ผู้ใช้ที่มีคุณค่าทางธุรกิจอย่างแท้จริง หลีกเลี่ยงการถูกกลบด้วยเสียงรบกวนจากผู้เยี่ยมชมที่เพียงทดลองเล่นครั้งเดียว
- คอลัมน์อย่าง「จำนวนเหตุการณ์สำคัญ」และ「ใช้งานล่าสุด」ของแถวผู้ใช้สามารถเปรียบเทียบกันได้
- การกระทำในภายหลังของฝ่ายปฏิบัติการ (การทำเครื่องหมายการประมวลผล การโทรติดตาม) มีจุดยึดของเหตุการณ์ที่ชัดเจน
2.3 วิธีการสร้างเหตุการณ์สำคัญ
เหตุการณ์สำคัญมาจากทริกเกอร์สามประเภท:
- REALTIME (เรียลไทม์): ทริกเกอร์การสกัดอัตโนมัติทุกครั้งที่มีข้อความใหม่ในบทสนทนา
- SCHEDULED (ตามกำหนดเวลา): ทำการสกัดย้อนหลังในบทสนทนาเก่าตามรอบที่กำหนดไว้
- MANUAL (ด้วยตนเอง): คลิกปุ่ม「สกัด」ด้วยตนเองในหน้ารายละเอียดบทสนทนา
กระบวนการสกัดดำเนินการโดย LLM ตามทั้ง「พจนานุกรมประเภทเหตุการณ์」และกฎทางธุรกิจที่กำหนดค่าไว้ใน Agent ปัจจุบัน โดยให้ผลลัพธ์เป็นการดำเนินการสี่ประเภท ได้แก่ CREATE / UPDATE / MERGE / DELETE
ดังนั้น หากคุณคาดหวังให้รายชื่อผู้ใช้ของ Agent ใด Agent หนึ่งแสดงผู้ใช้ได้มากขึ้น ควรยืนยันก่อนว่า:
① Agent นั้นเปิดใช้งานการสกัดเหตุการณ์สำคัญหรือไม่
② พจนานุกรมประเภทเหตุการณ์ครอบคลุมกรณีทางธุรกิจที่คุณสนใจหรือไม่
3. ตัวระบุตัวตน: userId และ anonymousId
3.1 นิยามฟิลด์
| ชื่อฟิลด์ | ความหมาย | ใครเป็นผู้สร้าง |
|---|---|---|
userId |
รหัสผู้ใช้ ตัวระบุระดับสูงสุด ส่งเข้ามาโดยผู้บูรณาการ (นักพัฒนา) จากระบบธุรกิจของตน (ระบบบัญชี / CRM) | ฝั่งนักพัฒนา |
anonymousIds |
รายการ anonymousId ทั้งหมดที่เคยเชื่อมโยงกับผู้ใช้นี้ ใช้สำหรับการรวมข้ามอุปกรณ์ / การอัปเกรด | ระบบเป็นผู้ดูแล |
3.2 กฎลำดับความสำคัญ
ระบบใช้กฎต่อไปนี้ในการระบุ「ผู้ใช้คนเดียวกัน」:
เมื่อมี
userIdให้ยึดตามuserIdเป็นหลัก เมื่อไม่มีuserIdจะถอยกลับไปใช้AnonymousId
การแสดงผลคอลัมน์「ตัวตนผู้ใช้」บน UI ก็ปฏิบัติตามกฎนี้เช่นกัน: แสดง userId เป็นลำดับแรก หากไม่มีจึงแสดง AnonymousId และใช้ displayName (ชื่อเล่น) เป็นคำบรรยายรอง
3.3 ความสัมพันธ์ของทั้งสอง: การอัปเกรดจากผู้ใช้นิรนามไปสู่ผู้ใช้ที่เข้าสู่ระบบ
วงจรชีวิตทั่วไปของผู้ใช้ปลายทางคือ:
ผู้เยี่ยมชม (มีเพียง anonymousId) ──เข้าสู่ระบบ/ลงทะเบียน──▶ ผู้ใช้ที่ลงทะเบียน (มี userId)
แพลตฟอร์มจัดเตรียม bindUserId(botId, anonymousId, userId) ไว้เพื่อใช้สำหรับการอัปเกรดตัวตน:
- หาก
userIdนี้ยังไม่มีอยู่ภายใต้ Agent นี้:- เขียน
userIdลงในโปรไฟล์นิรนามเดิมโดยตรง primaryAnonymousIdเดิมและรายการanonymousIdจะถูกเก็บไว้ และเหตุการณ์สำคัญในอดีตยังคงเป็นของโปรไฟล์เดียวกัน
- เขียน
- หาก
userIdนี้มีอยู่แล้วภายใต้ Agent นี้:- รวม
anonymousIdsทั้งหมดของโปรไฟล์นิรนามปัจจุบันเข้าสู่โปรไฟล์ผู้ใช้ที่เข้าสู่ระบบแล้ว - ลบโปรไฟล์นิรนาม
- ทำให้เกิดประสบการณ์ที่ว่า「เข้าใช้งานแบบนิรนามก่อน → จากนั้นเข้าสู่ระบบเข้าบัญชีเก่า → ประวัติถูกรวมเข้าด้วยกัน」
- รวม
ดังนั้น แถวผู้ใช้บางรายในรายชื่ออาจผ่านขั้นตอนต่อไปนี้: ① มี anonymousId หลายรายการ (ล้างคุกกี้หลายครั้ง / ข้ามอุปกรณ์) ② สุดท้ายถูกผูกเข้ากับ
userIdเดียวกัน ตัวเลขที่แสดงในคอลัมน์「anonymousId」คือanonymousIds.length
3.4 เหตุการณ์สำคัญถูกจัดให้เป็นของผู้ใช้อย่างไร
เอนทิตีของเหตุการณ์สำคัญ (c_bot_event) ก็มีฟิลด์ userId และ anonymousId เช่นกัน เมื่อสอบถามเหตุการณ์ในลิ้นชักรายละเอียดผู้ใช้ กฎการจับคู่จะเป็นดังนี้:
- เมื่อผู้ใช้มี
userIdแล้ว: สอบถามเฉพาะเหตุการณ์ที่event.userId == userIdเท่านั้น - เมื่อผู้ใช้มีเพียง anonymousId: สอบถามเหตุการณ์ที่
event.userId ไม่มีอยู่ และ event.anonymousId == primaryAnonymousId
วิธีนี้ช่วยให้: ผู้ใช้ที่ลงทะเบียนแล้วซึ่งผ่านการอัปเกรดสามารถเห็นเหตุการณ์ทั้งหมดภายใต้ชื่อ userId ได้ ส่วนผู้ใช้นิรนามที่ยังไม่ได้อัปเกรดจะเห็นเฉพาะเหตุการณ์ในมิติของตัวเองเท่านั้น และจะไม่ถูกรวมข้อมูลผิดพลาด
4. ฟิลด์เวลา: การติดต่อครั้งแรก vs ใช้งานล่าสุด
4.1 นิยามฟิลด์
| ภาษาไทย | ประเภท | ความหมาย |
|---|---|---|
| การติดต่อครั้งแรก | ไทม์สแตมป์มิลลิวินาที | เวลาที่โปรไฟล์ผู้ใช้นี้ถูกสร้างขึ้นครั้งแรกใน Agent นี้ |
| ใช้งานล่าสุด | ไทม์สแตมป์มิลลิวินาที | เวลาล่าสุดที่โปรไฟล์ผู้ใช้นี้ถูกติดต่อ/แก้ไข |
4.2 กฎการเขียน
- การติดต่อครั้งแรก: เขียนเพียงครั้งเดียวเมื่อมีการสร้างผู้ใช้ในรายชื่อเป็นครั้งแรก และจะไม่เปลี่ยนแปลงตลอดไป อาจเข้าใจได้ว่าเป็น「จุดเริ่มต้นของการรู้จักกันระหว่างผู้ใช้นี้กับ Agent นี้」
- ใช้งานล่าสุด: รีเฟรชเป็นเวลาปัจจุบันทุกครั้งที่มีเหตุการณ์ต่อไปนี้เกิดขึ้น:
- ผู้ใช้ส่งข้อความใน Agent นี้
- ผู้ใช้สร้างเหตุการณ์สำคัญใหม่
- สถานะของเหตุการณ์สำคัญเปลี่ยนแปลง
- มีการเพิ่มข้อมูลติดต่อ (เบอร์โทรศัพท์/ชื่อเล่น)
4.3 ความหมายทางธุรกิจ
| สถานการณ์ | ควรดูฟิลด์ใด |
|---|---|
| การวิเคราะห์การได้มาของผู้ใช้/ผู้ใช้ใหม่ การแบ่งคิวการรักษาผู้ใช้ | การติดต่อครั้งแรก |
| การจัดเรียงตามความใช้งาน ลำดับความสำคัญในการติดตาม การรีเฟรชรายการ | ใช้งานล่าสุด |
| การกรอง「ผู้ใช้ที่หลับใหล」ที่ไม่ได้กลับมาเยี่ยมเยือนเป็นเวลานาน | ใช้งานล่าสุด (กรองตามลำดับจากน้อยไปมากหรือกรอบเวลา) |
4.4 การจัดเรียงเริ่มต้นของรายชื่อ
รายชื่อผู้ใช้แสดงผลโดยจัดเรียงตาม เวลาใช้งานล่าสุดจากใหม่ไปเก่า เป็นค่าเริ่มต้น — ผู้ใช้ที่มีความเคลื่อนไหวล่าสุดจะอยู่บนสุด
คอลัมน์เวลาทั้งสองรองรับการคลิกที่หัวคอลัมน์เพื่อจัดเรียงตามค่าตัวเลข
5. รายการฟิลด์ของรายชื่อ
| คอลัมน์ | ฟิลด์ที่ใช้ค่า | คำอธิบาย |
|---|---|---|
| ตัวตนผู้ใช้ | userId หรือ AnonymousId (เลือก userId ก่อน) + คำบรรยายรอง displayName |
หัวเรื่องของแถว คลิกแล้วจะเปิดลิ้นชักเหตุการณ์สำคัญ |
| anonymousId | anonymousIds (ตราจำนวน + แสดงรายการเมื่อเลื่อนเมาส์) |
สะท้อนจำนวน anonymousId ที่ผู้ใช้เคยผูก/รวมเข้าด้วยกัน |
| เหตุการณ์สำคัญ | totalEventCount |
จำนวนเหตุการณ์สะสม คลิกเพื่อเข้าสู่มุมมองเหตุการณ์ |
| ใช้งานล่าสุด | lastActiveTime |
ดูบทที่ 4 |
| การติดต่อครั้งแรก | firstContactTime |
ดูบทที่ 4 |
6. คู่มือการใช้งาน
6.1 การค้นหาผู้ใช้
ช่องค้นหาด้วยคำสำคัญที่ด้านบนของหน้ารองรับการจับคู่สี่ประเภท (ตรงกับเงื่อนไขใดเงื่อนไขหนึ่งก็พอ):
| ฟิลด์ | วิธีการจับคู่ |
|---|---|
userId |
จับคู่แบบสมบูรณ์ |
anonymousId |
จับคู่แบบสมบูรณ์ |
displayName |
จับคู่แบบเรกูลาร์เอ็กซ์เพรสชัน |
phone |
จับคู่แบบเรกูลาร์เอ็กซ์เพรสชัน |
หมายเหตุ:
userId/ anonymousId ไม่รองรับการค้นหาแบบคลุมเครือ ต้องป้อนค่าครบถ้วน
ชื่อแสดงและเบอร์โทรศัพท์รองรับการค้นหาแบบคลุมเครือ
6.2 การดูเหตุการณ์สำคัญของผู้ใช้
คลิกตัวเลขในคอลัมน์「เหตุการณ์สำคัญ」ของแถวผู้ใช้ (หรือ「ดู」ที่ท้ายแถว) ลิ้นชักด้านขวาจะดึงเหตุการณ์แบบแบ่งหน้าตามเงื่อนไขต่อไปนี้:
- ขอบเขตผู้ใช้: กรองตาม
userIdหรือ anonymousId ตามกฎในส่วนที่ 3.4 - รองรับการกรองระดับสอง: ประเภทเหตุการณ์ สถานะ คำสำคัญ (อิงเรกูลาร์เอ็กซ์เพรสชันบนสรุปเหตุการณ์)
- แสดงผลตามเวลาเหตุการณ์จากใหม่ไปเก่าเป็นค่าเริ่มต้น
คอลัมน์ในลิ้นชักเหตุการณ์: ประเภทเหตุการณ์ สรุปเหตุการณ์ สถานะ ลำดับความสำคัญ ความเชื่อมั่น เวลาอัปเดต
6.3 ค่าที่เป็นไปได้ของสถานะ ลำดับความสำคัญ และความเชื่อมั่น
| มิติ | ค่าที่เลือกได้ |
|---|---|
สถานะ (status) |
รอดำเนินการ PENDING / กำลังดำเนินการ IN_PROGRESS / แก้ไขแล้ว RESOLVED / ปิดแล้ว CLOSED |
ลำดับความสำคัญ (priority) |
ต่ำ LOW / กลาง MEDIUM / สูง HIGH / เร่งด่วน CRITICAL |
ความเชื่อมั่น (confidence) |
ต่ำ LOW / กลาง MEDIUM / สูง HIGH |
6.4 การกระทำทั่วไปของฝ่ายปฏิบัติการ
- การติดตามผู้ใช้ใหม่: กรองผู้ใช้ที่มีการติดต่อครั้งแรกในช่วง N วันที่ผ่านมา
- การปลุกผู้ใช้ที่หลับใหล: ใช้ร่วมกับการกรองตามประเภทเหตุการณ์สำคัญเพื่อกรองผู้ใช้ที่เคยมีการกระทำที่มีคุณค่าสูงแต่ปัจจุบันไม่ได้ใช้งาน
- รายการเหตุการณ์ที่ยังไม่ได้ดำเนินการ: หลังเข้าสู่ลิ้นชักรายละเอียดผู้ใช้ ใช้「สถานะ = รอดำเนินการ / กำลังดำเนินการ」ในการกรอง แล้วจึงทำการติดตามเป็นกลุ่ม
7. คำถามที่พบบ่อย (FAQ)
Q1: ฉันเห็นผู้ใช้คนหนึ่งส่งข้อความจำนวนมากที่ฝั่งหน้าบ้าน แต่ค้นหาเขาในรายชื่อผู้ใช้ไม่เจอ?
ตอบ: รายชื่อผู้ใช้แสดงเฉพาะ「ผู้ใช้ที่เคยสร้างเหตุการณ์สำคัญ」เท่านั้น หาก Agent นั้นไม่ได้เปิดใช้งานการสกัดเหตุการณ์สำคัญ หรือผลการสกัดว่างเปล่า (เนื้อหาข้อความไม่ตรงกับประเภทเหตุการณ์ที่กำหนดค่าไว้) ผู้ใช้นั้นจะไม่เข้าสู่รายชื่อ กรุณาตรวจสอบสวิตช์「การสกัดเหตุการณ์สำคัญ」ของ Agent และพจนานุกรมประเภทเหตุการณ์ บทสนทนาในพื้นที่นักพัฒนา-Debug ก็จะไม่ถูกใช้ในการสกัดเหตุการณ์สำคัญ และจะไม่แสดงในรายชื่อผู้ใช้เช่นกัน
Q2: ทำไมผู้ใช้จริงคนเดียวกันบางครั้งเป็น anonymousId บางครั้งเป็น userId?
ตอบ: ก่อนผู้ใช้ปลายทางจะเข้าสู่ระบบ SDK จะสร้าง anonymousId ขึ้นมาเพื่อใช้ในบทสนทนา หลังจากเข้าสู่ระบบแล้ว ผู้บูรณาการต้องส่ง userId จากฝั่งธุรกิจเข้ามา ระบบจะรวมโปรไฟล์นิรนามเข้ากับโปรไฟล์ของ userId ผ่าน bindUserId ในรายชื่อจะเห็นเป็นแถวของ userId ในภายหลัง ส่วน anonymousId เดิมจะถูกเก็บไว้ในรายการ anonymousIds เพื่อใช้ในการตรวจสอบย้อนหลัง
Q3:「ใช้งานล่าสุด」ไม่ตรงกับเวลาล่าสุดในตารางบทสนทนา/ข้อความ?
ตอบ: ให้ยึดตามโปรไฟล์เป็นหลัก เวลาใช้งานล่าสุดจะถูกรีเฟรชในสี่จุดเวลานี้: เมื่อข้อความมาถึง เมื่อสร้างเหตุการณ์ เมื่อสถานะเหตุการณ์เปลี่ยนแปลง และเมื่ออัปเดตข้อมูลติดต่อ หากเกิดความแตกต่าง ส่วนใหญ่เป็นเพราะการดำเนินการบางครั้งใช้เส้นทางที่ไม่เป็นมาตรฐาน (เช่น การนำเข้าออฟไลน์)
Q4:「การติดต่อครั้งแรก」สามารถแก้ไขได้หรือไม่?
ตอบ: ไม่สามารถ ฟิลด์นี้จะถูกบันทึกลงฐานข้อมูลเฉพาะตอนสร้างครั้งแรกเท่านั้น และการอัปเดตใด ๆ ในภายหลังจะไม่เขียนทับมัน
Q5: รายชื่อผู้ใช้กับรายชื่อบทสนทนามีความสัมพันธ์กันอย่างไร?
ตอบ: รายชื่อบทสนทนา (มิติ conversationId) บันทึกแต่ละครั้งของการสนทนา ส่วนรายชื่อผู้ใช้ (มิติ userId / anonymousId) เป็นการรวมในมิติของบุคคลที่อยู่เหนือบทสนทนา ผู้ใช้คนหนึ่งสามารถเชื่อมโยงกับบทสนทนาหลายรายการได้ และเหตุการณ์สำคัญหนึ่งรายการต้องเป็นของบทสนทนาหนึ่งและต้องเป็นของโปรไฟล์ผู้ใช้หนึ่งเสมอ
