Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Konektor Airtable

Hubungkan bases Airtable Anda ke Brevo untuk sinkronisasi CRM, pengelolaan katalog produk, dan alur kerja marketing otomatis yang ditenagai data terstruktur melalui Tajo.

Ikhtisar

PropertiNilai
PlatformAirtable
KategoriKustom
Kompleksitas penyiapanMudah
Integrasi resmiTidak
Data yang disinkronkanRecords, Tables, Users
Tipe APIREST API
AutentikasiPersonal Access Token / OAuth 2.0
Base URLhttps://api.airtable.com/v0/

Fitur

  • Sync table ke list - Sinkronkan records table Airtable langsung ke contact list Brevo
  • Jembatan katalog produk - Gunakan tables Airtable sebagai katalog produk untuk rekomendasi email
  • Sinkronisasi CRM - Sync dua arah antara CRM Airtable dan contacts Brevo
  • Event pengiriman form - Teruskan pengiriman form Airtable sebagai event Brevo
  • Pemfilteran berbasis view - Sinkronkan view Airtable tertentu ke list Brevo yang ditargetkan
  • Otomatisasi webhook - Picu kampanye Brevo saat records Airtable berubah

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  1. Akun Airtable (paket Free atau di atasnya)
  2. Personal Access Token atau aplikasi OAuth yang sudah dikonfigurasi
  3. Akses ke bases dan tables yang ingin Anda sinkronkan
  4. Akun Brevo dengan akses API
  5. Akun Tajo dengan langganan aktif

Autentikasi

Airtable mendukung Personal Access Token dan OAuth 2.0.

Opsi 1: Personal Access Token (direkomendasikan)

  1. Buka airtable.com/create/tokens
  2. Klik Create new token
  3. Beri nama “Tajo Integration”
  4. Tambahkan scope:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. Tambahkan akses ke bases tertentu atau ke semua bases
  2. Klik Create token

Opsi 2: OAuth 2.0

Untuk integrasi multi-pengguna, gunakan alur OAuth 2.0:

  1. Daftarkan integrasi Anda di airtable.com/create/oauth
  2. Konfigurasikan redirect URI: https://app.tajo.io/callbacks/airtable
  3. Minta scope yang sama seperti di atas

Pembatasan cakupan token

Personal Access Token dapat dibatasi ke bases tertentu. Demi keamanan, berikan akses hanya ke bases yang dibutuhkan integrasi Anda, bukan memilih “All current and future bases.”

Menghubungkan ke Tajo

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

Konfigurasi

Penyiapan dasar

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"

Pemetaan field

Petakan field Airtable ke atribut contact 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

Sync berbasis view

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

Endpoint API

Tajo terintegrasi dengan endpoint Airtable Web API berikut:

EndpointMethodTujuan
/v0/{baseId}/{tableIdOrName}GETMenampilkan records dalam sebuah table
/v0/{baseId}/{tableIdOrName}POSTMembuat records
/v0/{baseId}/{tableIdOrName}PATCHMemperbarui records
/v0/{baseId}/{tableIdOrName}DELETEMenghapus records
/v0/{baseId}/{tableIdOrName}/{recordId}GETMengambil satu record
/v0/meta/basesGETMenampilkan bases yang dapat diakses
/v0/meta/bases/{baseId}/tablesGETMenampilkan tables dalam sebuah base
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETMenampilkan komentar record
/v0/bases/{baseId}/webhooksPOSTMembuat webhook
/v0/bases/{baseId}/webhooksGETMenampilkan webhook

Contoh kode

Inisialisasi konektor

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
});

Sinkronkan table ke 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
// }

Menangani webhook

// 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');
});

Membuat record dari 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]
}
});
}
});

Batas rate

Airtable menerapkan rate limit per base:

Jenis batasNilai
Rate limit API5 request per detik per base
Records per requestmaksimal 100 records (list), maksimal 10 records (create/update)
Payload webhook50 payload per panggilan listWebhookPayloads
Ukuran requestPayload maksimal ~2MB

Operasi batch

Airtable mengizinkan pembuatan atau pembaruan hingga 10 records per request. Tajo otomatis mengelompokkan operasi yang lebih besar menjadi beberapa request sambil tetap menghormati rate limit.

Pemecahan masalah

Masalah umum

MasalahPenyebabSolusi
401 UnauthorizedToken tidak valid atau kedaluwarsaBuat ulang Personal Access Token
403 ForbiddenToken tidak memiliki akses ke baseTambahkan base tersebut ke scope token Anda
404 Not FoundID base atau table tidak validVerifikasi base ID dan nama table
422 Invalid RequestTipe field tidak cocokPeriksa apakah tipe field Airtable sesuai dengan data Anda
Rate limit terlampauiLebih dari 5 req/dtk per baseKurangi frekuensi sync atau jadwalkan sync antar-base secara bergiliran

Mode debug

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

Uji koneksi

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

Praktik terbaik

  1. Batasi token ke bases tertentu - Jangan berikan akses ke semua bases kecuali memang diperlukan
  2. Gunakan view untuk sync terfilter - Sinkronkan view tertentu alih-alih seluruh table untuk mengurangi volume data
  3. Kelompokkan operasi record - Gabungkan pembuatan dan pembaruan dalam batch berisi 10
  4. Tangani paginasi - Airtable mengembalikan 100 records per halaman; lakukan iterasi dengan offset
  5. Gunakan webhook untuk real-time - Daftarkan webhook alih-alih melakukan polling perubahan
  6. Petakan tipe field secara tepat - Cocokkan tipe field Airtable (select, number, date) dengan tipe atribut Brevo

Keamanan

  • Personal Access Tokens - Dibatasi ke bases dan operasi tertentu
  • OAuth 2.0 - Alur otorisasi aman dengan refresh token
  • HTTPS Only - Semua komunikasi API dienkripsi melalui TLS 1.2+
  • Base-Level Access Control - Token dibatasi ke masing-masing base
  • Encrypted Storage - Token dienkripsi saat disimpan di Tajo
  • Webhook HMAC Verification - Verifikasi keaslian notifikasi webhook

Sumber daya terkait

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.