Klaviyo Connector

Verbinde Klaviyo über Tajo mit Brevo, um Marketingdaten zwischen beiden Plattformen zu migrieren oder zu synchronisieren. Synchronisiere Profile, Events, Listen, Segmente, Flows und Kampagnendaten für eine einheitliche Multi-Channel-Marketingstrategie.

Überblick

EigenschaftWert
PlattformKlaviyo
KategorieMarketing
EinrichtungsaufwandMittel
Offizielle IntegrationNein
Synchronisierte DatenProfile, Events, Listen, Segmente, Kampagnen
Verfügbare Skills10
API-StandardJSON:API

Funktionen

  • Profil-Synchronisation - Bidirektionale Synchronisation von Kundenprofilen zwischen Klaviyo und Brevo
  • Event-Weiterleitung - Leite in Klaviyo getrackte Events an Brevo weiter, um Automationen auszulösen
  • Listen-Migration - Synchronisiere Klaviyo-Listen in Brevo-Kontaktlisten
  • Segment-Sync - Exportiere Klaviyo-Segmente als Brevo-Listen oder -Segmente
  • Flow-Datenexport - Hole dir Flow-Performance-Daten für plattformübergreifende Analytics
  • Kampagnen-Sync - Koordiniere Kampagnen über Klaviyo- und Brevo-Kanäle hinweg
  • Catalog-Sync - Spiegele Produktkataloge zwischen den Plattformen
  • Coupon-Management - Synchronisiere Coupon-Codes und Nutzungsdaten

Voraussetzungen

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

  1. Ein Klaviyo-Konto mit API-Zugriff
  2. Einen Private API Key mit den passenden Scopes
  3. Deinen Klaviyo Public API Key (6-stellige Company-ID)
  4. Ein Brevo-Konto mit API-Zugriff
  5. Ein Tajo-Konto mit API-Anmeldedaten

Authentifizierung

Private API Key

Klaviyo verwendet Private API Keys mit gescoptem Zugriff für die serverseitige Authentifizierung. Setze den Schlüssel im Authorization-Header:

Terminal window
curl https://a.klaviyo.com/api/profiles/ \
-H "Authorization: Klaviyo-API-Key your-private-api-key" \
-H "revision: 2026-01-15"

Scopes für API-Schlüssel

Konfiguriere Scopes beim Anlegen deines Private Keys:

ScopeZugriffBeschreibung
profilesRead/FullZugriff auf Kontaktprofile
eventsRead/FullZugriff auf getrackte Events
listsRead/FullZugriff auf Kontaktlisten
segmentsReadZugriff auf Segmente
campaignsReadZugriff auf Kampagnendaten
metricsReadZugriff auf Metrik-Definitionen
flowsReadZugriff auf Flow-Konfigurationen
catalogsReadZugriff auf Produktkataloge

Public API Key

Für das clientseitige Tracking verwendest du die 6-stellige Company-ID:

Terminal window
curl -X POST "https://a.klaviyo.com/client/events/?company_id=COMPANY_ID" \
-H "Content-Type: application/json" \
-d '{"data": {...}}'

OAuth (Partner-Integrationen)

Klaviyo unterstützt OAuth für Tech-Partner und bietet damit verbesserte Sicherheit und höhere Rate Limits:

Terminal window
curl https://a.klaviyo.com/api/profiles/ \
-H "Authorization: Bearer YOUR_OAUTH_TOKEN" \
-H "revision: 2026-01-15"

Konfiguration

Grundeinrichtung

connectors:
klaviyo:
enabled: true
private_api_key: "your-klaviyo-private-key"
public_api_key: "XXXXXX"
api_revision: "2026-01-15"
# Data sync options
sync:
profiles: true
events: true
lists: true
segments: true
catalogs: false
# Brevo list assignment
lists:
all_contacts: 20
subscribers: 21
high_value: 22

Profil-Zuordnung

Ordne Klaviyo-Profileigenschaften den Brevo-Kontaktattributen zu:

profile_mapping:
email: email
first_name: FIRSTNAME
last_name: LASTNAME
phone_number: SMS
city: CITY
region: REGION
country: COUNTRY
zip: ZIP
organization: COMPANY
title: JOB_TITLE
# Custom properties
lifetime_value: LTV
total_orders: ORDER_COUNT
last_order_date: LAST_ORDER_DATE
preferred_channel: CHANNEL_PREF

Event-Mapping

Ordne Klaviyo-Metriken Brevo-Events zu:

event_mapping:
"Placed Order": "order_completed"
"Ordered Product": "product_purchased"
"Started Checkout": "checkout_started"
"Added to Cart": "cart_updated"
"Viewed Product": "product_viewed"
"Subscribed to List": "customer_subscribed"
"Received Email": "email_received"
"Opened Email": "email_opened"
"Clicked Email": "email_clicked"

API-Endpoints

MethodeEndpointBeschreibung
GET/api/profiles/Profile auflisten
POST/api/profiles/Ein Profil anlegen
PATCH/api/profiles/{id}/Ein Profil aktualisieren
POST/api/profile-merge/Doppelte Profile zusammenführen
GET/api/events/Events auflisten
POST/api/events/Ein Event anlegen
GET/api/lists/Alle Listen auflisten
POST/api/lists/{id}/relationships/profiles/Profile zu einer Liste hinzufügen
GET/api/segments/Segmente auflisten
GET/api/campaigns/Kampagnen auflisten
GET/api/flows/Flows auflisten
GET/api/metrics/Metriken auflisten
POST/api/metric-aggregates/Aggregierte Metriken abfragen
GET/api/catalog-items/Katalog-Einträge auflisten

Code-Beispiele

Klaviyo-Connector initialisieren

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Klaviyo account
await tajo.connectors.connect('klaviyo', {
privateApiKey: process.env.KLAVIYO_PRIVATE_KEY,
publicApiKey: process.env.KLAVIYO_PUBLIC_KEY
});

Profile zu Brevo synchronisieren

// Fetch Klaviyo profiles and sync to Brevo
const response = await fetch('https://a.klaviyo.com/api/profiles/', {
headers: {
'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
'revision': '2026-01-15',
'Accept': 'application/vnd.api+json'
}
});
const { data } = await response.json();
// Each profile follows JSON:API format
// {
// "type": "profile",
// "id": "01ABCDEF",
// "attributes": {
// "email": "[email protected]",
// "first_name": "Jane",
// "last_name": "Kim",
// "phone_number": "+15551234567",
// "properties": { "lifetime_value": 450.00 }
// }
// }

Ein Event erstellen

// Track an event in Klaviyo (forwarded to Brevo via Tajo)
await fetch('https://a.klaviyo.com/api/events/', {
method: 'POST',
headers: {
'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
'revision': '2026-01-15',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
},
body: JSON.stringify({
data: {
type: 'event',
attributes: {
metric: {
data: { type: 'metric', attributes: { name: 'Placed Order' } }
},
profile: {
data: { type: 'profile', attributes: { email: '[email protected]' } }
},
properties: {
OrderId: 'ORD-1234',
Value: 89.99,
Items: [
{ ProductName: 'Widget Pro', Price: 89.99, Quantity: 1 }
]
},
value: 89.99
}
}
})
});

Metrik-Aggregate abfragen

// Get aggregate metric data for reporting
await fetch('https://a.klaviyo.com/api/metric-aggregates/', {
method: 'POST',
headers: {
'Authorization': `Klaviyo-API-Key ${PRIVATE_KEY}`,
'revision': '2026-01-15',
'Content-Type': 'application/vnd.api+json'
},
body: JSON.stringify({
data: {
type: 'metric-aggregate',
attributes: {
metric_id: 'METRIC_ID',
measurements: ['count', 'sum_value'],
interval: 'day',
filter: ['greater-or-equal(datetime,2024-01-01)',
'less-than(datetime,2024-02-01)']
}
}
})
});

Rate Limits

AuthentifizierungBurst-LimitSteady-Limit
Private API Key75 Anfragen/Sek.700 Anfragen/Min.
OAuth150 Anfragen/Sek.1.500 Anfragen/Min.
Client API100 Anfragen/Sek.N/A
Bulk-Operationen10 Anfragen/Sek.100 Anfragen/Min.

API-Revision erforderlich

Alle Klaviyo-API-Anfragen benötigen einen revision-Header mit einem gültigen API-Versions-Datum (z. B. 2026-01-15). Anfragen ohne diesen Header werden abgelehnt.

Fehlerbehebung

ProblemUrsacheLösung
400 Bad RequestUngültiger oder fehlender API-SchlüsselPrivate API Key auf Korrektheit prüfen
403 ForbiddenUnzureichender ScopePrüfen, ob die Scopes des API-Schlüssels zu den erforderlichen Berechtigungen passen
Fehlender revision-HeaderHeader nicht gesetztrevision: 2026-01-15 zu allen Anfragen hinzufügen
Profil nicht gefundenFalscher IdentifierFür Lookups die Klaviyo-Profil-ID verwenden, nicht die E-Mail
Events werden nicht synchronisiertFalscher Metrik-NameExakte Metrik-Namen so verwenden, wie sie in Klaviyo definiert sind
429 Too Many RequestsRate Limit überschrittenExponentielles Backoff umsetzen und für höhere Limits OAuth in Betracht ziehen
JSON:API-FormatfehlerFalscher Content-Typeapplication/vnd.api+json für Content-Type- und Accept-Header verwenden

Best Practices

  1. JSON:API-Format nutzen - Folge der JSON:API-Spezifikation für alle Request- und Response-Payloads
  2. revision-Header setzen - Füge den revision-Header mit dem aktuellsten API-Versions-Datum stets hinzu
  3. Sparse Fieldsets verwenden - Fordere mit ?fields[profile]=email,first_name nur die benötigten Felder an, um den Payload zu verkleinern
  4. Relationships nutzen - Verwende den JSON:API-Parameter include, um zugehörige Ressourcen in einer einzigen Anfrage zu laden
  5. Cursor-Pagination nutzen - Navigiere große Ergebnismengen mit dem Parameter page[cursor]
  6. Bulk-Operationen umsetzen - Nutze Bulk-Endpoints für Batch-Profil-Importe und das Erstellen von Events
  7. Für höhere Limits OAuth nutzen - Die OAuth-Authentifizierung bietet doppelt so hohe Rate Limits wie Private Keys

Sicherheit

  • Scopes für Private API Keys - Granulare Read/Full-Zugriffssteuerung pro Ressourcentyp
  • OAuth-Unterstützung - Sichere token-basierte Authentifizierung für Partner-Integrationen
  • Isolation des Public Keys - Clientseitige Schlüssel sind auf Create-Operationen beschränkt
  • TLS 1.2+ - Die gesamte API-Kommunikation wird bei der Übertragung verschlüsselt
  • SOC 2 Type II - Klaviyo ist nach SOC 2 Type II zertifiziert
  • DSGVO-Konformität - Data-Privacy-API für Anfragen zur Profil-Löschung

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.