Конектор Airtable
Свържете вашите бази в Airtable с Brevo за CRM синхронизация, управление на продуктови каталози и автоматизирани маркетингови работни потоци, задвижвани от структурирани данни чрез Tajo.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Airtable |
| Категория | Персонализирана |
| Сложност на настройка | Лесна |
| Официална интеграция | Не |
| Синхронизирани данни | Записи, таблици, потребители |
| Тип на API | REST API |
| Автентикация | Personal Access Token / OAuth 2.0 |
| Base URL | https://api.airtable.com/v0/ |
Функции
- Синхронизация таблица към списък – Синхронизирайте записи от таблици в Airtable директно към списъци с контакти в Brevo
- Мост за продуктов каталог – Използвайте таблици в Airtable като продуктови каталози за имейл препоръки
- CRM синхронизация – Двупосочна синхронизация между CRM в Airtable и контакти в Brevo
- Събития за изпращане на форми – Препращайте изпращания на форми в Airtable като събития в Brevo
- Филтриране на базата на изглед – Синхронизирайте конкретни изгледи в Airtable към насочени списъци в Brevo
- Webhook автоматизация – Задействайте кампании в Brevo, когато записите в Airtable се променят
Предварителни условия
Преди да започнете, уверете се, че имате:
- Акаунт в Airtable (Free план или по-горе)
- Конфигуриран Personal Access Token или OAuth приложение
- Достъп до базите и таблиците, които искате да синхронизирате
- Акаунт в Brevo с API достъп
- Акаунт в 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
- Конфигурирайте redirect 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 крайни точки:
| Endpoint | Method | Цел |
|---|---|---|
/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 | Създаване на webhook |
/v0/bases/{baseId}/webhooks | GET | Списък на 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 listawait 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 cursorapp.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 convertstajo.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 rate limit | 5 заявки в секунда за база |
| Записи на заявка | Максимум 100 записа (списък), максимум 10 записа (създаване/обновяване) |
| Webhook payloads | 50 payloads на повикване на listWebhookPayloads |
| Размер на заявката | Максимален payload ~2MB |
Групови операции
Airtable позволява създаване или обновяване на до 10 записа на заявка. Tajo автоматично групира по-големи операции в множество заявки, като спазва лимитите на заявките.
Отстраняване на проблеми
Често срещани проблеми
| Проблем | Причина | Решение |
|---|---|---|
| 401 Unauthorized | Невалиден или изтекъл токен | Генерирайте нов Personal Access Token |
| 403 Forbidden | Токенът няма достъп до базата | Добавете базата към обхвата на вашия токен |
| 404 Not Found | Невалидно ID на база или таблица | Проверете ID на базата и името на таблицата |
| 422 Invalid Request | Несъответствие на тип на поле | Проверете дали типовете на полетата в Airtable съответстват на вашите данни |
| Надвишен лимит на заявките | Повече от 5 заявки/сек за база | Намалете честотата на синхронизация или разпределете синхронизациите на базите |
Debug режим
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Най-добри практики
- Обхватете токените за конкретни бази – Не предоставяйте достъп до всички бази, освен ако не е необходимо
- Използвайте изгледи за филтрирана синхронизация – Синхронизирайте конкретни изгледи вместо цели таблици, за да намалите обема на данните
- Групирайте операциите с записи – Групирайте създавания и обновявания в batch от по 10
- Обработвайте пагинацията – Airtable връща 100 записа на страница; итерирайте с
offset - Използвайте webhooks за реално време – Регистрирайте webhooks вместо допитване за промени
- Мапвайте типовете на полетата прецизно – Съпоставете типовете на полетата в Airtable (select, number, date) с типовете на атрибутите в Brevo
Сигурност
- Personal Access Tokens – Обхванати към конкретни бази и операции
- OAuth 2.0 – Сигурен поток за оторизация с refresh токени
- Само HTTPS – Цялата API комуникация е криптирана чрез TLS 1.2+
- Контрол на достъпа на ниво база – Токените са обхванати към индивидуални бази
- Криптирано съхранение – Токените са криптирани в покой в Tajo
- HMAC верификация на webhook – Проверка на автентичността на webhook нотификациите