Airtable کنیکٹر
CRM سنکرونائزیشن، پروڈکٹ کیٹلاگ مینجمنٹ، اور Tajo کے ذریعے اسٹرکچرڈ ڈیٹا سے چلنے والے خودکار مارکیٹنگ ورک فلوز کے لیے اپنے Airtable بیسز کو Brevo سے منسلک کریں۔
جائزہ
| خاصیت | قدر |
|---|---|
| پلیٹ فارم | Airtable |
| زمرہ | حسب ضرورت |
| سیٹ اپ کی پیچیدگی | آسان |
| آفیشل انٹیگریشن | نہیں |
| سنک شدہ ڈیٹا | ریکارڈز، ٹیبلز، صارفین |
| API قسم | REST API |
| توثیق | Personal Access Token / OAuth 2.0 |
| بنیادی URL | https://api.airtable.com/v0/ |
خصوصیات
- ٹیبل-سے-فہرست سنک - Airtable ٹیبل ریکارڈز کو براہ راست Brevo رابطہ فہرستوں میں سنک کریں
- پروڈکٹ کیٹلاگ برج - Airtable ٹیبلز کو ای میل تجاویز کے لیے پروڈکٹ کیٹلاگ کے طور پر استعمال کریں
- CRM سنکرونائزیشن - Airtable CRM اور Brevo رابطوں کے درمیان دو طرفہ سنک
- فارم سبمیشن ایونٹس - Airtable فارم سبمیشنز کو Brevo ایونٹس کے طور پر آگے بھیجیں
- ویو پر مبنی فلٹرنگ - مخصوص Airtable ویوز کو ٹارگٹڈ Brevo فہرستوں میں سنک کریں
- ویب ہک آٹومیشن - جب Airtable ریکارڈز تبدیل ہوں تو Brevo مہمات کو متحرک کریں
ضروریات
شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:
- ایک Airtable اکاؤنٹ (Free پلان یا اس سے اوپر)
- ایک Personal Access Token یا OAuth ایپ کنفیگر کردہ
- ان بیسز اور ٹیبلز تک رسائی جنہیں آپ سنک کرنا چاہتے ہیں
- API رسائی کے ساتھ Brevo اکاؤنٹ
- فعال سبسکرپشن کے ساتھ Tajo اکاؤنٹ
توثیق
Airtable Personal Access Tokens اور OAuth 2.0 کی حمایت کرتا ہے۔
آپشن 1: Personal Access Token (تجویز کردہ)
- airtable.com/create/tokens پر جائیں
- Create new token پر کلک کریں
- اسے “Tajo Integration” نام دیں
- اسکوپس شامل کریں:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- مخصوص بیسز یا تمام بیسز تک رسائی شامل کریں
- Create token پر کلک کریں
آپشن 2: OAuth 2.0
متعدد صارف انٹیگریشنز کے لیے، OAuth 2.0 فلو استعمال کریں:
- اپنے انٹیگریشن کو airtable.com/create/oauth پر رجسٹر کریں
- ری ڈائریکٹ URI کنفیگر کریں:
https://app.tajo.io/callbacks/airtable - وہی اسکوپس درخواست کریں جو اوپر درج ہیں
ٹوکن اسکوپنگ
Personal Access Tokens کو مخصوص بیسز تک محدود کیا جا سکتا ہے۔ سیکیورٹی کے لیے، “All current and future bases” منتخب کرنے کے بجائے صرف ان بیسز تک رسائی دیں جن کی آپ کے انٹیگریشن کو ضرورت ہے۔
Tajo سے منسلک کرنا
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: trueAPI اینڈ پوائنٹس
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/bases | GET | قابل رسائی بیسز کی فہرست |
/v0/meta/bases/{baseId}/tables | GET | بیس میں ٹیبلز کی فہرست |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | ریکارڈ تبصروں کی فہرست |
/v0/bases/{baseId}/webhooks | POST | ایک ویب ہک بنائیں |
/v0/bases/{baseId}/webhooks | 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('airtable', { token: process.env.AIRTABLE_TOKEN});ٹیبل کو Brevo سے سنک کریں
// ایک Airtable ٹیبل کو Brevo فہرست میں سنک کریں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// }ویب ہکس کو ہینڈل کریں
// Airtable webhooks تبدیلیوں کی اطلاع دیتے ہیں؛ کرسر کے ساتھ تفصیلات حاصل کریںapp.post('/webhooks/airtable', async (req, res) => { const { base, webhook, timestamp } = req.body;
// ویب ہک کرسر کا استعمال کرتے ہوئے تبدیل شدہ ریکارڈز حاصل کریں 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 سے ریکارڈ بنائیں
// جب Brevo رابطہ تبدیل ہو جائے تو Airtable ریکارڈ بنائیں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 ہر بیس پر ریٹ کی حدود نافذ کرتا ہے:
| حد کی قسم | قدر |
|---|---|
| API ریٹ کی حد | فی بیس 5 درخواستیں فی سیکنڈ |
| فی درخواست ریکارڈز | 100 ریکارڈز زیادہ سے زیادہ (list)، 10 ریکارڈز زیادہ سے زیادہ (create/update) |
| ویب ہک پے لوڈز | فی listWebhookPayloads کال 50 پے لوڈز |
| درخواست کا سائز | پے لوڈ زیادہ سے زیادہ تقریباً 2MB |
بیچ آپریشنز
Airtable فی درخواست زیادہ سے زیادہ 10 ریکارڈز بنانے یا اپ ڈیٹ کرنے کی اجازت دیتا ہے۔ Tajo خود بخود بڑے آپریشنز کو متعدد درخواستوں میں بیچ کرتا ہے جبکہ ریٹ کی حدود کا احترام کرتا ہے۔
مسائل کا سراغ
عام مسائل
| مسئلہ | وجہ | حل |
|---|---|---|
| 401 Unauthorized | غیر معتبر یا میعاد ختم شدہ ٹوکن | Personal Access Token دوبارہ تخلیق کریں |
| 403 Forbidden | ٹوکن کو بیس تک رسائی نہیں | اپنے ٹوکن کے اسکوپ میں بیس شامل کریں |
| 404 Not Found | غیر معتبر بیس یا ٹیبل ID | بیس ID اور ٹیبل نام کی تصدیق کریں |
| 422 Invalid Request | فیلڈ قسم کا عدم مطابقت | چیک کریں کہ Airtable فیلڈ اقسام آپ کے ڈیٹا سے میل کھاتی ہیں |
| ریٹ کی حد سے تجاوز | فی بیس 5 req/s سے زیادہ | سنک کی تعدد کم کریں یا بیس سنکس کو اسٹیگر کریں |
ڈیبگ موڈ
connectors: airtable: debug: true log_level: verbose log_api_calls: trueکنکشن ٹیسٹ کریں
tajo connectors test airtable# ✓ API authentication successful# ✓ Base access verified# ✓ Table schema readable# ✓ Record listing operational# ✓ Webhook registration availableبہترین طریقے
- ٹوکنز کو مخصوص بیسز تک محدود کریں - اگر ضرورت نہ ہو تو تمام بیسز تک رسائی نہ دیں
- فلٹرڈ سنک کے لیے ویوز استعمال کریں - ڈیٹا کے حجم کو کم کرنے کے لیے پورے ٹیبلز کے بجائے مخصوص ویوز کو سنک کریں
- ریکارڈ آپریشنز کو بیچ کریں - 10 کے بیچز میں creates اور updates کو گروپ کریں
- پیجینیشن کو ہینڈل کریں - Airtable فی صفحہ 100 ریکارڈز واپس کرتا ہے؛
offsetکے ساتھ اتریٹ کریں - ریئل ٹائم کے لیے ویب ہکس استعمال کریں - تبدیلیوں کے لیے پولنگ کے بجائے ویب ہکس رجسٹر کریں
- فیلڈ اقسام کو درست طریقے سے میپ کریں - Airtable فیلڈ اقسام (select، number، date) کو Brevo خصوصیت اقسام سے میل کریں
سیکیورٹی
- Personal Access Tokens - مخصوص بیسز اور آپریشنز تک محدود
- OAuth 2.0 - refresh tokens کے ساتھ محفوظ تفویض کا فلو
- صرف HTTPS - تمام API مواصلات TLS 1.2+ کے ذریعے خفیہ کردہ
- بیس کی سطح پر رسائی کنٹرول - ٹوکنز انفرادی بیسز تک محدود
- خفیہ کردہ اسٹوریج - Tajo میں ٹوکنز آرام کی حالت میں خفیہ کردہ
- ویب ہک HMAC تصدیق - ویب ہک اطلاعات کی صداقت کی تصدیق کریں