موصل Iterable
اربط منصة تسويق النمو Iterable الخاصة بك مع Brevo لتفاعل موحد مع العملاء، وتنسيق حملات عبر القنوات، وتحليلات مدمجة عبر أدوات التسويق.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | Iterable |
| الفئة | التسويق |
| تعقيد الإعداد | متوسط |
| تكامل رسمي | لا |
| البيانات المُزامَنة | مستخدمون، أحداث، حملات، كتالوجات |
| نوع واجهة البرمجة | REST API |
| المصادقة | مفتاح API |
| عنوان URL الأساسي | https://api.iterable.com/api/ |
الميزات
- مزامنة ملفات المستخدمين - مزامنة ثنائية الاتجاه لبيانات المستخدمين مع جهات اتصال Brevo
- تحليلات الحملات - مزامنة مقاييس إرسال الحملات والفتح والنقرات للتقارير الموحدة
- بيانات التجارب - تتبع نتائج اختبار A/B والمتغيرات الفائزة
- مزامنة الكتالوج - مزامنة كتالوجات المنتجات والمحتوى عبر المنصات
- أحداث سير العمل - إعادة توجيه أحداث تشغيل وإتمام سير العمل إلى Brevo
- مزامنة تفضيلات القنوات - نسخ تفضيلات الاتصال الخاصة بالمستخدم في Brevo
المتطلبات الأساسية
قبل البدء، تأكد من توفر ما يلي:
- حساب Iterable مع وصول إلى API
- مفتاح Iterable API بصلاحيات مناسبة
- معرّف مشروع Iterable الخاص بك
- حساب Brevo مع وصول إلى API
- حساب Tajo مع اشتراك نشط
المصادقة
يستخدم Iterable مصادقة مفتاح API يُمرَّر في ترويسة الطلب.
إنشاء مفتاح API
- سجّل الدخول إلى لوحة Iterable
- انتقل إلى Integrations > API Keys
- انقر على New API Key
- سمّه “Tajo Integration”
- اختر نوع مفتاح Server-side
- امنح الصلاحيات التالية:
Users: Read/WriteEvents: Read/WriteCampaigns: ReadLists: Read/WriteCatalogs: ReadExperiments: ReadWorkflows: ReadTemplates: ReadChannels: ReadMessage Types: Readنوع المفتاح مهم
استخدم دائمًا مفتاح API من نوع Server-side لتكامل Tajo. تحتوي مفاتيح Mobile وJavaScript-side على صلاحيات مقيدة ولا يمكنها الوصول إلى جميع نقاط النهاية المطلوبة.
الاتصال بـ Tajo
tajo connectors install iterable \ --api-key $ITERABLE_API_KEYالإعداد
الإعداد الأساسي
connectors: iterable: enabled: true
sync: users: true events: true campaigns: true catalogs: true experiments: true
lists: all_users: 16 engaged_users: 17 inactive_users: 18تعيين الحقول
ربط حقول مستخدم Iterable بسمات جهات اتصال Brevo:
field_mapping: # Standard fields userId: ITERABLE_ID email: email firstName: FIRSTNAME lastName: LASTNAME phoneNumber: SMS
# Engagement data signupDate: SIGNUP_DATE totalPurchases: TOTAL_PURCHASES lastPurchaseDate: LAST_PURCHASE
# Custom fields plan_name: PLAN_NAME company_size: COMPANY_SIZE preferred_channel: PREFERRED_CHANNEL lifecycle_stage: LIFECYCLE_STAGEإعداد الأحداث
event_mapping: # Iterable event -> Brevo event purchase: ORDER_PLACED addToCart: CART_UPDATED pageView: PAGE_VIEWED appOpen: APP_OPENED pushOpen: PUSH_ENGAGEDنقاط نهاية واجهة البرمجة
يتكامل Tajo مع نقاط نهاية Iterable API التالية:
| نقطة النهاية | الطريقة | الغرض |
|---|---|---|
/users/update | POST | تحديث ملفات المستخدمين |
/users/{email} | GET | استرجاع مستخدم بالبريد الإلكتروني |
/users/bulkUpdate | POST | تحديث المستخدمين بالدفعات |
/events/track | POST | تتبع الأحداث المخصصة |
/events/trackBulk | POST | تتبع الأحداث بالدفعات |
/campaigns | GET | سرد جميع الحملات |
/campaigns/metrics | GET | بيانات أداء الحملة |
/experiments/metrics | GET | نتائج التجارب |
/lists | GET | سرد جميع قوائم المستخدمين |
/lists/subscribe | POST | إضافة مستخدمين إلى قائمة |
/lists/unsubscribe | POST | إزالة مستخدمين من قائمة |
/catalogs/{catalogName}/items | GET | استرجاع عناصر الكتالوج |
/channels | GET | سرد قنوات المراسلة |
/export/data.json | GET | تصدير بيانات الأحداث الخام |
أمثلة على الكود
تهيئة الموصل
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('iterable', { apiKey: process.env.ITERABLE_API_KEY});مزامنة المستخدمين
// مزامنة تزايدية للمستخدمين من Iterable إلى Brevoawait tajo.connectors.sync('iterable', { type: 'incremental', resources: ['users'], since: '2024-01-01', batchSize: 50});
const status = await tajo.connectors.status('iterable');console.log(status);// {// connected: true,// lastSync: '2024-03-15T09:45:00Z',// usersCount: 58700,// campaignsTracked: 42,// eventsProcessed: 210000// }تتبع الأحداث
// إعادة توجيه أحداث Iterable إلى Brevoawait tajo.connectors.handleEvent('iterable', { type: 'custom_event', payload: { eventName: 'subscription_upgraded', dataFields: { previousPlan: 'starter', newPlan: 'pro', mrr: 99.00 } }});معالج Webhook
// التعامل مع webhooks نظام Iterableapp.post('/webhooks/iterable', async (req, res) => { const event = req.body;
await tajo.connectors.handleWebhook('iterable', { type: event.eventName, payload: event });
res.status(200).send('OK');});حدود المعدل
يفرض Iterable حدود المعدل بناءً على خطتك:
| الخطة | حد المعدل | حد نقاط النهاية المجمّعة |
|---|---|---|
| Growth | 500 طلب/ثانية | 500 طلب/ثانية |
| Enterprise | مخصص | مخصص |
حدود نقاط نهاية محددة:
| نقطة النهاية | الحد |
|---|---|
/users/update | 500 طلب/ثانية |
/users/bulkUpdate | 500 طلب/ثانية (1,000 مستخدم لكل طلب) |
/events/track | 500 طلب/ثانية |
/events/trackBulk | 500 طلب/ثانية (8,000 حدث لكل طلب) |
/export/data.json | 4 طلبات متزامنة |
نقاط النهاية المجمّعة
يجمّع Tajo تلقائيًا تحديثات المستخدمين (حتى 1,000 لكل استدعاء) وتتبعات الأحداث (حتى 8,000 لكل استدعاء) لتعظيم الإنتاجية مع البقاء ضمن حدود المعدل.
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
| المشكلة | السبب | الحل |
|---|---|---|
| 401 Unauthorized | مفتاح API غير صالح | تحقق من المفتاح في Iterable > Integrations > API Keys |
| المستخدمون لا يتزامنون | عدم تطابق نوع المفتاح | تأكد من استخدامك مفتاح API من نوع Server-side |
| بيانات الحملة مفقودة | صلاحيات غير كافية | أضف صلاحية Campaigns Read إلى مفتاح API |
| انتهاء مهلة التصدير | حجم بيانات كبير | استخدم عوامل تصفية نطاق التاريخ لتقليل حجم التصدير |
| مستخدمون مكررون | معرّفات غير متسقة | استخدم البريد الإلكتروني كمعرّف أساسي باتساق |
وضع التصحيح
connectors: iterable: debug: true log_level: verbose log_api_calls: trueاختبار الاتصال
tajo connectors test iterable# ✓ API connection successful# ✓ User data accessible# ✓ Campaign list readable# ✓ Event tracking operational# ✓ List management availableأفضل الممارسات
- استخدم نقاط النهاية المجمّعة - فضّل دائمًا
bulkUpdateوtrackBulkلأحجام البيانات الكبيرة - إزالة التكرار بالبريد الإلكتروني - استخدم البريد الإلكتروني كمعرّف متسق عبر Iterable وBrevo
- المزامنة التزايدية - استخدم نطاقات التواريخ لتجنب إعادة معالجة البيانات التاريخية
- عيّن تفضيلات القنوات - زامن حالة الاشتراك/إلغاء الاشتراك للحفاظ على الامتثال
- راقب مهام التصدير - قد تستغرق التصديرات الكبيرة وقتًا؛ إعداد استطلاع الحالة
- اختبر مع مشروع غير إنتاجي - تحقق من التعيينات قبل مزامنة بيانات الإنتاج
الأمان
- مصادقة مفتاح API - مفاتيح Server-side بصلاحيات دقيقة
- HTTPS فقط - جميع اتصالات API مشفرة عبر TLS 1.2+
- تدوير المفاتيح - دعم مفاتيح API نشطة متعددة أثناء التدوير
- تخزين مشفر - بيانات اعتماد API مشفرة في حالة السكون في Tajo
- JWT Webhooks - حمولات webhook موقّعة بـ JWT للتحقق