Beantrage frühzeitigen Zugang

Gib deinen Vornamen und eine E-Mail-Adresse oder Telefonnummer an. Wir melden uns mit den Details zum Tajo-Zugang bei dir.

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

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und eine E-Mail-Adresse oder Telefonnummer an. Wir melden uns mit den Details zum Tajo-Zugang bei dir.

automatische Erkennung
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.