موصل Notion
اربط مساحة عمل Notion الخاصة بك مع Brevo لتشغيل سير عمل تسويقي قائم على المحتوى، ومزامنة قواعد بيانات إدارة علاقات العملاء، والإشعارات الآلية عبر Tajo.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | Notion |
| الفئة | مخصص |
| تعقيد الإعداد | سهل |
| تكامل رسمي | لا |
| البيانات المُزامَنة | قواعد بيانات، صفحات، مستخدمون |
| نوع واجهة البرمجة | REST API |
| المصادقة | رمز تكامل داخلي / OAuth 2.0 |
| عنوان URL الأساسي | https://api.notion.com |
| إصدار API | 2022-06-28 (عبر الترويسة Notion-Version) |
الميزات
- مزامنة قواعد البيانات - مزامنة إدخالات قواعد بيانات Notion مع جهات اتصال وقوائم Brevo
- جسر إدارة علاقات العملاء - استخدام قواعد بيانات Notion كنظام CRM خفيف متزامن مع Brevo
- إشعارات المحتوى - تشغيل حملات Brevo عند نشر صفحات Notion
- تعيين الخصائص - ربط خصائص قواعد بيانات Notion بسمات جهات اتصال Brevo
- مراقبة الصفحات - تتبع تحديثات الصفحات وإعادة توجيهها كأحداث في Brevo
- مزامنة دليل المستخدمين - مزامنة أعضاء مساحة عمل Notion مع جهات اتصال Brevo
المتطلبات الأساسية
قبل البدء، تأكد من توفر ما يلي:
- مساحة عمل Notion مع صلاحيات مسؤول
- تكامل Notion داخلي أو تطبيق OAuth
- صفحات قواعد بيانات تمت مشاركتها مع التكامل
- حساب Brevo مع وصول إلى API
- حساب Tajo مع اشتراك نشط
المصادقة
يدعم Notion طريقتين للمصادقة.
الخيار الأول: التكامل الداخلي (موصى به لمساحة عمل واحدة)
- انتقل إلى notion.so/my-integrations
- انقر على New integration
- سمِّه “Tajo Integration”
- اختر مساحة العمل الخاصة بك
- حدد الإمكانيات:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- انسخ Internal Integration Secret (يبدأ بـ
ntn_)
مشاركة الصفحات مطلوبة
لا يمكن للتكاملات الداخلية الوصول إلا إلى الصفحات وقواعد البيانات التي تمت مشاركتها معها صراحةً. شارك كل قاعدة بيانات مستهدفة مع التكامل عبر قائمة ”…” > “Connections” > اختيار التكامل الخاص بك.
الخيار الثاني: OAuth 2.0 (التكاملات العامة)
للتكاملات التي تخدم مساحات عمل متعددة، استخدم تدفق OAuth 2.0:
- سجّل التكامل الخاص بك كتكامل عام
- أعد توجيه المستخدمين إلى:
https://api.notion.com/v1/oauth/authorize?client_id=... - استبدل الكود برمز وصول في
/v1/oauth/token
الاتصال بـ Tajo
tajo connectors install notion \ --token $NOTION_TOKENالإعداد
الإعداد الأساسي
connectors: notion: enabled: true api_version: "2022-06-28"
sync: databases: true pages: false users: true
databases: - id: "abc123def456" name: "Customers" sync_to_list: 25 - id: "ghi789jkl012" name: "Leads" sync_to_list: 26تعيين الحقول
اربط خصائص قاعدة بيانات Notion بسمات جهات اتصال Brevo:
field_mapping: # Notion property -> Brevo attribute Name: type: title target: FIRSTNAME Email: type: email target: email Phone: type: phone_number target: SMS Company: type: rich_text target: COMPANY Status: type: select target: LEAD_STATUS Deal Value: type: number target: DEAL_VALUE Last Contact: type: date target: LAST_CONTACT_DATE Tags: type: multi_select target: TAGSنقاط نهاية واجهة البرمجة
يتكامل Tajo مع نقاط نهاية Notion API التالية:
| نقطة النهاية | الطريقة | الغرض |
|---|---|---|
/v1/databases/{id}/query | POST | استعلام إدخالات قاعدة البيانات |
/v1/databases/{id} | GET | استرجاع مخطط قاعدة البيانات |
/v1/pages | POST | إنشاء صفحة جديدة |
/v1/pages/{id} | GET | استرجاع خصائص الصفحة |
/v1/pages/{id} | PATCH | تحديث خصائص الصفحة |
/v1/blocks/{id}/children | GET | استرجاع العناصر الفرعية للكتلة |
/v1/users | GET | سرد جميع مستخدمي مساحة العمل |
/v1/users/{id} | GET | استرجاع مستخدم |
/v1/search | POST | البحث عبر مساحة العمل |
أمثلة على الكود
تهيئة الموصل
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('notion', { token: process.env.NOTION_TOKEN});مزامنة قاعدة بيانات مع Brevo
// مزامنة قاعدة بيانات Notion إلى قائمة Brevoawait tajo.connectors.sync('notion', { type: 'full', resources: ['databases'], databaseId: 'abc123def456', targetList: 25});
const status = await tajo.connectors.status('notion');console.log(status);// {// connected: true,// lastSync: '2024-03-15T14:30:00Z',// databasesSynced: 2,// pagesTracked: 1450,// usersCount: 32// }الاستعلام والتصفية
// استعلام قاعدة بيانات Notion مع عوامل تصفيةconst results = await tajo.connectors.query('notion', { databaseId: 'abc123def456', filter: { property: 'Status', select: { equals: 'Active' } }, sorts: [ { property: 'Last Contact', direction: 'descending' } ]});إنشاء صفحة من حدث في Brevo
// إنشاء صفحة Notion عندما يصل جهة اتصال Brevo إلى مرحلة معينةtajo.events.on('contact.attribute_updated', async (event) => { if (event.attribute === 'LIFECYCLE_STAGE' && event.value === 'customer') { await tajo.connectors.create('notion', { databaseId: 'ghi789jkl012', properties: { Name: { title: [{ text: { content: event.contact.name } }] }, Email: { email: event.contact.email }, 'Converted Date': { date: { start: new Date().toISOString() } } } }); }});حدود المعدل
يفرض Notion حدود معدل لكل تكامل:
| نوع الحد | القيمة |
|---|---|
| حد المعدل | 3 طلبات في الثانية لكل تكامل |
| حد الدفعات | يُسمح بدفعات قصيرة، ثم يتم التقييد |
| حجم الصفحة | 100 عنصر كحد أقصى لكل طلب مُقسَّم |
ترقيم الصفحات القائم على المؤشر
يستخدم Notion ترقيمًا قائمًا على المؤشر. يتعامل Tajo مع هذا تلقائيًا، ويمرر عبر جميع الصفحات باستخدام المعامل next_cursor حتى يعود has_more بقيمة false.
يعيد Notion 429 Too Many Requests عند تجاوز حدود المعدل، مع ترويسة Retry-After.
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
| المشكلة | السبب | الحل |
|---|---|---|
| 401 Unauthorized | رمز غير صالح أو منتهي | أعد توليد رمز التكامل |
| 403 Forbidden | الصفحة غير مشتركة مع التكامل | شارك الصفحة/قاعدة البيانات مع التكامل عبر Connections |
| 404 Object not found | معرّف قاعدة البيانات غير صحيح أو غير مشترك | تحقق من معرّف قاعدة البيانات وإعدادات المشاركة |
| خصائص مفقودة | عدم تطابق المخطط | أعد مزامنة مخطط قاعدة البيانات وحدّث تعيين الحقول |
| تجاوز حد المعدل | طلبات سريعة متعددة | قلل تكرار المزامنة أو حجم الدفعات |
وضع التصحيح
connectors: notion: debug: true log_level: verbose log_api_calls: trueاختبار الاتصال
tajo connectors test notion# ✓ API authentication successful# ✓ Database access verified# ✓ User list accessible# ✓ Search operational# ✓ Page creation availableأفضل الممارسات
- شارك قواعد البيانات صراحةً - لا ترى التكاملات الداخلية سوى المحتوى المشترك
- استخدم استعلامات قواعد البيانات بدلاً من البحث - الاستعلامات أسرع وأكثر موثوقية لقواعد البيانات المعروفة
- عيّن أنواع الخصائص بعناية - يحتوي Notion على أنواع خصائص عديدة؛ طابقها مع أنواع سمات Brevo
- تعامل مع ترقيم الصفحات - مرّر دائمًا عبر جميع صفحات المؤشر للحصول على البيانات الكاملة
- المزامنة التزايدية - استخدم عوامل تصفية
last_edited_timeلمزامنة الإدخالات المتغيرة فقط - إعداد جدول استطلاع - لا يدعم Notion الـ webhooks أصلاً؛ استطلع على فترات منتظمة
الأمان
- مصادقة Bearer Token - أسرار التكامل ورموز OAuth
- HTTPS فقط - جميع اتصالات API مشفرة عبر TLS 1.2+
- وصول مُقيّد - لا تصل التكاملات إلا إلى المحتوى المشترك صراحةً
- OAuth 2.0 - تدفق تفويض آمن للتكاملات العامة
- تخزين مُشفَّر - يتم تشفير الرموز في حالة السكون داخل Tajo
- عزل مساحة العمل - يقتصر كل تكامل على مساحة عمل واحدة