Conector Klaviyo
Conectați Klaviyo la Brevo prin Tajo pentru a migra sau sincroniza datele de marketing între platforme. Sincronizați profiluri, evenimente, liste, segmente, fluxuri și date de campanie pentru o strategie de marketing multi-canal unificată.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Klaviyo |
| Categorie | Marketing |
| Complexitate configurare | Medie |
| Integrare oficială | Nu |
| Date sincronizate | Profiluri, Evenimente, Liste, Segmente, Campanii |
| Skilluri disponibile | 10 |
| Standard API | JSON:API |
Funcționalități
- Sincronizare profiluri - Sincronizare bidirecțională a profilurilor clienților între Klaviyo și Brevo
- Redirecționare evenimente - Redirecționați evenimentele urmărite Klaviyo la Brevo pentru declanșatoare de automatizare
- Migrare liste - Sincronizați listele Klaviyo la listele de contacte Brevo
- Sincronizare segmente - Exportați segmentele Klaviyo ca liste sau segmente Brevo
- Export date flux - Extrageți date de performanță ale fluxurilor pentru analize cross-platformă
- Sincronizare campanii - Coordonați campaniile între canalele Klaviyo și Brevo
- Sincronizare catalog - Oglindirea cataloagelor de produse între platforme
- Gestionare cupoane - Sincronizați codurile de cupon și datele de utilizare
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un cont Klaviyo cu acces API
- O Cheie API privată cu scope-uri corespunzătoare
- Cheia API publică Klaviyo (ID companie din 6 caractere)
- Un cont Brevo cu acces API
- Un cont Tajo cu credențiale API
Autentificare
Cheie API privată
Klaviyo utilizează chei API private cu acces cu scope pentru autentificarea server-side. Setați cheia în antetul Authorization:
curl https://a.klaviyo.com/api/profiles/ \ -H "Authorization: Klaviyo-API-Key your-private-api-key" \ -H "revision: 2026-01-15"Scope-uri cheie API
Configurați scope-urile la crearea cheii private:
| Scope | Acces | Descriere |
|---|---|---|
profiles | Citire/Complet | Acces profiluri contacte |
events | Citire/Complet | Acces evenimente urmărite |
lists | Citire/Complet | Acces liste contacte |
segments | Citire | Acces segmente |
campaigns | Citire | Acces date campanii |
metrics | Citire | Acces definiții metrici |
flows | Citire | Acces configurații fluxuri |
catalogs | Citire | Acces cataloage produse |
Cheie API publică
Pentru urmărire client-side, utilizați ID-ul companiei din 6 caractere:
curl -X POST "https://a.klaviyo.com/client/events/?company_id=COMPANY_ID" \ -H "Content-Type: application/json" \ -d '{"data": {...}}'OAuth (Integrări parteneri)
Klaviyo suportă OAuth pentru parteneri tech, oferind securitate și limite de rată îmbunătățite:
curl https://a.klaviyo.com/api/profiles/ \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN" \ -H "revision: 2026-01-15"Configurare
Configurare de bază
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: 22Mapare profiluri
Mapați proprietățile profilurilor Klaviyo la atributele de contact Brevo:
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_PREFMapare evenimente
Mapați metricile Klaviyo la evenimentele Brevo:
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"Puncte finale API
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /api/profiles/ | Listează profiluri |
POST | /api/profiles/ | Creează un profil |
PATCH | /api/profiles/{id}/ | Actualizează un profil |
POST | /api/profile-merge/ | Combină profiluri duplicate |
GET | /api/events/ | Listează evenimente |
POST | /api/events/ | Creează un eveniment |
GET | /api/lists/ | Listează toate listele |
POST | /api/lists/{id}/relationships/profiles/ | Adaugă profiluri la o listă |
GET | /api/segments/ | Listează segmentele |
GET | /api/campaigns/ | Listează campaniile |
GET | /api/flows/ | Listează fluxurile |
GET | /api/metrics/ | Listează metricile |
POST | /api/metric-aggregates/ | Interogați agregate de metrici |
GET | /api/catalog-items/ | Listează articolele din catalog |
Exemple de cod
Inițializare conector Klaviyo
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});Sincronizare profiluri la 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 }// }// }Creare eveniment
// 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 } } })});Interogare agregate de metrici
// 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)'] } } })});Limite de rată
| Autentificare | Limită burst | Limită stabilă |
|---|---|---|
| Cheie API privată | 75 cereri/sec | 700 cereri/min |
| OAuth | 150 cereri/sec | 1.500 cereri/min |
| Client API | 100 cereri/sec | N/A |
| Operații în bloc | 10 cereri/sec | 100 cereri/min |
Antet de revizuire API obligatoriu
Toate cererile API Klaviyo necesită antetul revision setat la o dată validă a versiunii API (ex: 2026-01-15). Cererile fără acest antet vor fi respinse.
Depanare
| Problemă | Cauză | Soluție |
|---|---|---|
400 Bad Request | Cheie API invalidă sau lipsă | Verificați că cheia API privată este corectă |
403 Forbidden | Scope insuficient | Verificați că scope-urile cheii API corespund permisiunilor necesare |
Antet revision lipsă | Antet nesetat | Adăugați revision: 2026-01-15 la toate cererile |
| Profil negăsit | Identificator greșit | Utilizați ID-ul profilului Klaviyo, nu e-mailul, pentru căutări |
| Evenimente nesincronizate | Nume metric greșit | Potriviți exact numele metricilor definite în Klaviyo |
429 Too Many Requests | Limită de rată depășită | Implementați backoff exponențial, luați în considerare OAuth pentru limite mai mari |
| Erori format JSON:API | Tip de conținut greșit | Utilizați application/vnd.api+json pentru antetele Content-Type și Accept |
Bune practici
- Utilizați formatul JSON:API - Urmați specificația JSON:API pentru toate payload-urile de cerere și răspuns
- Setați antetul de revizuire - Includeți întotdeauna antetul
revisioncu cea mai recentă dată a versiunii API - Utilizați câmpuri sparse - Solicitați doar câmpurile necesare cu
?fields[profile]=email,first_namepentru a reduce dimensiunea payload-ului - Valorificați relațiile - Utilizați parametrul
includeJSON:API pentru a prelua resursele conexe într-o singură cerere - Utilizați paginarea cu cursor - Navigați seturi de rezultate mari cu parametrul
page[cursor] - Implementați operații în bloc - Utilizați punctele finale bulk pentru importuri de profiluri în lot și crearea de evenimente
- Utilizați OAuth pentru limite mai mari - Autentificarea OAuth oferă limite de rată de 2x mai mari față de cheile private
Securitate
- Scope-uri cheie API privată - Control acces granular Citire/Complet per tip de resursă
- Suport OAuth - Autentificare securizată bazată pe token pentru integrările partenerilor
- Izolare cheie publică - Cheile client limitate la operații numai de creare
- TLS 1.2+ - Toate comunicațiile API criptate în tranzit
- SOC 2 Tip II - Klaviyo este certificat SOC 2 Tip II
- Conformitate GDPR - Data Privacy API pentru cereri de ștergere profiluri