Klaviyo Connector
Connector-Status: In Arbeit Im Aufbau. Noch nicht verifiziert.
Illustration · Beispieldaten
Sync-Beispiel
Quelle
Klaviyo
Connector-Status: In Arbeit
Ziel
Ihr anderes Tool
Connector-Status: Eigenes Tool
Feldzuordnung
| Quellfeld | Zielfeld | Beispielwert |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Entwerfen
- Einen Datensatz prüfen
- Diese Version freigeben
Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.
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
| Eigenschaft | Wert |
|---|---|
| Plattform | Klaviyo |
| Kategorie | Marketing |
| Einrichtungsaufwand | Mittel |
| Offizielle Integration | Nein |
| Synchronisierte Daten | Profile, Events, Listen, Segmente, Kampagnen |
| Verfügbare Skills | 10 |
| API-Standard | JSON: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:
- Ein Klaviyo-Konto mit API-Zugriff
- Einen Private API Key mit den passenden Scopes
- Deinen Klaviyo Public API Key (6-stellige Company-ID)
- Ein Brevo-Konto mit API-Zugriff
- 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:
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:
| Scope | Zugriff | Beschreibung |
|---|---|---|
profiles | Read/Full | Zugriff auf Kontaktprofile |
events | Read/Full | Zugriff auf getrackte Events |
lists | Read/Full | Zugriff auf Kontaktlisten |
segments | Read | Zugriff auf Segmente |
campaigns | Read | Zugriff auf Kampagnendaten |
metrics | Read | Zugriff auf Metrik-Definitionen |
flows | Read | Zugriff auf Flow-Konfigurationen |
catalogs | Read | Zugriff auf Produktkataloge |
Public API Key
Für das clientseitige Tracking verwendest du die 6-stellige Company-ID:
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:
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: 22Profil-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_PREFEvent-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
| Methode | Endpoint | Beschreibung |
|---|---|---|
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 accountawait 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 Brevoconst 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: { }, 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 reportingawait 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
| Authentifizierung | Burst-Limit | Steady-Limit |
|---|---|---|
| Private API Key | 75 Anfragen/Sek. | 700 Anfragen/Min. |
| OAuth | 150 Anfragen/Sek. | 1.500 Anfragen/Min. |
| Client API | 100 Anfragen/Sek. | N/A |
| Bulk-Operationen | 10 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
| Problem | Ursache | Lösung |
|---|---|---|
400 Bad Request | Ungültiger oder fehlender API-Schlüssel | Private API Key auf Korrektheit prüfen |
403 Forbidden | Unzureichender Scope | Prüfen, ob die Scopes des API-Schlüssels zu den erforderlichen Berechtigungen passen |
Fehlender revision-Header | Header nicht gesetzt | revision: 2026-01-15 zu allen Anfragen hinzufügen |
| Profil nicht gefunden | Falscher Identifier | Für Lookups die Klaviyo-Profil-ID verwenden, nicht die E-Mail |
| Events werden nicht synchronisiert | Falscher Metrik-Name | Exakte Metrik-Namen so verwenden, wie sie in Klaviyo definiert sind |
429 Too Many Requests | Rate Limit überschritten | Exponentielles Backoff umsetzen und für höhere Limits OAuth in Betracht ziehen |
| JSON:API-Formatfehler | Falscher Content-Type | application/vnd.api+json für Content-Type- und Accept-Header verwenden |
Best Practices
- JSON:API-Format nutzen - Folge der JSON:API-Spezifikation für alle Request- und Response-Payloads
revision-Header setzen - Füge denrevision-Header mit dem aktuellsten API-Versions-Datum stets hinzu- Sparse Fieldsets verwenden - Fordere mit
?fields[profile]=email,first_namenur die benötigten Felder an, um den Payload zu verkleinern - Relationships nutzen - Verwende den JSON:API-Parameter
include, um zugehörige Ressourcen in einer einzigen Anfrage zu laden - Cursor-Pagination nutzen - Navigiere große Ergebnismengen mit dem Parameter
page[cursor] - Bulk-Operationen umsetzen - Nutze Bulk-Endpoints für Batch-Profil-Importe und das Erstellen von Events
- 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