---
title: "Airtable Connector"
description: "Vollständiger Leitfaden zur Airtable-Integration für die Synchronisierung von Bases, Tabellen und Datensätzen mit Brevo-Kontakten und -Listen über Tajo."
url: https://tajo.io/de/docs/connectors/custom/airtable/
markdown: https://tajo.io/de/docs/connectors/custom/airtable.md
lang: de-DE
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# Airtable Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbinde deine Airtable-Bases über Tajo mit Brevo für CRM-Synchronisierung, Produktkatalogpflege und automatisierte Marketing-Workflows auf Basis strukturierter Daten.

## Überblick

| Eigenschaft | Wert |
| --- | --- |
| **Plattform** | Airtable |
| **Kategorie** | Custom |
| **Einrichtungsaufwand** | Einfach |
| **Offizielle Integration** | Nein |
| **Synchronisierte Daten** | Datensätze, Tabellen, Nutzer:innen |
| **API-Typ** | REST-API |
| **Authentifizierung** | Personal Access Token / OAuth 2.0 |
| **Basis-URL** | `https://api.airtable.com/v0/` |

## Funktionen

- **Synchronisierung Tabelle zu Liste** - Synchronisiere Datensätze aus Airtable-Tabellen direkt in Brevo-Kontaktlisten
- **Produktkatalog-Bridge** - Nutze Airtable-Tabellen als Produktkataloge für E-Mail-Empfehlungen
- **CRM-Synchronisierung** - Bidirektionale Synchronisierung zwischen Airtable-CRM und Brevo-Kontakten
- **Events aus Formularübermittlungen** - Leite Airtable-Formulareinsendungen als Brevo-Events weiter
- **View-basierte Filterung** - Synchronisiere bestimmte Airtable-Views in zielgerichtete Brevo-Listen
- **Webhook-Automatisierung** - Löse Brevo-Kampagnen aus, wenn sich Airtable-Datensätze ändern

## Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

1. Ein Airtable-Konto (Free-Plan oder höher)
2. Ein konfiguriertes Personal Access Token oder eine OAuth-App
3. Zugriff auf die Bases und Tabellen, die du synchronisieren möchtest
4. Ein Brevo-Konto mit API-Zugriff
5. Ein Tajo-Konto mit aktivem Abonnement

## Authentifizierung

Airtable unterstützt Personal Access Tokens und OAuth 2.0.

### Option 1: Personal Access Token (Empfohlen)

1. Gehe zu [airtable.com/create/tokens](https://airtable.com/create/tokens)
2. Klicke auf **Create new token**
3. Benenne es mit “Tajo Integration”
4. Füge Scopes hinzu:

```
data.records:read
data.records:write
data.recordComments:read
schema.bases:read
webhook:manage
```

5. Füge Zugriff auf bestimmte Bases oder alle Bases hinzu
6. Klicke auf **Create token**

### Option 2: OAuth 2.0

Für Integrationen mit mehreren Nutzer:innen verwende den OAuth-2.0-Flow:

1. Registriere deine Integration unter [airtable.com/create/oauth](https://airtable.com/create/oauth)
2. Konfiguriere die Redirect-URI: `https://app.tajo.io/callbacks/airtable`
3. Fordere dieselben Scopes wie oben an

Token-Scoping

Personal Access Tokens können auf bestimmte Bases beschränkt werden. Gewähre aus Sicherheitsgründen nur Zugriff auf die Bases, die deine Integration benötigt, anstatt “All current and future bases” auszuwählen.

### Verbindung zu Tajo herstellen

```bash
tajo connectors install airtable \
  --token $AIRTABLE_TOKEN
```

## Konfiguration

### Grundeinrichtung

```yaml
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"
```

### Feldzuordnung

Ordne Airtable-Felder Brevo-Kontaktattributen zu:

```yaml
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-basierte Synchronisierung

```yaml
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-Endpunkte

Tajo integriert die folgenden Endpunkte der Airtable Web API:

| Endpunkt | Methode | Zweck |
| --- | --- | --- |
| `/v0/{baseId}/{tableIdOrName}` | GET | Datensätze in einer Tabelle auflisten |
| `/v0/{baseId}/{tableIdOrName}` | POST | Datensätze anlegen |
| `/v0/{baseId}/{tableIdOrName}` | PATCH | Datensätze aktualisieren |
| `/v0/{baseId}/{tableIdOrName}` | DELETE | Datensätze löschen |
| `/v0/{baseId}/{tableIdOrName}/{recordId}` | GET | Einen einzelnen Datensatz abrufen |
| `/v0/meta/bases` | GET | Zugängliche Bases auflisten |
| `/v0/meta/bases/{baseId}/tables` | GET | Tabellen einer Base auflisten |
| `/v0/{baseId}/{tableIdOrName}/listRecordComments` | GET | Datensatz-Kommentare auflisten |
| `/v0/bases/{baseId}/webhooks` | POST | Einen Webhook anlegen |
| `/v0/bases/{baseId}/webhooks` | GET | Webhooks auflisten |

## Code-Beispiele

### Connector initialisieren

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

### Tabelle mit Brevo synchronisieren

```javascript
// 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 verarbeiten

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

### Datensatz aus Brevo erstellen

```javascript
// 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]
      }
    });
  }
});
```

## Ratenbegrenzungen

Airtable erzwingt Ratenbegrenzungen pro Base:

| Limit-Typ | Wert |
| --- | --- |
| **API-Rate-Limit** | 5 Anfragen pro Sekunde pro Base |
| **Datensätze pro Anfrage** | Max. 100 Datensätze (List), max. 10 Datensätze (Create/Update) |
| **Webhook-Payloads** | 50 Payloads pro `listWebhookPayloads`-Aufruf |
| **Anfragegröße** | Payload max. ~2 MB |

Batch-Operationen

Airtable erlaubt das Anlegen oder Aktualisieren von bis zu 10 Datensätzen pro Anfrage. Tajo bündelt größere Operationen automatisch in mehrere Anfragen und berücksichtigt dabei die Ratenbegrenzungen.

## Fehlerbehebung

### Häufige Probleme

| Problem | Ursache | Lösung |
| --- | --- | --- |
| 401 Unauthorized | Ungültiges oder abgelaufenes Token | Personal Access Token erneut generieren |
| 403 Forbidden | Token fehlt Base-Zugriff | Base dem Scope des Tokens hinzufügen |
| 404 Not Found | Ungültige Base- oder Tabellen-ID | Base-ID und Tabellennamen prüfen |
| 422 Invalid Request | Feldtyp passt nicht | Prüfen, ob Airtable-Feldtypen zu deinen Daten passen |
| Ratenbegrenzung überschritten | Mehr als 5 Anf./s pro Base | Synchronisationsfrequenz reduzieren oder Syncs zeitlich staffeln |

### Debug-Modus

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

### Verbindung testen

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

## Best Practices

1. **Tokens auf bestimmte Bases beschränken** - Gewähre nicht ohne Notwendigkeit Zugriff auf alle Bases
2. **Views für gefilterte Synchronisierung nutzen** - Synchronisiere bestimmte Views statt vollständiger Tabellen, um das Datenvolumen zu reduzieren
3. **Datensatzoperationen bündeln** - Gruppiere Creates und Updates in Batches von 10
4. **Paginierung handhaben** - Airtable liefert 100 Datensätze pro Seite; iteriere mit `offset`
5. **Webhooks für Echtzeit nutzen** - Registriere Webhooks statt auf Änderungen zu pollen
6. **Feldtypen exakt zuordnen** - Passe Airtable-Feldtypen (Select, Number, Date) zu Brevo-Attributtypen

## Sicherheit

- **Personal Access Tokens** - Auf bestimmte Bases und Operationen beschränkt
- **OAuth 2.0** - Sicherer Autorisierungsflow mit Refresh-Tokens
- **Nur HTTPS** - Die gesamte API-Kommunikation ist per TLS 1.2+ verschlüsselt
- **Zugriffskontrolle auf Base-Ebene** - Tokens sind auf einzelne Bases beschränkt
- **Verschlüsselte Speicherung** - Tokens werden in Tajo verschlüsselt gespeichert
- **Webhook-HMAC-Verifizierung** - Authentizität von Webhook-Benachrichtigungen prüfen

## Verwandte Ressourcen

- [Notion Connector](https://tajo.io/de/docs/connectors/custom/notion)
- [GitHub Connector](https://tajo.io/de/docs/connectors/custom/github)
- [Customer-Sync-Skill](https://tajo.io/de/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/de/docs/contact-management)
