คุณสมบัติของผู้ติดต่อ (Contact Properties)
กำหนดฟิลด์ที่กำหนดเองสำหรับผู้ติดต่อ — เช่น ประเภทบัญชี ภูมิภาค หรือระดับสัญญา — แล้วส่งผ่านวิดเจ็ตได้ คุณสมบัติจะแสดงบนโปรไฟล์ของผู้ติดต่อ เจ้าหน้าที่แก้ไขได้ และใช้กรองในกล่องข้อความได้
ภาพรวม#
คุณสมบัติของผู้ติดต่อช่วยให้คุณแนบข้อมูลที่มีโครงสร้างเข้ากับบทสนทนา นอกเหนือจากฟิลด์ที่มีมาให้ (email, name, userId) ต่างจาก metadata ที่เป็นรูปแบบอิสระ คุณสมบัติจะมี schema ที่กำหนดไว้พร้อมชนิดข้อมูล ป้ายกำกับ และการตรวจสอบความถูกต้อง — คล้ายกับฟิลด์ที่กำหนดเองใน HubSpot หรือ Salesforce
กำหนด Schema
สร้างนิยามคุณสมบัติใน Agent Settings ด้วยชนิดข้อมูล เช่น string, number, enum, boolean, date, url
ส่งจาก Widget
ส่งค่าคุณสมบัติผ่าน Respondo.identify() — ค่าจะถูกจัดเก็บและแสดงผลโดยอัตโนมัติ
กรอง & แก้ไข
กรองบทสนทนาตามค่าคุณสมบัติในกล่องข้อความได้ เจ้าหน้าที่สามารถดูและแก้ไขแอตทริบิวต์ของผู้ติดต่อได้บนโปรไฟล์ผู้ติดต่อ
การกำหนดคุณสมบัติ#
คุณสมบัติถูกกำหนดต่อเอเจนต์ใน Agent Settings → Contact Propertiesแต่ละคุณสมบัติมี:
| ฟิลด์ | คำอธิบาย |
|---|---|
| key | ตัวระบุที่ไม่ซ้ำกันที่ใช้ในโค้ด สร้างอัตโนมัติจากป้ายกำกับ (แก้ไขได้) ตัวพิมพ์เล็ก ตัวเลข และขีดล่าง; ต้องขึ้นต้นด้วยตัวอักษร; ยาว 2-63 อักขระ คีย์ของระบบ (user_id, visitor_id, timezone, page_url, …) ถูกสงวนไว้ ตัวอย่าง: account_type |
| label | ชื่อที่มนุษย์อ่านได้ซึ่งแสดงในแดชบอร์ด ตัวอย่าง: "Account Type" |
| type | ชนิดของค่า: string, number, boolean, enum, date, url |
| enum_values | สำหรับชนิด enum — รายการค่าที่อนุญาต ตัวอย่าง: ["starter", "pro", "enterprise"] |
| is_filterable | สงวนไว้สำหรับการควบคุมตัวกรองในอนาคต; ถูกจัดเก็บไว้กับนิยาม แต่ตัวเลือกตัวกรองของกล่องข้อความปัจจุบันแสดงคุณสมบัติที่กำหนดไว้ทั้งหมด (ค่าเริ่มต้น: true) |
| is_visible | สงวนไว้สำหรับการควบคุมการแสดงผลในอนาคต; ถูกจัดเก็บไว้กับนิยามแต่ยังไม่ถูก บังคับใช้ใน UI (ค่าเริ่มต้น: true) |
การส่งจากวิดเจ็ต#
ส่งค่าคุณสมบัติในฟิลด์ properties ของ Respondo.identify()key ต้องตรงกับนิยามคุณสมบัติจาก Agent Settings
Respondo.identify({
email: 'user@example.com',
name: 'Jane Smith',
userId: 'usr_456',
properties: {
account_type: 'enterprise', // enum
region: 'eu-west', // string
monthly_spend: '15000', // number (ส่งเป็น string)
is_partner: 'true', // boolean (ส่งเป็น string)
contract_end: '2026-12-31', // date
dashboard_url: 'https://app.example.com/org/123' // url
}
});สนิปเพ็ตการผสานรวม#
Integration Snippet จะปรากฏโดยอัตโนมัติใต้ Agent Settings → Contact Properties เมื่อคุณกำหนดคุณสมบัติไว้อย่างน้อยหนึ่งรายการ โดยกรอก key คุณสมบัติทั้งหมดของคุณไว้ล่วงหน้าแล้ว คลิก Copy เพื่อคัดลอกและวางลงในแอปพลิเคชันของคุณ สไนปเป็ตที่สร้างขึ้นยังมี placeholder userHash สำหรับการยืนยันตัวตน (HMAC-SHA256) ด้วย
ค่าถูกจัดเก็บอย่างไร#
ค่าคุณสมบัติถูกจัดเก็บในฟิลด์ JSONB metadataของบทสนทนา โดยมีคำนำหน้า cp_ ตัวอย่างเช่น คุณสมบัติที่มี key account_type จะถูกจัดเก็บเป็น cp_account_type
คุณสมบัติจะถูกอัปเดตในทุกข้อความ — หากวิดเจ็ตส่งค่าใหม่มา ค่าเหล่านั้นจะเขียนทับค่าเดิม หมายความว่าค่าคุณสมบัติจะสะท้อนข้อมูลล่าสุดจากแอปพลิเคชันของคุณเสมอ
การกรองในกล่องข้อความ#
กรองบทสนทนาตามค่าคุณสมบัติโดยใช้แถบตัวกรองของกล่องข้อความหรือมุมมองที่บันทึกไว้ (View) เพิ่มเงื่อนไข Property เลือกคุณสมบัติตามชื่อ — ตัวเลือกจะแสดงทุกนิยามจากเอเจนต์ทั้งหมดของคุณ และยังรับ key ดิบที่ไม่มีนิยามด้วย — แล้วเลือกค่า ช่องค่าจะแนะนำค่าที่เคยพบและค่า enum ขณะที่คุณพิมพ์
ผ่าน API, endpoint รายการบทสนทนารับพารามิเตอร์คิวรี cp.<key>=<value> (alias ที่เทียบเท่ากับ attr.<key> ทุกประการ) ไม่มีไวยากรณ์คิวรีข้อความอิสระ:
GET /api/v1/conversations?cp.account_type=enterpriseการแก้ไขค่า#
ค่าคุณสมบัติถูกกำหนดโดยแอปพลิเคชันของคุณ — ผ่านการผสานรวมวิดเจ็ตหรือ API — และเป็นแบบอ่านอย่างเดียวในแผงรายละเอียดบทสนทนา แผงนี้ลิงก์ไปยังโปรไฟล์ของผู้ติดต่อ ที่ซึ่งเจ้าหน้าที่สามารถดูและแก้ไขแอตทริบิวต์ของผู้ติดต่อได้ (Contacts → ผู้ติดต่อ → Attributes)
Properties เทียบกับ Metadata
| คุณลักษณะ | properties | metadata |
|---|---|---|
| Schema | กำหนดใน Agent Settings พร้อมชนิดข้อมูล | คู่ key-value แบบอิสระ |
| กรองได้ | ได้ ผ่านแถบตัวกรอง / มุมมองที่บันทึกไว้ (API: พารามิเตอร์ cp.<key>) | ไม่ได้ |
| เจ้าหน้าที่แก้ไขได้ | ไม่ได้ — ค่ามาจากแอปพลิเคชันของคุณ; แอตทริบิวต์ของผู้ติดต่อแก้ไขได้บนโปรไฟล์ผู้ติดต่อ | ไม่ได้ |
| แสดงผลตามชนิด | ได้ (badge, ลิงก์, วันที่, boolean) | ข้อความธรรมดาเท่านั้น |
| เติมคำอัตโนมัติ | ได้ แนะนำค่าในช่องค่าของตัวกรอง | ไม่ได้ |
metadata สำหรับฟิลด์เฉพาะกิจที่ไม่ต้องการการกรอง หรือการแสดงผลตามชนิด ใช้ propertiesสำหรับข้อมูลที่มีโครงสร้างที่ทีมของคุณจะใช้งานอย่างจริงจังในการแบ่งกลุ่มและเวิร์กโฟลว์