Klaviyo-connector

Verbind Klaviyo met Brevo via Tajo om marketingdata tussen platforms te migreren of synchroniseren. Synchroniseer profielen, events, lijsten, segmenten, flows en campagnedata voor een uniforme multi-channel-marketingstrategie.

Overzicht

EigenschapWaarde
PlatformKlaviyo
CategorieMarketing
SetupcomplexiteitGemiddeld
Officiële integratieNee
Gesynchroniseerde dataProfielen, Events, Lijsten, Segmenten, Campagnes
Beschikbare skills10
API-standaardJSON:API

Functies

  • Profielsync - Bidirectionele sync van klantprofielen tussen Klaviyo en Brevo
  • Event-forwarding - Stuur in Klaviyo gevolgde events door naar Brevo als automation-triggers
  • Lijstmigratie - Synchroniseer Klaviyo-lijsten naar Brevo-contactlijsten
  • Segmentsync - Exporteer Klaviyo-segmenten als Brevo-lijsten of -segmenten
  • Flow-data-export - Haal flowprestatiedata op voor cross-platform-analytics
  • Campagnesync - Coördineer campagnes over Klaviyo- en Brevo-kanalen heen
  • Catalogussync - Spiegel productcatalogi tussen platforms
  • Couponbeheer - Synchroniseer couponcodes en gebruiksdata

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een Klaviyo-account met API-toegang
  2. Een Private API Key met de juiste scopes
  3. Je Klaviyo Public API Key (6-character company ID)
  4. Een Brevo-account met API-toegang
  5. Een Tajo-account met API-inloggegevens

Authenticatie

Private API key

Klaviyo gebruikt private API-sleutels met gescopete toegang voor server-side-authenticatie. Zet de sleutel in de 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 van API-sleutels

Configureer scopes bij het aanmaken van je private key:

ScopeToegangBeschrijving
profilesRead/FullToegang tot contactprofielen
eventsRead/FullToegang tot getrackte events
listsRead/FullToegang tot contactlijsten
segmentsReadToegang tot segmenten
campaignsReadToegang tot campagnedata
metricsReadToegang tot metric-definities
flowsReadToegang tot flowconfiguraties
catalogsReadToegang tot productcatalogi

Public API key

Gebruik voor client-side-tracking de 6-character 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 (partnerintegraties)

Klaviyo ondersteunt OAuth voor tech-partners, met betere beveiliging en hogere ratelimits:

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

Configuratie

Basisopzet

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

Profielmapping

Koppel Klaviyo-profieleigenschappen aan Brevo-contactattributen:

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

Koppel Klaviyo-metrics aan Brevo-events:

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

MethodeEndpointBeschrijving
GET/api/profiles/Profielen opvragen
POST/api/profiles/Profiel aanmaken
PATCH/api/profiles/{id}/Profiel bijwerken
POST/api/profile-merge/Duplicaatprofielen samenvoegen
GET/api/events/Events opvragen
POST/api/events/Event aanmaken
GET/api/lists/Alle lijsten opvragen
POST/api/lists/{id}/relationships/profiles/Profielen aan lijst toevoegen
GET/api/segments/Segmenten opvragen
GET/api/campaigns/Campagnes opvragen
GET/api/flows/Flows opvragen
GET/api/metrics/Metrics opvragen
POST/api/metric-aggregates/Metric-aggregates opvragen
GET/api/catalog-items/Catalogusitems opvragen

Codevoorbeelden

Klaviyo-connector initialiseren

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

Profielen naar Brevo synchroniseren

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

Event aanmaken

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

Metric-aggregates opvragen

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

Ratelimits

AuthenticatieBurst-limietContinue limiet
Private API key75 requests/sec700 requests/min
OAuth150 requests/sec1.500 requests/min
Client API100 requests/secN.v.t.
Bulk-operaties10 requests/sec100 requests/min

API-revision vereist

Alle Klaviyo API-requests vereisen de revision-header met een geldige API-versiedatum (bijv. 2026-01-15). Requests zonder deze header worden geweigerd.

Probleemoplossing

ProbleemOorzaakOplossing
400 Bad RequestOngeldige of ontbrekende API-sleutelVerifieer dat de private API-sleutel correct is
403 ForbiddenOnvoldoende scopeControleer of API-sleutel-scopes overeenkomen met de vereiste rechten
Ontbrekende revision-headerHeader niet ingesteldVoeg revision: 2026-01-15 toe aan alle requests
Profiel niet gevondenVerkeerde identifierGebruik Klaviyo-profiel-ID, geen e-mail, voor opzoeken
Events synchroniseren nietVerkeerde metricnaamMatch exacte metricnamen zoals gedefinieerd in Klaviyo
429 Too Many RequestsRatelimit overschredenImplementeer exponentiële backoff, overweeg OAuth voor hogere limieten
JSON:API-formaatfoutenVerkeerd content-typeGebruik application/vnd.api+json voor Content-Type- en Accept-headers

Best practices

  1. Gebruik JSON:API-formaat - Volg de JSON:API-specificatie voor alle request- en response-payloads
  2. Stel de revision-header in - Neem altijd de revision-header op met de nieuwste API-versiedatum
  3. Gebruik sparse fieldsets - Vraag alleen benodigde velden op met ?fields[profile]=email,first_name om payloads te verkleinen
  4. Benut relaties - Gebruik de JSON:API-include-parameter om gerelateerde resources in één request op te halen
  5. Gebruik cursor-paginatie - Navigeer grote resultsets met de page[cursor]-parameter
  6. Implementeer bulk-operaties - Gebruik bulk-endpoints voor batchimport van profielen en eventcreatie
  7. Gebruik OAuth voor hogere limieten - OAuth-authenticatie biedt 2x hogere ratelimits dan private keys

Beveiliging

  • Scopes voor private API-sleutels - Granulaire Read/Full-toegang per resource-type
  • OAuth-ondersteuning - Veilige tokengebaseerde authenticatie voor partnerintegraties
  • Isolatie van public key - Client-side-sleutels beperkt tot create-only-operaties
  • TLS 1.2+ - Alle API-communicatie versleuteld in transit
  • SOC 2 Type II - Klaviyo is SOC 2 Type II-gecertificeerd
  • AVG-compliance - Data Privacy API voor profielverwijderingsverzoeken

Gerelateerde resources

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hallo! Stel me vragen over de documentatie.