موصل Customer.io
اربط منصة رسائل Customer.io الخاصة بك مع Brevo لبيانات عملاء موحدة، وتنسيق حملات عبر المنصات، وتحليلات تفاعل مدمجة.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | Customer.io |
| الفئة | التسويق |
| تعقيد الإعداد | متوسط |
| تكامل رسمي | لا |
| البيانات المُزامَنة | أشخاص، أحداث، حملات، شرائح |
| واجهات البرمجة المستخدمة | Track API، App API، Pipelines API |
| المصادقة | Site ID + مفتاح API / مفتاح App API |
| عناوين URL الأساسية | track.customer.io، api.customer.io |
الميزات
- مزامنة الأشخاص - مزامنة ثنائية الاتجاه لملفات العملاء مع جهات اتصال Brevo
- إعادة توجيه الأحداث - تتبع الأحداث السلوكية وإعادة توجيهها إلى Brevo لمحفزات الأتمتة
- تحليلات الحملات - مزامنة مقاييس أداء الحملات للتقارير الموحدة
- بيانات سير العمل - عكس حالات سير عمل Customer.io في سمات جهات اتصال Brevo
- نسخ الشرائح - نسخ شرائح Customer.io كقوائم Brevo
- مزامنة بيانات الكائنات - مزامنة الكائنات غير البشرية وبيانات العلاقات
المتطلبات الأساسية
قبل البدء، تأكد من توفر ما يلي:
- حساب Customer.io مع وصول إلى API
- Site ID ومفتاح Track API (موجود في Settings > API Credentials)
- مفتاح App API لقراءة بيانات الحملات والشرائح
- حساب Brevo مع وصول إلى API
- حساب Tajo مع اشتراك نشط
المصادقة
يستخدم Customer.io واجهتي API منفصلتين بطرق مصادقة مختلفة:
Track API (البيانات السلوكية)
تُستخدم لإرسال الأشخاص والأحداث وبيانات الأجهزة. تُصادق بـ Site ID ومفتاح API عبر Basic Auth.
# Basic Auth: Site ID as username, API Key as passwordcurl -X POST https://track.customer.io/api/v1/customers/user123 \ -u "$SITE_ID:$API_KEY" \ -H "Content-Type: application/json" \App API (قراءة البيانات)
تُستخدم لاسترجاع الحملات والشرائح وبيانات العملاء. تُصادق برمز Bearer token.
curl -X GET https://api.customer.io/v1/campaigns \ -H "Authorization: Bearer $APP_API_KEY"فصل مفاتيح API
مفتاح Track API ومفتاح App API بيانات اعتماد مختلفة. يُستخدم مفتاح Track API لكتابة البيانات، بينما مفتاح App API لقراءة البيانات. كلاهما مطلوب لتكامل Tajo كامل.
الاتصال بـ Tajo
tajo connectors install customerio \ --site-id $CIO_SITE_ID \ --track-api-key $CIO_TRACK_API_KEY \ --app-api-key $CIO_APP_API_KEYالإعداد
الإعداد الأساسي
connectors: customerio: enabled: true region: "us" # or "eu" for EU data center
sync: people: true events: true campaigns: true segments: true objects: false
lists: all_contacts: 12 active_subscribers: 13 churned: 14تعيين الحقول
ربط سمات الشخص في Customer.io بسمات جهات اتصال Brevo:
field_mapping: # Standard fields id: CIO_ID email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# Engagement metrics created_at: SIGNUP_DATE last_activity: LAST_ACTIVE plan: PLAN_NAME
# Custom attributes company: COMPANY role: JOB_TITLE mrr: MONTHLY_REVENUE lifecycle_stage: LIFECYCLE_STAGEتعيين الأحداث
event_mapping: # Customer.io event -> Brevo event purchase_completed: ORDER_PLACED subscription_started: SUBSCRIPTION_START feature_activated: FEATURE_USED support_ticket_opened: SUPPORT_REQUESTنقاط نهاية واجهة البرمجة
يتكامل Tajo مع نقاط نهاية Customer.io API التالية:
| نقطة النهاية | الطريقة | API | الغرض |
|---|---|---|---|
/api/v1/customers/{id} | PUT | Track | إنشاء أو تحديث شخص |
/api/v1/customers/{id}/events | POST | Track | تتبع حدث لشخص |
/api/v1/events | POST | Track | تتبع الأحداث المجهولة |
/api/v2/entity | POST | Track | إنشاء أو تحديث أشخاص/كائنات (Pipelines) |
/v1/campaigns | GET | App | سرد الحملات |
/v1/campaigns/{id}/metrics | GET | App | مقاييس أداء الحملة |
/v1/segments | GET | App | سرد الشرائح |
/v1/segments/{id}/membership | GET | App | الحصول على أعضاء الشريحة |
/v1/customers/{id}/attributes | GET | App | الحصول على سمات العميل |
/v1/customers/{id}/activities | GET | App | الحصول على سجل نشاط العميل |
أمثلة على الكود
تهيئة الموصل
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
await tajo.connectors.connect('customerio', { siteId: process.env.CIO_SITE_ID, trackApiKey: process.env.CIO_TRACK_API_KEY, appApiKey: process.env.CIO_APP_API_KEY, region: 'us'});مزامنة الأشخاص مع Brevo
// مزامنة تزايدية لأشخاص Customer.ioawait tajo.connectors.sync('customerio', { type: 'incremental', resources: ['people'], since: '2024-01-01', batchSize: 100});
const status = await tajo.connectors.status('customerio');console.log(status);// {// connected: true,// lastSync: '2024-03-15T14:20:00Z',// peopleCount: 32500,// campaignsTracked: 18,// eventsProcessed: 87000// }إعادة توجيه الأحداث
// إعادة توجيه أحداث webhook لتقارير Customer.io إلى Brevoapp.post('/webhooks/customerio', async (req, res) => { const events = req.body;
for (const event of events) { await tajo.connectors.handleEvent('customerio', { type: event.metric, payload: { customerId: event.data.customer_id, campaignId: event.data.campaign_id, timestamp: event.timestamp } }); }
res.status(200).send('OK');});تصدير الشريحة
const result = await tajo.connectors.exportSegment('customerio', { segmentId: 42, targetList: 13, includeAttributes: ['email', 'first_name', 'last_name', 'plan']});
console.log(`Exported ${result.count} people to Brevo list 13`);حدود المعدل
يفرض Customer.io حدود معدل مختلفة لكل API:
| API | حد المعدل | ملاحظات |
|---|---|---|
| Track API | ~100 طلب/ثانية | لكل مساحة عمل |
| App API | 10 طلبات/ثانية | لكل مفتاح API |
| Pipelines API | 100 طلب/ثانية | موصى به للبيانات بالجملة |
| نقطة نهاية الدفعات | 1,000 شخص لكل طلب | الحمولة القصوى 500 كيلوبايت |
استخدم نقاط نهاية الدفعات
للمزامنات الكبيرة، يستخدم Tajo نقطة نهاية الدفعات في Customer.io لإرسال ما يصل إلى 1,000 شخص لكل طلب، مما يقلل بشكل كبير حجم استدعاءات API.
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
| المشكلة | السبب | الحل |
|---|---|---|
| 401 Unauthorized | Site ID أو مفتاح API غير صالح | تحقق من بيانات الاعتماد في Customer.io Settings > API |
| الأشخاص لا يتزامنون | معرّف مفقود | تأكد من أن كل شخص لديه id أو email |
| الأحداث لا تُتبَع | نوع مفتاح API خاطئ | استخدم مفتاح Track API للأحداث، وليس مفتاح App API |
| بيانات EU غير قابلة للوصول | المنطقة المُكَوَّنة خاطئة | اضبط المنطقة على eu لمساحات عمل EU |
| أخطاء حد المعدل | استدعاءات App API كثيرة جدًا | قلل تكرار استطلاع بيانات الحملة |
وضع التصحيح
connectors: customerio: debug: true log_level: verbose log_api_calls: trueاختبار الاتصال
tajo connectors test customerio# ✓ Track API connection successful# ✓ App API connection successful# ✓ People accessible# ✓ Campaigns readable# ✓ Segments listableأفضل الممارسات
- استخدم Pipelines API للبيانات بالجملة - تم تحسين Pipelines API الأحدث للاستيعاب عالي الحجم
- إعداد webhooks للتقارير - أعد توجيه أحداث البريد الإلكتروني في Customer.io إلى Tajo في الوقت الفعلي
- عيّن مراحل دورة الحياة - زامن عضوية شرائح Customer.io مع سمات Brevo
- استخدم معرّفات متسقة - طابق حقول
idعبر Customer.io وBrevo - المزامنة التزايدية - تجنب التصديرات الكاملة؛ استفد من طوابع
last_activityالزمنية - راقب تسليم webhook - إعداد تنبيهات لتسليمات webhook الفاشلة
الأمان
- Basic Auth - يصادق Track API باستخدام Site ID ومفتاح API
- Bearer Token - يستخدم App API رموز bearer بنمط OAuth
- HTTPS فقط - جميع اتصالات API مشفرة عبر TLS 1.2+
- مراكز بيانات إقليمية - خيار مركز بيانات EU للامتثال لـ GDPR
- تخزين مشفر - جميع بيانات الاعتماد مشفرة في حالة السكون في Tajo
- توقيعات Webhook - تحقق من حمولات webhook بتوقيعات HMAC