Airtable कनेक्टर
अपने Airtable bases को Brevo से कनेक्ट करें और Tajo के माध्यम से structured data पर आधारित CRM synchronization, product catalog management, और स्वचालित marketing workflows का लाभ उठाएं।
अवलोकन
| Property | Value |
|---|---|
| Platform | Airtable |
| Category | Custom |
| Setup Complexity | Easy |
| Official Integration | No |
| Data Synced | Records, Tables, Users |
| API Type | REST API |
| Authentication | Personal Access Token / OAuth 2.0 |
| Base URL | https://api.airtable.com/v0/ |
विशेषताएं
- Table-to-list sync - Airtable table records को सीधे Brevo contact lists में sync करें
- Product catalog bridge - Airtable tables को email recommendations के लिए product catalog के रूप में उपयोग करें
- CRM synchronization - Airtable CRM और Brevo contacts के बीच द्विदिशीय sync
- Form submission events - Airtable form submissions को Brevo events के रूप में forward करें
- View-based filtering - विशिष्ट Airtable views को targeted Brevo lists में sync करें
- Webhook automation - जब Airtable records बदलें तो Brevo campaigns trigger करें
पूर्वावश्यकताएं
शुरू करने से पहले, सुनिश्चित करें कि आपके पास हैं:
- एक Airtable account (Free plan या उससे ऊपर)
- एक Personal Access Token या OAuth app कॉन्फ़िगर किया हुआ
- उन bases और tables तक पहुंच जिन्हें आप sync करना चाहते हैं
- API access वाला एक Brevo account
- सक्रिय subscription वाला एक Tajo account
प्रमाणीकरण
Airtable Personal Access Tokens और OAuth 2.0 को support करता है।
विकल्प 1: Personal Access Token (अनुशंसित)
- airtable.com/create/tokens पर जाएं
- Create new token पर क्लिक करें
- इसे “Tajo Integration” नाम दें
- scopes जोड़ें:
data.records:readdata.records:writedata.recordComments:readschema.bases:readwebhook:manage- विशिष्ट bases या सभी bases तक access जोड़ें
- Create token पर क्लिक करें
विकल्प 2: OAuth 2.0
Multi-user integrations के लिए, OAuth 2.0 flow का उपयोग करें:
- airtable.com/create/oauth पर अपना integration register करें
- redirect URI कॉन्फ़िगर करें:
https://app.tajo.io/callbacks/airtable - ऊपर दिए गए समान scopes का अनुरोध करें
Token Scoping
Personal Access Tokens को विशिष्ट bases तक scope किया जा सकता है। सुरक्षा के लिए, “All current and future bases” चुनने के बजाय केवल उन्हीं bases तक access दें जिनकी आपके integration को आवश्यकता है।
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"Field Mapping
Airtable fields को Brevo contact attributes से map करें:
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_DATEView-आधारित Sync
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 Endpoints
Tajo निम्नलिखित Airtable Web API endpoints के साथ integrate करता है:
| Endpoint | Method | उद्देश्य |
|---|---|---|
/v0/{baseId}/{tableIdOrName} | GET | किसी table में records list करें |
/v0/{baseId}/{tableIdOrName} | POST | records बनाएं |
/v0/{baseId}/{tableIdOrName} | PATCH | records अपडेट करें |
/v0/{baseId}/{tableIdOrName} | DELETE | records हटाएं |
/v0/{baseId}/{tableIdOrName}/{recordId} | GET | एकल record पुनः प्राप्त करें |
/v0/meta/bases | GET | accessible bases list करें |
/v0/meta/bases/{baseId}/tables | GET | किसी base में tables list करें |
/v0/{baseId}/{tableIdOrName}/listRecordComments | GET | record comments list करें |
/v0/bases/{baseId}/webhooks | POST | webhook बनाएं |
/v0/bases/{baseId}/webhooks | GET | webhooks list करें |
कोड उदाहरण
कनेक्टर शुरू करें
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});Table को Brevo से Sync करें
// Airtable table को Brevo list से sync करें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 परिवर्तनों की सूचना देते हैं; cursor के साथ विवरण लाएंapp.post('/webhooks/airtable', async (req, res) => { const { base, webhook, timestamp } = req.body;
// webhook cursor का उपयोग करके बदले गए records लाएं 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 से Record बनाएं
// जब Brevo contact convert हो तो Airtable record बनाएं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] } }); }});Rate Limits
Airtable प्रति base rate limits लागू करता है:
| Limit Type | Value |
|---|---|
| API rate limit | प्रति base 5 requests प्रति सेकंड |
| Records per request | अधिकतम 100 records (list), अधिकतम 10 records (create/update) |
| Webhook payloads | प्रति listWebhookPayloads कॉल 50 payloads |
| Request size | अधिकतम payload ~2MB |
Batch Operations
Airtable प्रति request 10 records तक बनाने या अपडेट करने की अनुमति देता है। Tajo स्वचालित रूप से बड़े operations को rate limits का पालन करते हुए कई requests में batch कर देता है।
समस्या निवारण
सामान्य समस्याएं
| समस्या | कारण | समाधान |
|---|---|---|
| 401 Unauthorized | अमान्य या expired token | Personal Access Token को फिर से generate करें |
| 403 Forbidden | Token के पास base access नहीं है | base को अपने token के scope में जोड़ें |
| 404 Not Found | अमान्य base या table ID | base ID और table name सत्यापित करें |
| 422 Invalid Request | Field type mismatch | सुनिश्चित करें कि Airtable field types आपके data से मेल खाते हैं |
| Rate limit exceeded | प्रति base 5 req/s से अधिक | sync frequency घटाएं या base syncs को stagger करें |
Debug Mode
connectors: airtable: debug: true log_level: verbose log_api_calls: trueConnection Test करें
tajo connectors test airtable# ✓ API authentication successful# ✓ Base access verified# ✓ Table schema readable# ✓ Record listing operational# ✓ Webhook registration availableसर्वोत्तम प्रथाएं
- Tokens को विशिष्ट bases तक scope करें - आवश्यक न होने तक सभी bases तक access न दें
- Filtered sync के लिए views का उपयोग करें - data volume घटाने के लिए पूरी tables के बजाय विशिष्ट views sync करें
- Batch record operations - creates और updates को 10 के batches में group करें
- Pagination संभालें - Airtable प्रति page 100 records लौटाता है;
offsetके साथ iterate करें - Real-time के लिए webhooks का उपयोग करें - परिवर्तनों के लिए polling के बजाय webhooks register करें
- Field types को सटीक रूप से map करें - Airtable field types (select, number, date) को Brevo attribute types से match करें
सुरक्षा
- Personal Access Tokens - विशिष्ट bases और operations तक scoped
- OAuth 2.0 - refresh tokens के साथ सुरक्षित authorization flow
- HTTPS Only - सभी API communication TLS 1.2+ के माध्यम से encrypted
- Base-Level Access Control - Tokens व्यक्तिगत bases तक scoped
- Encrypted Storage - Tokens Tajo में at rest encrypted
- Webhook HMAC Verification - webhook notification की प्रामाणिकता सत्यापित करें