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
| Egenskap | Värde |
|---|---|
| Plattform | Klaviyo |
| Kategori | Marknadsföring |
| Installationskomplexitet | Medel |
| Officiell integration | Nej |
| Data som synkas | Profiler, händelser, listor, segment, kampanjer |
| Tillgängliga skills | 10 |
| API-standard | JSON: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:
- Ett Klaviyo-konto med API-åtkomst
- En privat API-nyckel med lämpliga scopes
- Din publika API-nyckel från Klaviyo (6-tecken långt företags-ID)
- Ett Brevo-konto med API-åtkomst
- 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:
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 | Åtkomst | Beskrivning |
|---|---|---|
profiles | Read/Full | Åtkomst till kontaktprofiler |
events | Read/Full | Åtkomst till spårade händelser |
lists | Read/Full | Åtkomst till kontaktlistor |
segments | Read | Åtkomst till segment |
campaigns | Read | Åtkomst till kampanjdata |
metrics | Read | Åtkomst till metrikdefinitioner |
flows | Read | Åtkomst till flödeskonfigurationer |
catalogs | Read | Åtkomst till produktkataloger |
Publik API-nyckel
För klientbaserad spårning, använd ditt 6-tecken långa företags-ID:
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:
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: 22Profilmappning
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_PREFHä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 | Ändpunkt | Beskrivning |
|---|---|---|
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 accountawait 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 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 }// }// }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: { }, 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 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)'] } } })});API-gränser
| Autentisering | Burst-gräns | Jämn gräns |
|---|---|---|
| Privat API-nyckel | 75 förfrågningar/sek | 700 förfrågningar/min |
| OAuth | 150 förfrågningar/sek | 1 500 förfrågningar/min |
| Client API | 100 förfrågningar/sek | – |
| Bulkoperationer | 10 förfrågningar/sek | 100 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
| Problem | Orsak | Lösning |
|---|---|---|
400 Bad Request | Ogiltig eller saknad API-nyckel | Verifiera att den privata API-nyckeln är korrekt |
403 Forbidden | Otillräckligt scope | Kontrollera att API-nyckelns scopes matchar nödvändiga behörigheter |
revision-header saknas | Header ej satt | Lägg till revision: 2026-01-15 i alla förfrågningar |
| Profil hittades inte | Fel identifierare | Använd Klaviyo-profil-ID, inte e-post, för uppslag |
| Händelser synkar inte | Fel metriknamn | Matcha exakta metriknamn som definierats i Klaviyo |
429 Too Many Requests | Rate limit överskriden | Implementera exponentiell backoff, överväg OAuth för högre gränser |
| Format-fel i JSON:API | Fel content type | Använd application/vnd.api+json för Content-Type- och Accept-headrar |
Bästa praxis
- Använd JSON:API-format - Följ JSON:API-specifikationen för alla förfråge- och svarsdata
- Sätt revision-headern - Inkludera alltid
revision-headern med det senaste API-versionsdatumet - Använd sparse fieldsets - Begär endast nödvändiga fält med
?fields[profile]=email,first_nameför att minska svarsstorleken - Utnyttja relationer - Använd JSON:API-parametern
includeför att hämta relaterade resurser i en enda förfrågan - Använd cursor-paginering - Navigera stora resultatmängder med parametern
page[cursor] - Implementera bulkoperationer - Använd bulk-ändpunkter för batch-profilimporter och händelseskapande
- 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