موصل Airtable

اربط قواعد Airtable الخاصة بك بـ Brevo لمزامنة CRM، وإدارة كتالوج المنتجات، وسير العمل التسويقي الآلي المدعوم بالبيانات المهيكلة عبر Tajo.

نظرة عامة

الخاصيةالقيمة
المنصةAirtable
الفئةمخصص
تعقيد الإعدادسهل
تكامل رسميلا
البيانات المتزامنةالسجلات، الجداول، المستخدمون
نوع APIREST API
المصادقةPersonal Access Token / OAuth 2.0
عنوان URL الأساسيhttps://api.airtable.com/v0/

الميزات

  • مزامنة جدول إلى قائمة - زامن سجلات جداول Airtable مباشرة إلى قوائم جهات اتصال Brevo
  • جسر كتالوج المنتجات - استخدم جداول Airtable ككتالوجات منتجات لتوصيات البريد الإلكتروني
  • مزامنة CRM - مزامنة ثنائية الاتجاه بين Airtable CRM وجهات اتصال Brevo
  • أحداث إرسال النماذج - أعد توجيه إرسالات نماذج Airtable كأحداث Brevo
  • تصفية قائمة على العرض - زامن عروض Airtable محددة إلى قوائم Brevo مستهدفة
  • أتمتة Webhook - شغّل حملات Brevo عند تغير سجلات Airtable

المتطلبات المسبقة

قبل أن تبدأ، تأكد من توفر ما يلي:

  1. حساب Airtable (خطة مجانية أو أعلى)
  2. Personal Access Token أو تطبيق OAuth مُعدّ
  3. الوصول إلى القواعد والجداول التي ترغب بمزامنتها
  4. حساب Brevo مع وصول API
  5. حساب Tajo مع اشتراك نشط

المصادقة

يدعم Airtable رموز الوصول الشخصية و OAuth 2.0.

الخيار 1: Personal Access Token (موصى به)

  1. اذهب إلى airtable.com/create/tokens
  2. انقر على Create new token
  3. سمّه “Tajo Integration”
  4. أضف النطاقات:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. أضف الوصول إلى قواعد محددة أو جميع القواعد
  2. انقر على Create token

الخيار 2: OAuth 2.0

لعمليات التكامل متعددة المستخدمين، استخدم تدفق OAuth 2.0:

  1. سجّل تكاملك في airtable.com/create/oauth
  2. اضبط redirect URI: https://app.tajo.io/callbacks/airtable
  3. اطلب نفس النطاقات المذكورة أعلاه

تحديد نطاق الرمز

يمكن تحديد نطاق Personal Access Tokens لقواعد محددة. للأمان، امنح الوصول فقط للقواعد التي يحتاجها تكاملك بدلاً من اختيار “All current and future bases.”

الاتصال بـ Tajo

Terminal window
tajo connectors install airtable \
--token $AIRTABLE_TOKEN

الإعداد

الإعداد الأساسي

connectors:
airtable:
enabled: true
sync:
records: true
comments: false
tables:
- base_id: "appXXXXXXXXXXXXXX"
table_name: "Customers"
view: "Active Customers"
sync_to_list: 28
- base_id: "appXXXXXXXXXXXXXX"
table_name: "Products"
sync_as: "catalog"

ربط الحقول

اربط حقول Airtable بسمات جهات اتصال Brevo:

field_mapping:
# Airtable field -> Brevo attribute
Name: FIRSTNAME
Email: email
Phone: SMS
Company: COMPANY
Status: LEAD_STATUS
Revenue: TOTAL_REVENUE
"Last Contact": LAST_CONTACT_DATE
Tags: TAGS
Notes: NOTES
"Created Time": SIGNUP_DATE

مزامنة قائمة على العرض

views:
- base_id: "appXXXXXXXXXXXXXX"
table_name: "Customers"
view: "High Value"
sync_to_list: 29
filter_by_view: true
- base_id: "appXXXXXXXXXXXXXX"
table_name: "Customers"
view: "Churned"
sync_to_list: 30
filter_by_view: true

نقاط نهاية API

يتكامل Tajo مع نقاط نهاية Airtable Web API التالية:

نقطة النهايةالطريقةالغرض
/v0/{baseId}/{tableIdOrName}GETعرض قائمة السجلات في جدول
/v0/{baseId}/{tableIdOrName}POSTإنشاء سجلات
/v0/{baseId}/{tableIdOrName}PATCHتحديث سجلات
/v0/{baseId}/{tableIdOrName}DELETEحذف سجلات
/v0/{baseId}/{tableIdOrName}/{recordId}GETاسترجاع سجل واحد
/v0/meta/basesGETعرض القواعد المتاحة
/v0/meta/bases/{baseId}/tablesGETعرض الجداول في قاعدة
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETعرض تعليقات السجل
/v0/bases/{baseId}/webhooksPOSTإنشاء webhook
/v0/bases/{baseId}/webhooksGETعرض webhooks

أمثلة البرمجة

تهيئة الموصل

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('airtable', {
token: process.env.AIRTABLE_TOKEN
});

مزامنة الجدول إلى Brevo

// Sync an Airtable table to a Brevo list
await tajo.connectors.sync('airtable', {
type: 'full',
resources: ['records'],
baseId: 'appXXXXXXXXXXXXXX',
tableName: 'Customers',
view: 'Active Customers',
targetList: 28
});
const status = await tajo.connectors.status('airtable');
console.log(status);
// {
// connected: true,
// lastSync: '2024-03-15T15:00:00Z',
// recordsSynced: 2340,
// tablesMonitored: 2,
// basesConnected: 1
// }

معالجة Webhooks

// Airtable webhooks notify of changes; fetch details with cursor
app.post('/webhooks/airtable', async (req, res) => {
const { base, webhook, timestamp } = req.body;
// Fetch changed records using webhook cursor
const changes = await tajo.connectors.getWebhookPayloads('airtable', {
baseId: base.id,
webhookId: webhook.id,
cursor: timestamp
});
for (const change of changes) {
await tajo.connectors.handleEvent('airtable', {
type: change.actionType,
payload: change
});
}
res.status(200).send('OK');
});

إنشاء سجل من Brevo

// Create an Airtable record when a Brevo contact converts
tajo.events.on('contact.attribute_updated', async (event) => {
if (event.attribute === 'LIFECYCLE_STAGE' && event.value === 'customer') {
await tajo.connectors.create('airtable', {
baseId: 'appXXXXXXXXXXXXXX',
tableName: 'Customers',
fields: {
Name: event.contact.name,
Email: event.contact.email,
Status: 'Customer',
'Converted Date': new Date().toISOString().split('T')[0]
}
});
}
});

حدود المعدل

يفرض Airtable حدود معدل لكل قاعدة:

نوع الحدالقيمة
حد معدل API5 طلبات في الثانية لكل قاعدة
سجلات لكل طلب100 سجل كحد أقصى (قائمة)، 10 سجلات كحد أقصى (إنشاء/تحديث)
حمولات Webhook50 حمولة لكل استدعاء listWebhookPayloads
حجم الطلبالحد الأقصى للحمولة ~2MB

عمليات الدُفعات

يسمح Airtable بإنشاء أو تحديث ما يصل إلى 10 سجلات لكل طلب. يجمّع Tajo تلقائيًا العمليات الأكبر في طلبات متعددة مع احترام حدود المعدل.

استكشاف الأخطاء

المشكلات الشائعة

المشكلةالسببالحل
401 Unauthorizedرمز غير صالح أو منتهي الصلاحيةأعد توليد Personal Access Token
403 Forbiddenالرمز يفتقر إلى وصول القاعدةأضف القاعدة إلى نطاق رمزك
404 Not Foundمعرف قاعدة أو جدول غير صالحتحقق من معرف القاعدة واسم الجدول
422 Invalid Requestعدم تطابق نوع الحقلتحقق من أن أنواع حقول Airtable تتطابق مع بياناتك
تجاوز حد المعدلأكثر من 5 طلب/ثانية لكل قاعدةقلل تكرار المزامنة أو وزع مزامنات القواعد

وضع التصحيح

connectors:
airtable:
debug: true
log_level: verbose
log_api_calls: true

اختبار الاتصال

Terminal window
tajo connectors test airtable
# ✓ API authentication successful
# ✓ Base access verified
# ✓ Table schema readable
# ✓ Record listing operational
# ✓ Webhook registration available

أفضل الممارسات

  1. حدّد نطاق الرموز لقواعد محددة - لا تمنح الوصول إلى جميع القواعد ما لم يكن ذلك ضروريًا
  2. استخدم العروض للمزامنة المُصفاة - زامن عروضًا محددة بدلاً من جداول كاملة لتقليل حجم البيانات
  3. جمّع عمليات السجلات - اجمع عمليات الإنشاء والتحديث في دُفعات من 10
  4. تعامل مع الترقيم - يُرجع Airtable 100 سجل لكل صفحة؛ كرر باستخدام offset
  5. استخدم webhooks للوقت الفعلي - سجل webhooks بدلاً من الاستطلاع للتغييرات
  6. اربط أنواع الحقول بدقة - طابق أنواع حقول Airtable (select، number، date) مع أنواع سمات Brevo

الأمان

  • Personal Access Tokens - محددة النطاق لقواعد وعمليات محددة
  • OAuth 2.0 - تدفق تفويض آمن مع رموز تحديث
  • HTTPS فقط - جميع اتصالات API مشفرة عبر TLS 1.2+
  • التحكم في الوصول على مستوى القاعدة - الرموز محددة النطاق للقواعد الفردية
  • التخزين المشفر - الرموز مشفرة في حالة السكون في Tajo
  • التحقق من HMAC لـ Webhook - تحقق من أصالة إشعار webhook

موارد ذات صلة

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
مساعد AI

مرحباً! اسألني أي شيء عن الوثائق.