Iterable Connector

Verbinde deine Iterable-Growth-Marketing-Plattform mit Brevo für ein einheitliches Kunden-Engagement, kanalübergreifende Kampagnenkoordination und konsolidierte Analytics über deine Marketing-Tools hinweg.

Überblick

EigenschaftWert
PlattformIterable
KategorieMarketing
EinrichtungsaufwandMittel
Offizielle IntegrationNein
Synchronisierte DatenUser, Events, Kampagnen, Kataloge
API-TypREST API
AuthentifizierungAPI-Schlüssel
Basis-URLhttps://api.iterable.com/api/

Funktionen

  • User-Profile-Sync - Bidirektionale Synchronisation der User-Daten mit Brevo-Kontakten
  • Kampagnen-Analytics - Synchronisiere Kampagnen-Send-, Open- und Click-Metriken für ein einheitliches Reporting
  • Experiment-Daten - Tracke A/B-Test-Ergebnisse und Gewinner-Varianten
  • Catalog-Sync - Synchronisiere Produkt- und Content-Kataloge plattformübergreifend
  • Workflow-Events - Leite Workflow-Trigger- und Completion-Events an Brevo weiter
  • Sync der Channel-Präferenzen - Repliziere Kommunikationspräferenzen der User in Brevo

Voraussetzungen

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

  1. Ein Iterable-Konto mit API-Zugriff
  2. Einen Iterable-API-Schlüssel mit den passenden Berechtigungen
  3. Deine Iterable-Projekt-ID
  4. Ein Brevo-Konto mit API-Zugriff
  5. Ein Tajo-Konto mit aktivem Abonnement

Authentifizierung

Iterable nutzt eine API-Schlüssel-Authentifizierung, die im Request-Header übergeben wird.

API-Schlüssel erstellen

  1. Melde dich in deinem Iterable-Dashboard an
  2. Navigiere zu Integrations > API Keys
  3. Klicke auf New API Key
  4. Benenne ihn “Tajo Integration”
  5. Wähle den Schlüsseltyp Server-side
  6. Erteile die folgenden Berechtigungen:
Users: Read/Write
Events: Read/Write
Campaigns: Read
Lists: Read/Write
Catalogs: Read
Experiments: Read
Workflows: Read
Templates: Read
Channels: Read
Message Types: Read

Schlüsseltyp ist entscheidend

Verwende für die Tajo-Integration immer einen Server-side-API-Schlüssel. Mobile- und JavaScript-seitige Schlüssel haben eingeschränkte Berechtigungen und können nicht auf alle erforderlichen Endpoints zugreifen.

Mit Tajo verbinden

Terminal window
tajo connectors install iterable \
--api-key $ITERABLE_API_KEY

Konfiguration

Grundeinrichtung

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

Feldzuordnung

Ordne Iterable-User-Felder den Brevo-Kontaktattributen zu:

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-Konfiguration

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

API-Endpoints

Tajo integriert sich mit den folgenden Iterable-API-Endpoints:

EndpointMethodeZweck
/users/updatePOSTUser-Profile aktualisieren
/users/{email}GETUser anhand der E-Mail abrufen
/users/bulkUpdatePOSTUser per Batch aktualisieren
/events/trackPOSTCustom Events tracken
/events/trackBulkPOSTEvents per Batch tracken
/campaignsGETAlle Kampagnen auflisten
/campaigns/metricsGETKampagnen-Performance-Daten
/experiments/metricsGETExperiment-Ergebnisse
/listsGETAlle User-Listen auflisten
/lists/subscribePOSTUser zu einer Liste hinzufügen
/lists/unsubscribePOSTUser aus einer Liste entfernen
/catalogs/{catalogName}/itemsGETKatalog-Einträge abrufen
/channelsGETMessaging-Kanäle auflisten
/export/data.jsonGETRohe Event-Daten exportieren

Code-Beispiele

Connector initialisieren

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

User synchronisieren

// 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

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

Webhook-Handler

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

Rate Limits

Iterable wendet Rate Limits abhängig von deinem Plan an:

PlanRate LimitLimit für Bulk-Endpoints
Growth500 Anfragen/Sekunde500 Anfragen/Sekunde
EnterpriseIndividuellIndividuell

Endpoint-spezifische Limits:

EndpointLimit
/users/update500 req/s
/users/bulkUpdate500 req/s (1.000 User pro Anfrage)
/events/track500 req/s
/events/trackBulk500 req/s (8.000 Events pro Anfrage)
/export/data.json4 parallele Anfragen

Bulk-Endpoints

Tajo bündelt User-Updates automatisch (bis zu 1.000 pro Aufruf) und Event-Tracks (bis zu 8.000 pro Aufruf), um den Durchsatz zu maximieren und gleichzeitig innerhalb der Rate Limits zu bleiben.

Fehlerbehebung

Häufige Probleme

ProblemUrsacheLösung
401 UnauthorizedUngültiger API-SchlüsselSchlüssel in Iterable unter Integrations > API Keys prüfen
User werden nicht synchronisiertFalscher SchlüsseltypStelle sicher, dass du einen Server-side-API-Schlüssel verwendest
Fehlende KampagnendatenUnzureichende BerechtigungenBerechtigung “Campaigns Read” zum API-Schlüssel hinzufügen
Export-TimeoutGroßes DatenvolumenDatumsbereichsfilter nutzen, um die Exportgröße zu verringern
Doppelte UserInkonsistente IdentifierDie E-Mail konsequent als primären Identifier verwenden

Debug-Modus

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

Verbindung testen

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

Best Practices

  1. Bulk-Endpoints nutzen - Bevorzuge bulkUpdate und trackBulk für große Datenmengen
  2. Per E-Mail deduplizieren - Nutze die E-Mail als konsistenten Identifier in Iterable und Brevo
  3. Inkrementell synchronisieren - Nutze Datumsbereiche, um historische Daten nicht erneut zu verarbeiten
  4. Channel-Präferenzen mappen - Synchronisiere Opt-in-/Opt-out-Status, um Compliance zu gewährleisten
  5. Export-Jobs überwachen - Große Exporte können dauern; richte ein Status-Polling ein
  6. Mit Nicht-Produktivprojekt testen - Validiere Mappings, bevor du Produktionsdaten synchronisierst

Sicherheit

  • API-Schlüssel-Authentifizierung - Server-side-Schlüssel mit granularen Berechtigungen
  • Nur HTTPS - Die gesamte API-Kommunikation wird per TLS 1.2+ verschlüsselt
  • Schlüsselrotation - Unterstützung mehrerer aktiver API-Schlüssel während der Rotation
  • Verschlüsselte Speicherung - API-Anmeldedaten werden in Tajo im Ruhezustand verschlüsselt
  • JWT-Webhooks - Webhook-Payloads werden per JWT zur Verifizierung signiert

Verwandte Ressourcen

Subscribe to updates

developer-docs

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

auto-detect
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.