Klaviyo-koppling

Anslut Klaviyo till Brevo via Tajo för att migrera eller synkronisera marknadsföringsdata mellan plattformarna. Synka profiler, händelser, listor, segment, flöden och kampanjdata för en enhetlig marknadsföringsstrategi i flera kanaler.

Översikt

EgenskapVärde
PlattformKlaviyo
KategoriMarknadsföring
InstallationskomplexitetMedel
Officiell integrationNej
Data som synkasProfiler, händelser, listor, segment, kampanjer
Tillgängliga skills10
API-standardJSON:API

Funktioner

  • Profilsynk - Dubbelriktad synk av kundprofiler mellan Klaviyo och Brevo
  • Vidarebefordran av händelser - Vidarebefordra Klaviyo-spårade händelser till Brevo som automationstriggers
  • Listmigrering - Synka Klaviyo-listor till Brevos kontaktlistor
  • Segmentsynk - Exportera Klaviyo-segment som Brevo-listor eller -segment
  • Export av flödesdata - Hämta prestandadata från flöden för tvärplattformsanalys
  • Kampanjsynk - Koordinera kampanjer över Klaviyo- och Brevo-kanaler
  • Katalogsynk - Spegla produktkataloger mellan plattformarna
  • Hantering av rabattkoder - Synka rabattkoder och användningsdata

Förutsättningar

Innan du börjar, se till att du har:

  1. Ett Klaviyo-konto med API-åtkomst
  2. En privat API-nyckel med lämpliga scopes
  3. Din publika API-nyckel från Klaviyo (6-tecken långt företags-ID)
  4. Ett Brevo-konto med API-åtkomst
  5. Ett Tajo-konto med API-uppgifter

Autentisering

Privat API-nyckel

Klaviyo använder privata API-nycklar med scope-baserad åtkomst för serverbaserad autentisering. Ange nyckeln i Authorization-headern:

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-nyckeln

Konfigurera scopes när du skapar din privata nyckel:

ScopeÅtkomstBeskrivning
profilesRead/FullÅtkomst till kontaktprofiler
eventsRead/FullÅtkomst till spårade händelser
listsRead/FullÅtkomst till kontaktlistor
segmentsReadÅtkomst till segment
campaignsReadÅtkomst till kampanjdata
metricsReadÅtkomst till metrikdefinitioner
flowsReadÅtkomst till flödeskonfigurationer
catalogsReadÅtkomst till produktkataloger

Publik API-nyckel

För klientbaserad spårning, använd ditt 6-tecken långa företags-ID:

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

OAuth (partnerintegrationer)

Klaviyo stöder OAuth för tech partners, vilket ger förbättrad säkerhet och högre rate limits:

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

Konfiguration

Grundläggande konfiguration

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

Profilmappning

Mappa Klaviyo-profilegenskaper till Brevos kontaktattribut:

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

Händelsemappning

Mappa Klaviyo-metriker till Brevo-händelser:

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-ändpunkter

MetodÄndpunktBeskrivning
GET/api/profiles/Lista profiler
POST/api/profiles/Skapa en profil
PATCH/api/profiles/{id}/Uppdatera en profil
POST/api/profile-merge/Slå ihop duplicerade profiler
GET/api/events/Lista händelser
POST/api/events/Skapa en händelse
GET/api/lists/Lista alla listor
POST/api/lists/{id}/relationships/profiles/Lägg till profiler i en lista
GET/api/segments/Lista segment
GET/api/campaigns/Lista kampanjer
GET/api/flows/Lista flöden
GET/api/metrics/Lista metriker
POST/api/metric-aggregates/Kör metrikaggregatfrågor
GET/api/catalog-items/Lista katalogobjekt

Kodexempel

Initiera Klaviyo-kopplingen

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

Synka profiler till Brevo

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

Skapa en händelse

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

Fråga efter metrikaggregat

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

API-gränser

AutentiseringBurst-gränsJämn gräns
Privat API-nyckel75 förfrågningar/sek700 förfrågningar/min
OAuth150 förfrågningar/sek1 500 förfrågningar/min
Client API100 förfrågningar/sek
Bulkoperationer10 förfrågningar/sek100 förfrågningar/min

API-revision krävs

Alla Klaviyo API-förfrågningar kräver att revision-headern är satt till ett giltigt datum för API-version (t.ex. 2026-01-15). Förfrågningar utan denna header avvisas.

Felsökning

ProblemOrsakLösning
400 Bad RequestOgiltig eller saknad API-nyckelVerifiera att den privata API-nyckeln är korrekt
403 ForbiddenOtillräckligt scopeKontrollera att API-nyckelns scopes matchar nödvändiga behörigheter
revision-header saknasHeader ej sattLägg till revision: 2026-01-15 i alla förfrågningar
Profil hittades inteFel identifierareAnvänd Klaviyo-profil-ID, inte e-post, för uppslag
Händelser synkar inteFel metriknamnMatcha exakta metriknamn som definierats i Klaviyo
429 Too Many RequestsRate limit överskridenImplementera exponentiell backoff, överväg OAuth för högre gränser
Format-fel i JSON:APIFel content typeAnvänd application/vnd.api+json för Content-Type- och Accept-headrar

Bästa praxis

  1. Använd JSON:API-format - Följ JSON:API-specifikationen för alla förfråge- och svarsdata
  2. Sätt revision-headern - Inkludera alltid revision-headern med det senaste API-versionsdatumet
  3. Använd sparse fieldsets - Begär endast nödvändiga fält med ?fields[profile]=email,first_name för att minska svarsstorleken
  4. Utnyttja relationer - Använd JSON:API-parametern include för att hämta relaterade resurser i en enda förfrågan
  5. Använd cursor-paginering - Navigera stora resultatmängder med parametern page[cursor]
  6. Implementera bulkoperationer - Använd bulk-ändpunkter för batch-profilimporter och händelseskapande
  7. Använd OAuth för högre gränser - OAuth-autentisering ger dubbelt så höga rate limits som privata nycklar

Säkerhet

  • Scopes för privata API-nycklar - Granulär Read/Full-åtkomstkontroll per resurstyp
  • OAuth-stöd - Säker tokenbaserad autentisering för partnerintegrationer
  • Isolering av publik nyckel - Klientbaserade nycklar begränsade till create-operationer
  • TLS 1.2+ - All API-kommunikation krypteras under transport
  • SOC 2 Type II - Klaviyo är SOC 2 Type II-certifierat
  • GDPR-efterlevnad - Data Privacy API för begäran om profilradering

Relaterade resurser

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Fråga mig om dokumentationen.