Airtable Connector

เชื่อมต่อ Airtable bases กับ Brevo สำหรับการซิงค์ CRM การจัดการแคตาล็อกสินค้า และเวิร์กโฟลว์การตลาดอัตโนมัติที่ขับเคลื่อนด้วยข้อมูลที่มีโครงสร้างผ่าน Tajo

ภาพรวม

คุณสมบัติค่า
แพลตฟอร์มAirtable
หมวดหมู่แบบกำหนดเอง
ความซับซ้อนในการตั้งค่าง่าย
การผสานรวมอย่างเป็นทางการไม่
ข้อมูลที่ซิงค์บันทึก ตาราง ผู้ใช้
ประเภท APIREST API
การยืนยันตัวตนPersonal Access Token / OAuth 2.0
Base URLhttps://api.airtable.com/v0/

ฟีเจอร์

  • การซิงค์ตารางกับรายการ - ซิงค์บันทึกตาราง Airtable โดยตรงกับรายการผู้ติดต่อ Brevo
  • สะพาน product catalog - ใช้ตาราง Airtable เป็น product catalog สำหรับการแนะนำอีเมล
  • การซิงค์ CRM - การซิงค์แบบสองทิศทางระหว่าง Airtable CRM และผู้ติดต่อ Brevo
  • เหตุการณ์การส่งฟอร์ม - ส่งต่อการส่งฟอร์ม Airtable เป็นเหตุการณ์ Brevo
  • การกรองตาม View - ซิงค์ views Airtable เฉพาะกับรายการ Brevo ที่กำหนดเป้าหมาย
  • ระบบอัตโนมัติ Webhook - ทริกเกอร์แคมเปญ Brevo เมื่อบันทึก Airtable เปลี่ยนแปลง

ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:

  1. บัญชี Airtable (แผน Free ขึ้นไป)
  2. Personal Access Token หรือ OAuth app ที่กำหนดค่าแล้ว
  3. การเข้าถึง bases และตารางที่คุณต้องการซิงค์
  4. บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
  5. บัญชี Tajo ที่มีการสมัครสมาชิกที่ใช้งานอยู่

การยืนยันตัวตน

Airtable รองรับ Personal Access Tokens และ OAuth 2.0

ตัวเลือกที่ 1: Personal Access Token (แนะนำ)

  1. ไปที่ airtable.com/create/tokens
  2. คลิก Create new token
  3. ตั้งชื่อว่า “Tajo Integration”
  4. เพิ่ม scopes:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. เพิ่มการเข้าถึง bases เฉพาะหรือ bases ทั้งหมด
  2. คลิก Create token

ตัวเลือกที่ 2: OAuth 2.0

สำหรับการผสานรวมหลายผู้ใช้ ใช้ OAuth 2.0 flow:

  1. ลงทะเบียนการผสานรวมของคุณที่ airtable.com/create/oauth
  2. กำหนดค่า redirect URI: https://app.tajo.io/callbacks/airtable
  3. ขอ scopes เดียวกับด้านบน

การกำหนดขอบเขต Token

Personal Access Tokens สามารถกำหนดขอบเขตกับ bases เฉพาะได้ เพื่อความปลอดภัย ให้สิทธิ์เข้าถึงเฉพาะ bases ที่การผสานรวมของคุณต้องการแทนที่จะเลือก “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

การซิงค์ตาม 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

API Endpoints

Tajo ผสานรวมกับ Airtable Web API endpoints ต่อไปนี้:

Endpointเมธอดจุดประสงค์
/v0/{baseId}/{tableIdOrName}GETแสดงรายการบันทึกในตาราง
/v0/{baseId}/{tableIdOrName}POSTสร้างบันทึก
/v0/{baseId}/{tableIdOrName}PATCHอัปเดตบันทึก
/v0/{baseId}/{tableIdOrName}DELETEลบบันทึก
/v0/{baseId}/{tableIdOrName}/{recordId}GETดึงบันทึกเดี่ยว
/v0/meta/basesGETแสดงรายการ bases ที่เข้าถึงได้
/v0/meta/bases/{baseId}/tablesGETแสดงรายการตารางใน base
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETแสดงรายการความคิดเห็นบันทึก
/v0/bases/{baseId}/webhooksPOSTสร้าง webhook
/v0/bases/{baseId}/webhooksGETแสดงรายการ webhooks

ตัวอย่างโค้ด

เริ่มต้น Connector

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 ใช้ขีดจำกัดอัตราต่อ base:

ประเภทขีดจำกัดค่า
ขีดจำกัดอัตรา API5 คำขอต่อวินาทีต่อ base
บันทึกต่อคำขอสูงสุด 100 บันทึก (list) สูงสุด 10 บันทึก (create/update)
Webhook payloads50 payloads ต่อการเรียก listWebhookPayloads
ขนาดคำขอPayload สูงสุด ~2MB

การดำเนินการแบบ Batch

Airtable อนุญาตให้สร้างหรืออัปเดตได้สูงสุด 10 บันทึกต่อคำขอ Tajo จัดกลุ่มการดำเนินการขนาดใหญ่โดยอัตโนมัติเป็นคำขอหลายรายการโดยเคารพขีดจำกัดอัตรา

การแก้ไขปัญหา

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้
401 UnauthorizedToken ไม่ถูกต้องหรือหมดอายุสร้าง Personal Access Token ใหม่
403 ForbiddenToken ขาดการเข้าถึง baseเพิ่ม base ใน scope ของ token ของคุณ
404 Not Foundรหัส base หรือตารางไม่ถูกต้องตรวจสอบรหัส base และชื่อตาราง
422 Invalid Requestประเภทฟิลด์ไม่ตรงกันตรวจสอบว่าประเภทฟิลด์ Airtable ตรงกับข้อมูลของคุณ
เกินขีดจำกัดอัตรามากกว่า 5 req/s ต่อ baseลดความถี่ในการซิงค์หรือสลับการซิงค์ base

โหมด Debug

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. กำหนดขอบเขต tokens กับ bases เฉพาะ - อย่าให้สิทธิ์เข้าถึง bases ทั้งหมดหากไม่จำเป็น
  2. ใช้ views สำหรับการซิงค์แบบกรอง - ซิงค์ views เฉพาะแทนตารางทั้งหมดเพื่อลดปริมาณข้อมูล
  3. การดำเนินการบันทึกแบบ Batch - จัดกลุ่มการสร้างและอัปเดตในกลุ่มละ 10
  4. จัดการ pagination - Airtable ส่งคืน 100 บันทึกต่อหน้า วนซ้ำด้วย offset
  5. ใช้ webhooks สำหรับแบบเรียลไทม์ - ลงทะเบียน webhooks แทนการ polling สำหรับการเปลี่ยนแปลง
  6. แมปประเภทฟิลด์อย่างแม่นยำ - จับคู่ประเภทฟิลด์ Airtable (select, number, date) กับประเภทแอตทริบิวต์ Brevo

ความปลอดภัย

  • Personal Access Tokens - กำหนดขอบเขตกับ bases และการดำเนินการเฉพาะ
  • OAuth 2.0 - โฟลว์การอนุญาตที่ปลอดภัยพร้อม refresh tokens
  • HTTPS เท่านั้น - การสื่อสาร API ทั้งหมดเข้ารหัสผ่าน TLS 1.2+
  • การควบคุมการเข้าถึงระดับ Base - Tokens กำหนดขอบเขตกับ bases แต่ละรายการ
  • การจัดเก็บที่เข้ารหัส - Tokens เข้ารหัสที่เก็บใน Tajo
  • การตรวจสอบ Webhook HMAC - ตรวจสอบความถูกต้องของการแจ้งเตือน webhook

แหล่งข้อมูลที่เกี่ยวข้อง

Subscribe to updates

developer-docs

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

auto-detect
ผู้ช่วย AI

สวัสดี! ถามฉันเกี่ยวกับเอกสารได้เลย