Skip to main content

กลุ่มเป้าหมาย (Audience)

ภาพรวม

Domain นี้มี 2 ตาราง คือ audience ซึ่งเก็บนิยามกลุ่มเป้าหมายที่สร้างจากการอัปโหลด CSV หรือจาก เงื่อนไข filter พร้อมตั้งค่า auto-refresh และ audience_member_log ซึ่งบันทึกประวัติการเพิ่ม/ลบ สมาชิกออกจากกลุ่ม เพื่อตรวจสอบย้อนหลังว่าใครเข้าออกกลุ่มเมื่อไรและด้วยสาเหตุใด

ตาราง audience

ColumnTypeNullableDefaultคำอธิบาย
idSERIAL (INTEGER)NOnextval(...)รหัสอ้างอิงหลักของกลุ่มเป้าหมาย
titleTEXTNO-ชื่อกลุ่มเป้าหมาย
descriptionTEXTYES''คำอธิบายกลุ่มเป้าหมาย
data_source"AudiencesDataSource"NO-ที่มาของรายชื่อ: csv (อัปโหลดไฟล์) หรือ filter (สร้างจากเงื่อนไข)
detailsTEXTNO-รายละเอียดของกลุ่ม เช่น ชื่อไฟล์ต้นทางหรือสรุปเงื่อนไข
infoJSONBYES-ข้อมูลประกอบเพิ่มเติมของกลุ่ม เช่น สถิติหรือ metadata การประมวลผล
slugTEXTYES-slug สำหรับอ้างอิงกลุ่มแบบอ่านง่าย
filter_infoJSONBYES-เงื่อนไข filter ที่ใช้คัดเลือกสมาชิก (ใช้เมื่อ data_source = filter)
organization_idINTEGERNO-รหัสองค์กรเจ้าของข้อมูล
line_oa_idINTEGERNO-รหัส LINE OA เจ้าของกลุ่มเป้าหมาย
api_client_idINTEGERYES-รหัส API client ที่สร้างกลุ่มนี้ (กรณีสร้างผ่าน API)
api_key_idINTEGERYES-รหัส API key ที่ใช้สร้างกลุ่มนี้
auto_refresh_enabledBOOLEANNOfalseเปิด/ปิดการรีเฟรชสมาชิกกลุ่มอัตโนมัติ
last_refresh_dateTIMESTAMPTZ(3)YES-วันเวลาที่รีเฟรชสมาชิกล่าสุด
refresh_statusVARCHAR(20)NO'idle'สถานะการรีเฟรชปัจจุบัน เช่น idle, processing
status"CommonStatus"NO-สถานะของกลุ่มเป้าหมาย (active, inactive, processing, ...)
created_byINTEGERNO-รหัสผู้ใช้ที่สร้างรายการ
updated_byINTEGERYES-รหัสผู้ใช้ที่แก้ไขล่าสุด
created_dateTIMESTAMPTZ(3)NOnow()วันเวลาที่สร้างรายการ
updated_dateTIMESTAMPTZ(3)YES-วันเวลาที่แก้ไขล่าสุด (อัปเดตอัตโนมัติ)
deleted_dateTIMESTAMPTZ(3)YES-วันเวลาที่ลบแบบ soft delete (NULL = ยังไม่ถูกลบ)

ตาราง audience_member_log

ColumnTypeNullableDefaultคำอธิบาย
idSERIAL (INTEGER)NOnextval(...)รหัสอ้างอิงหลักของ log
audience_idINTEGERNO-รหัสกลุ่มเป้าหมายที่เกิดเหตุการณ์ (FK ไป audience.id)
line_user_idVARCHAR(255)NO-LINE user ID ของสมาชิกที่ถูกเพิ่มหรือถูกลบ
action"AudienceMemberAction"NO-ประเภทเหตุการณ์: add (เพิ่มเข้ากลุ่ม) หรือ remove (ออกจากกลุ่ม)
trigger_type"AudienceMemberTriggerType"NO-ที่มาของการเปลี่ยนแปลง: auto_refresh, manual หรือ api
created_dateTIMESTAMPTZ(3)NOnow()วันเวลาที่เกิดเหตุการณ์
organization_idINTEGERNO-รหัสองค์กรเจ้าของข้อมูล
line_oa_idINTEGERNO-รหัส LINE OA ที่เกี่ยวข้อง

หมายเหตุ

  • audience_member_log.audience_id เป็น FK ไปยัง audience.id
  • ตาราง audience ถูกอ้างอิงโดย campaign.audience_id, rich_menu.audience_id และ rich_menu_archive.audience_id สำหรับกำหนดผู้รับข้อความหรือผู้เห็น rich menu
  • Index ของ audience: line_oa_id, deleted_date
  • Index ของ audience_member_log: audience_id, created_date (เรียงจากมากไปน้อย), action, line_oa_id — ออกแบบมาให้ query ประวัติล่าสุดของกลุ่มได้เร็ว
  • audience_member_log ไม่มีคอลัมน์ soft delete เพราะเป็น append-only log