Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

Klaviyo-koppling

Kopplingens status: Under utveckling Byggs. Inte verifierad än.

Illustration · exempeldata

Exempel på synkronisering

Granska en post

Källa

Klaviyo

Kopplingens status: Under utveckling

Mål

Ditt andra verktyg

Kopplingens status: Eget verktyg

KällfältMålfältExempelvärde
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Utkast
  2. Granska en post
  3. Godkänn den här versionen

Status gäller varje enskild koppling och garanterar inte att den här synkroniseringen är klar. Fälten är illustrativa. Kontrollera det faktiska schemat och behörigheterna innan synkronisering körs.

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

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

AI-assistent

Hej! Fråga mig om dokumentationen.

Den här sidan som Markdown: klaviyo.md

Läser in Markdown …
Öppna i Claude Öppna i ChatGPT