---
title: "Iterable-connector"
description: "Volledige Iterable-integratiegids voor het synchroniseren van gebruikers, campagnes, experimenten en engagement-events met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/marketing/iterable/
markdown: https://tajo.io/nl/docs/connectors/marketing/iterable.md
lang: nl-NL
robots: noindex
---

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

# Iterable-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

| Bronveld | Doelveld | Voorbeeldwaarde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbind je Iterable-growth-marketingplatform met Brevo voor uniforme klantbetrokkenheid, cross-channel-campagnecoördinatie en geconsolideerde analytics over marketingtools heen.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | Iterable |
| **Categorie** | Marketing |
| **Setupcomplexiteit** | Gemiddeld |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Gebruikers, Events, Campagnes, Catalogi |
| **API-type** | REST API |
| **Authenticatie** | API-sleutel |
| **Base URL** | `https://api.iterable.com/api/` |

## Functies

- **Gebruikersprofielsync** - Bidirectionele synchronisatie van gebruikersdata met Brevo-contacten
- **Campagne-analytics** - Synchroniseer verzend-, open- en click-metrics voor uniforme rapportage
- **Experimentdata** - Track A/B-testresultaten en winnende varianten
- **Catalogussync** - Synchroniseer product- en contentcatalogi over platforms heen
- **Workflow-events** - Stuur workflow-trigger- en voltooiings-events door naar Brevo
- **Kanaalvoorkeurensync** - Repliceer communicatievoorkeuren van gebruikers in Brevo

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een Iterable-account met API-toegang
2. Een Iterable API-sleutel met de juiste rechten
3. Je Iterable-project-ID
4. Een Brevo-account met API-toegang
5. Een Tajo-account met een actief abonnement

## Authenticatie

Iterable gebruikt API-sleutel-authenticatie, meegegeven in de request-header.

### Een API-sleutel aanmaken

1. Log in op je Iterable-dashboard
2. Ga naar **Integrations** > **API Keys**
3. Klik op **New API Key**
4. Noem hem “Tajo Integration”
5. Kies het type **Server-side**
6. Verleen de volgende rechten:

```
Users: Read/Write
Events: Read/Write
Campaigns: Read
Lists: Read/Write
Catalogs: Read
Experiments: Read
Workflows: Read
Templates: Read
Channels: Read
Message Types: Read
```

Type sleutel is belangrijk

Gebruik altijd een **Server-side**-API-sleutel voor de Tajo-integratie. Mobile- en JavaScript-side keys hebben beperkte rechten en kunnen niet alle vereiste endpoints benaderen.

### Verbinden met Tajo

```bash
tajo connectors install iterable \
  --api-key $ITERABLE_API_KEY
```

## Configuratie

### Basisopzet

```yaml
connectors:
  iterable:
    enabled: true

    sync:
      users: true
      events: true
      campaigns: true
      catalogs: true
      experiments: true

    lists:
      all_users: 16
      engaged_users: 17
      inactive_users: 18
```

### Veldmapping

Koppel Iterable-gebruikersvelden aan Brevo-contactattributen:

```yaml
field_mapping:
  # Standard fields
  userId: ITERABLE_ID
  email: email
  firstName: FIRSTNAME
  lastName: LASTNAME
  phoneNumber: SMS

  # Engagement data
  signupDate: SIGNUP_DATE
  totalPurchases: TOTAL_PURCHASES
  lastPurchaseDate: LAST_PURCHASE

  # Custom fields
  plan_name: PLAN_NAME
  company_size: COMPANY_SIZE
  preferred_channel: PREFERRED_CHANNEL
  lifecycle_stage: LIFECYCLE_STAGE
```

### Event-configuratie

```yaml
event_mapping:
  # Iterable event -> Brevo event
  purchase: ORDER_PLACED
  addToCart: CART_UPDATED
  pageView: PAGE_VIEWED
  appOpen: APP_OPENED
  pushOpen: PUSH_ENGAGED
```

## API-endpoints

Tajo integreert met de volgende Iterable API-endpoints:

| Endpoint | Methode | Doel |
| --- | --- | --- |
| `/users/update` | POST | Gebruikersprofielen bijwerken |
| `/users/{email}` | GET | Gebruiker ophalen op e-mail |
| `/users/bulkUpdate` | POST | Gebruikers in batch bijwerken |
| `/events/track` | POST | Custom events tracken |
| `/events/trackBulk` | POST | Events in batch tracken |
| `/campaigns` | GET | Alle campagnes opvragen |
| `/campaigns/metrics` | GET | Campagneprestatiedata |
| `/experiments/metrics` | GET | Experimentresultaten |
| `/lists` | GET | Alle gebruikerslijsten opvragen |
| `/lists/subscribe` | POST | Gebruikers aan lijst toevoegen |
| `/lists/unsubscribe` | POST | Gebruikers uit lijst verwijderen |
| `/catalogs/{catalogName}/items` | GET | Catalogusitems ophalen |
| `/channels` | GET | Messagingkanalen opvragen |
| `/export/data.json` | GET | Ruwe event-data exporteren |

## Codevoorbeelden

### Connector initialiseren

```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('iterable', {
  apiKey: process.env.ITERABLE_API_KEY
});
```

### Gebruikers synchroniseren

```javascript
// Incremental user sync from Iterable to Brevo
await tajo.connectors.sync('iterable', {
  type: 'incremental',
  resources: ['users'],
  since: '2024-01-01',
  batchSize: 50
});

const status = await tajo.connectors.status('iterable');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T09:45:00Z',
//   usersCount: 58700,
//   campaignsTracked: 42,
//   eventsProcessed: 210000
// }
```

### Events tracken

```javascript
// Forward Iterable events to Brevo
await tajo.connectors.handleEvent('iterable', {
  type: 'custom_event',
  payload: {
    email: 'user@example.com',
    eventName: 'subscription_upgraded',
    dataFields: {
      previousPlan: 'starter',
      newPlan: 'pro',
      mrr: 99.00
    }
  }
});
```

### Webhook-handler

```javascript
// Handle Iterable system webhooks
app.post('/webhooks/iterable', async (req, res) => {
  const event = req.body;

  await tajo.connectors.handleWebhook('iterable', {
    type: event.eventName,
    payload: event
  });

  res.status(200).send('OK');
});
```

## Ratelimits

Iterable hanteert ratelimits op basis van je plan:

| Plan | Ratelimit | Limiet bulk-endpoint |
| --- | --- | --- |
| **Growth** | 500 requests/seconde | 500 requests/seconde |
| **Enterprise** | Custom | Custom |

Specifieke endpoint-limieten:

| Endpoint | Limiet |
| --- | --- |
| `/users/update` | 500 req/s |
| `/users/bulkUpdate` | 500 req/s (1.000 users per request) |
| `/events/track` | 500 req/s |
| `/events/trackBulk` | 500 req/s (8.000 events per request) |
| `/export/data.json` | 4 gelijktijdige requests |

Bulk-endpoints

Tajo batcht gebruikersupdates automatisch (tot 1.000 per call) en event-tracks (tot 8.000 per call) om de doorvoer te maximaliseren binnen de ratelimits.

## Probleemoplossing

### Veelvoorkomende problemen

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| 401 Unauthorized | Ongeldige API-sleutel | Verifieer de sleutel in Iterable > Integrations > API Keys |
| Gebruikers synchroniseren niet | Mismatch in sleuteltype | Zorg dat je een Server-side-API-sleutel gebruikt |
| Campagnedata ontbreekt | Onvoldoende rechten | Voeg Campaigns Read-recht toe aan de API-sleutel |
| Export-timeout | Grote datavolume | Gebruik datum-range-filters om exportgrootte te verkleinen |
| Duplicaat-gebruikers | Inconsistente identifiers | Gebruik e-mail consistent als primaire identifier |

### Debugmodus

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

### Verbinding testen

```bash
tajo connectors test iterable
# ✓ API connection successful
# ✓ User data accessible
# ✓ Campaign list readable
# ✓ Event tracking operational
# ✓ List management available
```

## Best practices

1. **Gebruik bulk-endpoints** - Geef altijd de voorkeur aan `bulkUpdate` en `trackBulk` voor grote datavolumes
2. **Dedupliceer op e-mail** - Gebruik e-mail als consistente identifier tussen Iterable en Brevo
3. **Synchroniseer incrementeel** - Gebruik datum-ranges om herverwerking van historische data te voorkomen
4. **Koppel kanaalvoorkeuren** - Synchroniseer opt-in/opt-outstatus om compliance te waarborgen
5. **Monitor export-jobs** - Grote exports kunnen tijd kosten; zet statuspolling op
6. **Test met non-production-project** - Valideer mappings vóór productiedata-sync

## Beveiliging

- **API-sleutel-authenticatie** - Server-side-sleutels met granulaire rechten
- **Alleen HTTPS** - Alle API-communicatie versleuteld via TLS 1.2+
- **Sleutelrotatie** - Ondersteuning voor meerdere actieve API-sleutels tijdens rotatie
- **Versleutelde opslag** - API-inloggegevens versleuteld opgeslagen in Tajo
- **JWT-webhooks** - Webhook-payloads ondertekend met JWT voor verificatie

## Gerelateerde resources

- [Braze-connector](https://tajo.io/nl/docs/connectors/marketing/braze)
- [Customer.io-connector](https://tajo.io/nl/docs/connectors/marketing/customerio)
- [Customer Sync-skill](https://tajo.io/nl/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/nl/docs/contact-management)
