Conector de Airtable

Conecta tus bases de Airtable con Brevo para sincronizar datos del CRM, gestionar catálogos de productos y automatizar flujos de marketing impulsados por datos estructurados a través de Tajo.

Resumen

PropiedadValor
PlataformaAirtable
CategoríaPersonalizada
Complejidad de configuraciónFácil
Integración oficialNo
Datos sincronizadosRegistros, Tablas, Usuarios
Tipo de APIREST API
AutenticaciónPersonal Access Token / OAuth 2.0
URL basehttps://api.airtable.com/v0/

Funcionalidades

  • Sincronización tabla a lista - Sincroniza los registros de una tabla de Airtable directamente con listas de contactos de Brevo
  • Puente con catálogos de productos - Usa tablas de Airtable como catálogos de productos para recomendaciones por email
  • Sincronización con CRM - Sincronización bidireccional entre el CRM de Airtable y los contactos de Brevo
  • Eventos de envío de formularios - Reenvía los envíos de formularios de Airtable como eventos de Brevo
  • Filtrado por vista - Sincroniza vistas específicas de Airtable con listas concretas de Brevo
  • Automatización con webhooks - Activa campañas de Brevo cuando cambien los registros de Airtable

Requisitos previos

Antes de empezar, asegúrate de tener:

  1. Una cuenta de Airtable (plan Free o superior)
  2. Un Personal Access Token o una app OAuth configurada
  3. Acceso a las bases y tablas que quieres sincronizar
  4. Una cuenta de Brevo con acceso a la API
  5. Una cuenta de Tajo con suscripción activa

Autenticación

Airtable admite Personal Access Tokens y OAuth 2.0.

Opción 1: Personal Access Token (recomendado)

  1. Ve a airtable.com/create/tokens
  2. Haz clic en Create new token
  3. Ponle el nombre “Tajo Integration”
  4. Añade los scopes:
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
  1. Añade acceso a bases específicas o a todas las bases
  2. Haz clic en Create token

Opción 2: OAuth 2.0

Para integraciones multiusuario, usa el flujo OAuth 2.0:

  1. Registra tu integración en airtable.com/create/oauth
  2. Configura la URI de redirección: https://app.tajo.io/callbacks/airtable
  3. Solicita los mismos scopes que arriba

Alcance del token

Los Personal Access Tokens se pueden limitar a bases específicas. Por seguridad, concede acceso solo a las bases que necesita tu integración en lugar de seleccionar “All current and future bases”.

Conectar con Tajo

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

Configuración

Configuración básica

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"

Asignación de campos

Asocia los campos de Airtable con los atributos de contacto de 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

Sincronización basada en vistas

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

Endpoints de la API

Tajo se integra con los siguientes endpoints de la Web API de Airtable:

EndpointMétodoPropósito
/v0/{baseId}/{tableIdOrName}GETListar registros de una tabla
/v0/{baseId}/{tableIdOrName}POSTCrear registros
/v0/{baseId}/{tableIdOrName}PATCHActualizar registros
/v0/{baseId}/{tableIdOrName}DELETEEliminar registros
/v0/{baseId}/{tableIdOrName}/{recordId}GETObtener un registro concreto
/v0/meta/basesGETListar las bases accesibles
/v0/meta/bases/{baseId}/tablesGETListar tablas de una base
/v0/{baseId}/{tableIdOrName}/listRecordCommentsGETListar comentarios de registros
/v0/bases/{baseId}/webhooksPOSTCrear un webhook
/v0/bases/{baseId}/webhooksGETListar webhooks

Ejemplos de código

Inicializar el conector

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

Sincronizar una tabla con 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
// }

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

Crear un registro desde 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]
}
});
}
});

Límites de velocidad

Airtable aplica límites de velocidad por base:

Tipo de límiteValor
Límite de velocidad de la API5 peticiones por segundo por base
Registros por petición100 registros máx. (list), 10 registros máx. (create/update)
Payloads de webhook50 payloads por llamada a listWebhookPayloads
Tamaño de la peticiónPayload máx. ~2 MB

Operaciones en lote

Airtable permite crear o actualizar hasta 10 registros por petición. Tajo agrupa automáticamente las operaciones más grandes en varias peticiones respetando los límites de velocidad.

Resolución de problemas

Problemas habituales

ProblemaCausaSolución
401 UnauthorizedToken no válido o expiradoRegenera el Personal Access Token
403 ForbiddenEl token no tiene acceso a la baseAñade la base al alcance del token
404 Not FoundID de base o tabla no válidoVerifica el ID de la base y el nombre de la tabla
422 Invalid RequestTipos de campo incompatiblesComprueba que los tipos de campo de Airtable coinciden con tus datos
Límite de velocidad superadoMás de 5 req/s por baseReduce la frecuencia de sincronización o espacia las sincronizaciones entre bases

Modo depuración

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

Probar la conexión

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

Buenas prácticas

  1. Limita los tokens a bases específicas - No concedas acceso a todas las bases salvo que sea necesario
  2. Usa vistas para sincronizaciones filtradas - Sincroniza vistas concretas en lugar de tablas completas para reducir el volumen de datos
  3. Agrupa las operaciones en lotes - Agrupa creaciones y actualizaciones en lotes de 10
  4. Gestiona la paginación - Airtable devuelve 100 registros por página; itera con offset
  5. Usa webhooks para tiempo real - Registra webhooks en lugar de consultar cambios por polling
  6. Asigna los tipos de campo con precisión - Haz coincidir los tipos de campo de Airtable (select, number, date) con los tipos de atributo de Brevo

Seguridad

  • Personal Access Tokens - Limitados a bases y operaciones específicas
  • OAuth 2.0 - Flujo de autorización seguro con refresh tokens
  • Solo HTTPS - Toda la comunicación con la API se cifra vía TLS 1.2+
  • Control de acceso por base - Tokens limitados a bases individuales
  • Almacenamiento cifrado - Tokens cifrados en reposo en Tajo
  • Verificación HMAC de webhooks - Valida la autenticidad de las notificaciones de webhook

Recursos relacionados

Subscribe to updates

developer-docs

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

auto-detect
Asistente AI

¡Hola! Pregúntame lo que quieras sobre la documentación.