---
title: "Airtable Konektor"
description: "Kompletan vodič za integraciju Airtablea za sinkronizaciju baza, tablica i zapisa s Brevo kontaktima i popisima putem Taja."
url: https://tajo.io/hr/docs/connectors/custom/airtable/
markdown: https://tajo.io/hr/docs/connectors/custom/airtable.md
lang: hr-HR
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslat ćemo vam poveznicu za potvrdu zahtjeva za pristup Taju.

# Airtable Konektor

Status konektora: Planirano Još nije izrađeno. Tajo danas ne pokreće ovaj konektor.

| Izvorno polje | Odredišno polje | Primjer vrijednosti |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Povežite svoje Airtable baze s Brevom za CRM sinkronizaciju, upravljanje katalogom proizvoda i automatizirane marketinške tijekove rada pokretane strukturiranim podacima putem Taja.

## Pregled

| Svojstvo | Vrijednost |
| --- | --- |
| **Platforma** | Airtable |
| **Kategorija** | Prilagođeno |
| **Složenost postavljanja** | Jednostavno |
| **Službena integracija** | Ne |
| **Sinkronizirani podaci** | Zapisi, Tablice, Korisnici |
| **Vrsta API-ja** | REST API |
| **Autentifikacija** | Personal Access Token / OAuth 2.0 |
| **Osnovni URL** | `https://api.airtable.com/v0/` |

## Značajke

- **Sinkronizacija tablice na popis** - Sinkronizirajte zapise Airtable tablice izravno na Brevo popise kontakata
- **Most do kataloga proizvoda** - Koristite Airtable tablice kao kataloge proizvoda za preporuke putem e-pošte
- **CRM sinkronizacija** - Dvosmjerna sinkronizacija između Airtable CRM-a i Brevo kontakata
- **Događaji slanja obrazaca** - Prosljeđujte slanja Airtable obrazaca kao Brevo događaje
- **Filtriranje temeljeno na prikazima** - Sinkronizirajte određene Airtable prikaze na ciljane Brevo popise
- **Webhook automatizacija** - Pokrećite Brevo kampanje kada se Airtable zapisi promijene

## Preduvjeti

Prije nego što počnete, osigurajte da imate:

1. Airtable račun (Besplatni plan ili viši)
2. Konfigurirani Personal Access Token ili OAuth aplikaciju
3. Pristup bazama i tablicama koje želite sinkronizirati
4. Brevo račun s API pristupom
5. Tajo račun s aktivnom pretplatom

## Autentifikacija

Airtable podržava Personal Access Tokene i OAuth 2.0.

### Opcija 1: Personal Access Token (Preporučeno)

1. Idite na [airtable.com/create/tokens](https://airtable.com/create/tokens)
2. Kliknite **Create new token**
3. Nazovite ga “Tajo Integration”
4. Dodajte opsege:

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

5. Dodajte pristup određenim bazama ili svim bazama
6. Kliknite **Create token**

### Opcija 2: OAuth 2.0

Za integracije s više korisnika, koristite OAuth 2.0 tok:

1. Registrirajte svoju integraciju na [airtable.com/create/oauth](https://airtable.com/create/oauth)
2. Konfigurirajte redirect URI: `https://app.tajo.io/callbacks/airtable`
3. Zatražite iste opsege kao gore

Opseg tokena

Personal Access Tokeni mogu biti ograničeni na određene baze. Radi sigurnosti, dodijelite pristup samo bazama koje vaša integracija treba, a ne odabirite “Sve trenutne i buduće baze.”

### Povezivanje s Tajom

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

## Konfiguracija

### Osnovna konfiguracija

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

### Mapiranje polja

Mapirajte Airtable polja na atribute kontakata u Brevu:

```yaml
field_mapping:
  # Airtable polje -> Brevo atribut
  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
```

### Sinkronizacija temeljena na prikazima

```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 krajnje točke

Tajo se integrira sa sljedećim Airtable Web API krajnjim točkama:

| Krajnja točka | Metoda | Namjena |
| --- | --- | --- |
| `/v0/{baseId}/{tableIdOrName}` | GET | Popis zapisa u tablici |
| `/v0/{baseId}/{tableIdOrName}` | POST | Stvaranje zapisa |
| `/v0/{baseId}/{tableIdOrName}` | PATCH | Ažuriranje zapisa |
| `/v0/{baseId}/{tableIdOrName}` | DELETE | Brisanje zapisa |
| `/v0/{baseId}/{tableIdOrName}/{recordId}` | GET | Dohvaćanje jednog zapisa |
| `/v0/meta/bases` | GET | Popis dostupnih baza |
| `/v0/meta/bases/{baseId}/tables` | GET | Popis tablica u bazi |
| `/v0/{baseId}/{tableIdOrName}/listRecordComments` | GET | Popis komentara zapisa |
| `/v0/bases/{baseId}/webhooks` | POST | Stvaranje webhookova |
| `/v0/bases/{baseId}/webhooks` | GET | Popis webhookova |

## Primjeri koda

### Inicijalizacija konektora

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

### Sinkronizacija tablice s Brevom

```javascript
// Sinkronizacija Airtable tablice s Brevo popisom
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
// }
```

### Rukovanje Webhooksima

```javascript
// Airtable webhooks obavještavaju o promjenama; dohvatite detalje s kursorom
app.post('/webhooks/airtable', async (req, res) => {
  const { base, webhook, timestamp } = req.body;

  // Dohvaćanje promijenjenih zapisa koristeći webhook kursor
  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');
});
```

### Stvaranje zapisa iz Breva

```javascript
// Stvaranje Airtable zapisa kada Brevo kontakt konvertira
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]
      }
    });
  }
});
```

## Ograničenja brzine

Airtable primjenjuje ograničenja brzine po bazi:

| Vrsta ograničenja | Vrijednost |
| --- | --- |
| **Ograničenje brzine API-ja** | 5 zahtjeva po sekundi po bazi |
| **Zapisi po zahtjevu** | Maks. 100 zapisa (popis), maks. 10 zapisa (stvaranje/ažuriranje) |
| **Webhook sadržaji** | 50 sadržaja po `listWebhookPayloads` pozivu |
| **Veličina zahtjeva** | Maks. sadržaj ~2 MB |

Skupne operacije

Airtable omogućuje stvaranje ili ažuriranje do 10 zapisa po zahtjevu. Tajo automatski grupira veće operacije u višestruke zahtjeve uz poštivanje ograničenja brzine.

## Rješavanje problema

### Uobičajeni problemi

| Problem | Uzrok | Rješenje |
| --- | --- | --- |
| 401 Unauthorized | Nevažeći ili istekli token | Regenerirajte Personal Access Token |
| 403 Forbidden | Token nema pristup bazi | Dodajte bazu u opseg svog tokena |
| 404 Not Found | Nevažeći ID baze ili tablice | Provjerite ID baze i naziv tablice |
| 422 Invalid Request | Nepodudaranje vrsta polja | Provjerite odgovaraju li Airtable vrste polja vašim podacima |
| Prekoračeno ograničenje brzine | Više od 5 zah./sek. po bazi | Smanjite učestalost sinkronizacije ili rasporedite sinkronizacije baza |

### Način otklanjanja grešaka

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

### Testiranje veze

```bash
tajo connectors test airtable
# ✓ API autentifikacija uspješna
# ✓ Pristup bazi potvrđen
# ✓ Shema tablice čitljiva
# ✓ Popis zapisa operativan
# ✓ Registracija webhookova dostupna
```

## Preporučene prakse

1. **Ograničite tokene na određene baze** - Ne dodjeljujte pristup svim bazama osim ako nije nužno
2. **Koristite prikaze za filtrirane sinkronizacije** - Sinkronizirajte određene prikaze umjesto cijelih tablica za smanjenje volumena podataka
3. **Skupne operacije zapisa** - Grupirajte stvaranja i ažuriranja u serijama od 10
4. **Rukujte paginacijom** - Airtable vraća 100 zapisa po stranici; iterirajte s `offset`
5. **Koristite webhookove za sinkronizaciju u stvarnom vremenu** - Registrirajte webhookove umjesto anketiranja za promjene
6. **Precizno mapirajte vrste polja** - Uskladite Airtable vrste polja (odabir, broj, datum) s Brevo vrstama atributa

## Sigurnost

- **Personal Access Tokeni** - Ograničeni na određene baze i operacije
- **OAuth 2.0** - Siguran tok autorizacije s tokenima za osvježavanje
- **Samo HTTPS** - Sva API komunikacija šifrirana putem TLS 1.2+
- **Kontrola pristupa na razini baze** - Tokeni ograničeni na pojedine baze
- **Šifrirano pohranjivanje** - Tokeni šifrirani u mirovanju u Taju
- **HMAC verifikacija webhookova** - Provjera autentičnosti obavijesti webhookova

## Povezani resursi

- [Notion Konektor](https://tajo.io/hr/docs/connectors/custom/notion)
- [GitHub Konektor](https://tajo.io/hr/docs/connectors/custom/github)
- [Vještina sinkronizacije korisnika](https://tajo.io/hr/docs/skills/data-sync/customer-sync)
- [Brevo API kontakata](https://tajo.io/hr/docs/contact-management)
