การซิงก์ลูกค้า
การซิงก์ลูกค้า
ซิงก์ข้อมูลลูกค้าจากแพลตฟอร์มอีคอมเมิร์ซของคุณไปยังผู้ติดต่อ Brevo โดยอัตโนมัติ Skill นี้รับประกันว่ารายชื่อผู้ติดต่อ Brevo ของคุณสะท้อนฐานลูกค้าปัจจุบันของคุณเสมอ
ภาพรวม
| คุณสมบัติ | ค่า |
|---|---|
| หมวดหมู่ | การซิงก์ข้อมูล |
| สถานะ | เสถียร |
| เวอร์ชัน | 2.1 |
| Triggers | customer_created, customer_updated, customer_deleted |
| Actions | สร้างผู้ติดต่อ อัปเดตผู้ติดต่อ ลบผู้ติดต่อ |
วิธีการทำงาน
graph LR A[E-commerce Platform] -->|Customer Event| B[Customer Sync Skill] B -->|Map Data| C[Field Mapping] C -->|API Call| D[Brevo Contacts API] D -->|Success| E[Contact Updated] D -->|Error| F[Retry Queue]- การตรวจจับเหตุการณ์: รับฟังเหตุการณ์วงจรชีวิตลูกค้าจากแพลตฟอร์มของคุณ
- การแมปข้อมูล: แมปฟิลด์แพลตฟอร์มไปยังคุณลักษณะผู้ติดต่อ Brevo
- การซิงก์ API: สร้าง อัปเดต หรือลบผู้ติดต่อผ่าน Brevo API
- การจัดการข้อผิดพลาด: ลองใหม่การดำเนินการที่ล้มเหลวด้วย exponential backoff
การกำหนดค่า
การตั้งค่าพื้นฐาน
skills: customer-sync: enabled: true source: shopify # หรือ woocommerce, magento, custom
# แมปฟิลด์แพลตฟอร์มกับคุณลักษณะ Brevo field_mapping: email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS
# ตัวเลือกการซิงก์ options: sync_mode: realtime # หรือ batch delete_behavior: soft # หรือ hard list_id: 5 # เพิ่มในรายการนี้การแมปฟิลด์
แมปฟิลด์ลูกค้าของแพลตฟอร์มของคุณกับคุณลักษณะผู้ติดต่อ Brevo:
การแมปฟิลด์เริ่มต้น
| Parameter | Type | Description |
|---|---|---|
email required | string | อีเมลลูกค้า ใช้เป็นตัวระบุเฉพาะใน Brevo |
firstName optional | string | ชื่อแรกของลูกค้า แมปกับคุณลักษณะ FIRSTNAME |
lastName optional | string | นามสกุลของลูกค้า แมปกับคุณลักษณะ LASTNAME |
phone optional | string | หมายเลขโทรศัพท์ในรูปแบบ E.164 แมปกับคุณลักษณะ SMS สำหรับ WhatsApp/SMS |
acceptsMarketing optional | boolean | สถานะการยอมรับการตลาด ควบคุมสถานะการสมัครรับอีเมล |
คุณลักษณะที่กำหนดเอง
เพิ่มการแมปคุณลักษณะที่กำหนดเองสำหรับข้อมูลอีคอมเมิร์ซ:
field_mapping: # ฟิลด์มาตรฐาน email: email firstName: FIRSTNAME
# คุณลักษณะอีคอมเมิร์ซที่กำหนดเอง totalOrders: TOTAL_ORDERS totalSpent: TOTAL_SPENT lastOrderDate: LAST_ORDER_DATE customerTier: CUSTOMER_TIER tags: TAGSTip
สร้างคุณลักษณะก่อน: คุณลักษณะที่กำหนดเองต้องถูกสร้างใน Brevo ก่อนที่จะซิงก์ได้ ใช้แดชบอร์ด Brevo หรือ API เพื่อสร้าง
Triggers
customer_created
ทำงานเมื่อลูกค้าใหม่ถูกสร้างในแพลตฟอร์มของคุณ
{ "event": "customer_created", "timestamp": "2024-01-15T10:30:00Z", "data": { "id": "cust_12345", "firstName": "Jane", "lastName": "Smith", "phone": "+1234567890", "acceptsMarketing": true, "createdAt": "2024-01-15T10:30:00Z" }}customer_updated
ทำงานเมื่อข้อมูลลูกค้าถูกแก้ไข
{ "event": "customer_updated", "timestamp": "2024-01-15T14:45:00Z", "data": { "id": "cust_12345", "changes": { "phone": { "old": null, "new": "+1234567890" } } }}customer_deleted
ทำงานเมื่อลูกค้าถูกลบออกจากแพลตฟอร์มของคุณ
{ "event": "customer_deleted", "timestamp": "2024-01-15T16:00:00Z", "data": { "id": "cust_12345", "deletedAt": "2024-01-15T16:00:00Z" }}Actions
สร้างผู้ติดต่อ
สร้างผู้ติดต่อใหม่ใน Brevo เมื่อลูกค้าถูกสร้าง
/v3/contacts สร้างผู้ติดต่อใหม่ในบัญชี Brevo ของคุณ
Query Parameters
| Parameter | Description |
|---|---|
| email string required | อีเมลผู้ติดต่อ |
| attributes object optional | คุณลักษณะผู้ติดต่อ |
| listIds array optional | ID รายการที่จะเพิ่มผู้ติดต่อ |
| updateEnabled boolean optional | อัปเดตหากผู้ติดต่อมีอยู่แล้ว
Default: false |
Responses
อัปเดตผู้ติดต่อ
อัปเดตผู้ติดต่อที่มีอยู่เมื่อข้อมูลลูกค้าเปลี่ยนแปลง
/v3/contacts/{identifier} อัปเดตคุณลักษณะของผู้ติดต่อที่มีอยู่
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | อีเมลหรือ ID ผู้ติดต่อ |
Query Parameters
| Parameter | Description |
|---|---|
| attributes object optional | คุณลักษณะที่จะอัปเดต |
| listIds array optional | รายการที่จะเพิ่มผู้ติดต่อ |
| unlinkListIds array optional | รายการที่จะลบผู้ติดต่อออก |
Responses
ลบผู้ติดต่อ
ลบผู้ติดต่อเมื่อลูกค้าถูกลบ
/v3/contacts/{identifier} ลบผู้ติดต่อออกจาก Brevo อย่างถาวร
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | อีเมลหรือ ID ผู้ติดต่อ |
Responses
ตัวอย่างโค้ด
JavaScript (Node.js)
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// เปิดใช้งาน Skill การซิงก์ลูกค้าawait tajo.skills.enable('customer-sync', { source: 'shopify', fieldMapping: { email: 'email', firstName: 'FIRSTNAME', lastName: 'LASTNAME', totalOrders: 'TOTAL_ORDERS', totalSpent: 'TOTAL_SPENT' }, options: { syncMode: 'realtime', listId: 5 }});
// ทริกเกอร์การซิงก์ด้วยตนเองawait tajo.skills.trigger('customer-sync', { event: 'customer_created', data: { firstName: 'Jane', lastName: 'Smith' }});Python
from tajo import TajoClient
tajo = TajoClient( api_key=os.environ['TAJO_API_KEY'], brevo_api_key=os.environ['BREVO_API_KEY'])
# เปิดใช้งาน Skill การซิงก์ลูกค้าtajo.skills.enable('customer-sync', { 'source': 'woocommerce', 'field_mapping': { 'email': 'email', 'first_name': 'FIRSTNAME', 'last_name': 'LASTNAME', 'total_orders': 'TOTAL_ORDERS' }, 'options': { 'sync_mode': 'realtime', 'list_id': 5 }})
# ทริกเกอร์การซิงก์ด้วยตนเองtajo.skills.trigger('customer-sync', { 'event': 'customer_updated', 'data': { 'total_orders': 10, 'total_spent': 1250.00 }})การติดตาม
แดชบอร์ดสถานะการซิงก์
ติดตามประสิทธิภาพการซิงก์ในแดชบอร์ด Tajo:
- อัตราความสำเร็จการซิงก์: เปอร์เซ็นต์ของการซิงก์ที่สำเร็จ
- เวลาแฝงเฉลี่ย: เวลาจากเหตุการณ์ถึงการอัปเดต Brevo
- อัตราข้อผิดพลาด: ความพยายามซิงก์ที่ล้มเหลว
- ความลึกของคิว: การดำเนินการซิงก์ที่รอดำเนินการ
การแจ้งเตือน Webhook
รับการแจ้งเตือนสำหรับเหตุการณ์การซิงก์:
notifications: webhook_url: https://your-app.com/webhooks/tajo events: - sync_completed - sync_failed - batch_completedการแก้ไขปัญหา
ปัญหาที่พบบ่อย
ผู้ติดต่อมีอยู่แล้ว (409)
เปิดใช้งาน updateEnabled: true ในการกำหนดค่าของคุณเพื่ออัปเดตผู้ติดต่อที่มีอยู่แทนที่จะล้มเหลว
| ข้อผิดพลาด | สาเหตุ | วิธีแก้ไข |
|---|---|---|
Contact already exists | ผู้ติดต่อที่มีอีเมลนี้มีอยู่แล้ว | เปิดใช้งาน updateEnabled: true |
Invalid attribute | คุณลักษณะไม่มีอยู่ใน Brevo | สร้างคุณลักษณะใน Brevo ก่อน |
Rate limit exceeded | คำขอ API มากเกินไป | ใช้โหมดการซิงก์แบบชุด |
Invalid email format | ที่อยู่อีเมลมีรูปแบบผิด | ตรวจสอบอีเมลก่อนซิงก์ |
โหมด Debug
เปิดใช้งานการบันทึก debug สำหรับการแก้ไขปัญหา:
skills: customer-sync: debug: true log_level: verboseSkills ที่เกี่ยวข้อง
- Order Events - ซิงก์ข้อมูลคำสั่งซื้อ
- Product Catalog - ซิงก์ข้อมูลสินค้า
- Cart Events - ติดตามกิจกรรมตะกร้า
ขั้นตอนถัดไป
- กำหนดค่าการแมปฟิลด์ สำหรับแพลตฟอร์มของคุณ
- ตั้งค่าคุณลักษณะที่กำหนดเอง ใน Brevo
- เปิดใช้งานการซิงก์แบบเรียลไทม์ สำหรับการอัปเดตทันที