รายชื่อผู้ใช้

1. ภาพรวมฟังก์ชัน

「รายชื่อผู้ใช้」คือศูนย์โปรไฟล์ผู้ใช้ภายใต้ Agent (ตัวแทน) แต่ละตัว ใช้สำหรับให้ฝ่ายปฏิบัติการและนักพัฒนาดูข้อมูลต่อไปนี้:

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

alt text

ทางเข้า: คอนโซลนักพัฒนา → เข้าสู่ 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)
                      
                      ผู้เยี่ยมชม (มีเพียง 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) เป็นการรวมในมิติของบุคคลที่อยู่เหนือบทสนทนา ผู้ใช้คนหนึ่งสามารถเชื่อมโยงกับบทสนทนาหลายรายการได้ และเหตุการณ์สำคัญหนึ่งรายการต้องเป็นของบทสนทนาหนึ่งและต้องเป็นของโปรไฟล์ผู้ใช้หนึ่งเสมอ