مزامنة العملاء
يمكنك مزامنة بيانات العملاء تلقائيًا من منصة التجارة الإلكترونية إلى جهات اتصال Brevo. تضمن هذه المهارة أن تعكس قائمة جهات اتصال Brevo قاعدة عملائك الحالية دائمًا.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| الفئة | مزامنة البيانات |
| الحالة | مستقرة |
| الإصدار | 2.1 |
| المحفزات | customer_created, customer_updated, customer_deleted |
| الإجراءات | إنشاء جهة اتصال، تحديث جهة اتصال، حذف جهة اتصال |
كيف تعمل
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
- معالجة الأخطاء: يعيد محاولة العمليات الفاشلة بتأخير أسّي متصاعد
التهيئة
الإعداد الأساسي
skills: customer-sync: enabled: true source: shopify # or woocommerce, magento, custom
# Map platform fields to Brevo attributes field_mapping: email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS
# Sync options options: sync_mode: realtime # or batch delete_behavior: soft # or hard list_id: 5 # Add to this listتعيين الحقول
اربط حقول العميل في منصتك بسمات جهات اتصال 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: # Standard fields email: email firstName: FIRSTNAME
# Custom e-commerce attributes totalOrders: TOTAL_ORDERS totalSpent: TOTAL_SPENT lastOrderDate: LAST_ORDER_DATE customerTier: CUSTOMER_TIER tags: TAGSTip
أنشئ السمات أولًا: يجب إنشاء السمات المخصصة في Brevo قبل إمكانية مزامنتها. استخدم لوحة تحكم Brevo أو API لإنشائها.
المحفزات
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" }}الإجراءات
إنشاء جهة اتصال
ينشئ جهة اتصال جديدة في Brevo عند إنشاء عميل.
/v3/contacts إنشاء جهة اتصال جديدة في حساب Brevo الخاص بك
Query Parameters
| Parameter | Description |
|---|---|
| email string required | عنوان بريد جهة الاتصال |
| attributes object optional | سمات جهة الاتصال |
| listIds array optional | معرّفات القوائم لإضافة جهة الاتصال إليها |
| updateEnabled boolean optional | تحديث جهة الاتصال إذا كانت موجودة
Default: false |
Responses
تحديث جهة اتصال
يحدّث جهة اتصال موجودة عند تغيّر بيانات العميل.
/v3/contacts/{identifier} تحديث سمات جهة اتصال موجودة
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | البريد الإلكتروني أو معرّف جهة الاتصال |
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 | البريد الإلكتروني أو معرّف جهة الاتصال |
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});
// Enable customer sync skillawait 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 }});
// Manually trigger a syncawait 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'])
# Enable customer sync skilltajo.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 }})
# Manually trigger a synctajo.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 | عنوان بريد غير صحيح | تحقق من صحة الإيميلات قبل المزامنة |
وضع التصحيح
فعّل تسجيل التصحيح لاستكشاف الأخطاء:
skills: customer-sync: debug: true log_level: verboseمهارات ذات صلة
- أحداث الطلبات - مزامنة بيانات الطلبات
- كتالوج المنتجات - مزامنة بيانات المنتجات
- أحداث عربة التسوق - تتبّع نشاط عربة التسوق
الخطوات التالية
- تهيئة تعيينات الحقول لمنصتك
- إعداد السمات المخصصة في Brevo
- تفعيل المزامنة الفورية للتحديثات اللحظية