Klaviyo-connector
Connectorstatus: In ontwikkeling In aanbouw. Nog niet geverifieerd.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Klaviyo
Connectorstatus: In ontwikkeling
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
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
| Eigenschap | Waarde |
|---|---|
| Platform | Klaviyo |
| Categorie | Marketing |
| Setupcomplexiteit | Gemiddeld |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Profielen, Events, Lijsten, Segmenten, Campagnes |
| Beschikbare skills | 10 |
| API-standaard | JSON: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:
- Een Klaviyo-account met API-toegang
- Een Private API Key met de juiste scopes
- Je Klaviyo Public API Key (6-character company ID)
- Een Brevo-account met API-toegang
- 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:
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:
| Scope | Toegang | Beschrijving |
|---|---|---|
profiles | Read/Full | Toegang tot contactprofielen |
events | Read/Full | Toegang tot getrackte events |
lists | Read/Full | Toegang tot contactlijsten |
segments | Read | Toegang tot segmenten |
campaigns | Read | Toegang tot campagnedata |
metrics | Read | Toegang tot metric-definities |
flows | Read | Toegang tot flowconfiguraties |
catalogs | Read | Toegang tot productcatalogi |
Public API key
Gebruik voor client-side-tracking de 6-character company ID:
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:
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: 22Profielmapping
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_PREFEvent-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
| Methode | Endpoint | Beschrijving |
|---|---|---|
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 accountawait 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 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 }// }// }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: { }, 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 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)'] } } })});Ratelimits
| Authenticatie | Burst-limiet | Continue limiet |
|---|---|---|
| Private API key | 75 requests/sec | 700 requests/min |
| OAuth | 150 requests/sec | 1.500 requests/min |
| Client API | 100 requests/sec | N.v.t. |
| Bulk-operaties | 10 requests/sec | 100 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
| Probleem | Oorzaak | Oplossing |
|---|---|---|
400 Bad Request | Ongeldige of ontbrekende API-sleutel | Verifieer dat de private API-sleutel correct is |
403 Forbidden | Onvoldoende scope | Controleer of API-sleutel-scopes overeenkomen met de vereiste rechten |
Ontbrekende revision-header | Header niet ingesteld | Voeg revision: 2026-01-15 toe aan alle requests |
| Profiel niet gevonden | Verkeerde identifier | Gebruik Klaviyo-profiel-ID, geen e-mail, voor opzoeken |
| Events synchroniseren niet | Verkeerde metricnaam | Match exacte metricnamen zoals gedefinieerd in Klaviyo |
429 Too Many Requests | Ratelimit overschreden | Implementeer exponentiële backoff, overweeg OAuth voor hogere limieten |
| JSON:API-formaatfouten | Verkeerd content-type | Gebruik application/vnd.api+json voor Content-Type- en Accept-headers |
Best practices
- Gebruik JSON:API-formaat - Volg de JSON:API-specificatie voor alle request- en response-payloads
- Stel de revision-header in - Neem altijd de
revision-header op met de nieuwste API-versiedatum - Gebruik sparse fieldsets - Vraag alleen benodigde velden op met
?fields[profile]=email,first_nameom payloads te verkleinen - Benut relaties - Gebruik de JSON:API-
include-parameter om gerelateerde resources in één request op te halen - Gebruik cursor-paginatie - Navigeer grote resultsets met de
page[cursor]-parameter - Implementeer bulk-operaties - Gebruik bulk-endpoints voor batchimport van profielen en eventcreatie
- 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