Solicita acceso anticipado

Escribe tu nombre y dirección de correo de trabajo. Te enviaremos un enlace para confirmar tu solicitud de acceso a Tajo.

Conector de Airtable

Estado del conector: Planificado Aún no está construido. Tajo no ejecuta este conector hoy.

Ilustración · datos de ejemplo

Ejemplo de sincronización

Revisar un registro

Origen

Airtable

Estado del conector: Planificado

Destino

Tu otra herramienta

Estado del conector: Herramienta personalizada

Campo de origenCampo de destinoValor de ejemplo
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Preparar
  2. Revisar un registro
  3. Aprobar esta versión

Los estados corresponden a cada conector y no garantizan que esta sincronización esté lista. Campos ilustrativos. Revisa el esquema y los permisos reales antes de ejecutar una sincronización.

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

Solicita acceso anticipado

Escribe tu nombre y dirección de correo de trabajo. Te enviaremos un enlace para confirmar tu solicitud de acceso a Tajo.

Asistente AI

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

Esta página en Markdown: airtable.md

Cargando Markdown…
Abrir en Claude Abrir en ChatGPT