Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Konektor Klaviyo

Hubungkan Klaviyo ke Brevo melalui Tajo untuk memigrasikan atau menyinkronkan data marketing antarplatform. Sinkronkan profil, event, daftar, segmen, flow, dan data kampanye demi strategi marketing multikanal yang terpadu.

Ikhtisar

PropertiNilai
PlatformKlaviyo
KategoriMarketing
Kompleksitas setupSedang
Integrasi resmiTidak
Data yang disinkronkanProfil, event, daftar, segmen, kampanye
Skill tersedia10
Standar APIJSON:API

Fitur

  • Sinkronisasi profil - Sinkronisasi dua arah profil pelanggan antara Klaviyo dan Brevo
  • Penerusan event - Teruskan event yang dilacak Klaviyo ke Brevo sebagai pemicu otomatisasi
  • Migrasi daftar - Sinkronkan daftar Klaviyo ke daftar kontak Brevo
  • Sinkronisasi segmen - Ekspor segmen Klaviyo sebagai daftar atau segmen Brevo
  • Ekspor data flow - Tarik data performa flow untuk analitik lintas platform
  • Sinkronisasi kampanye - Koordinasikan kampanye di kanal Klaviyo dan Brevo
  • Sinkronisasi katalog - Cerminkan katalog produk antarplatform
  • Pengelolaan kupon - Sinkronkan kode kupon dan data penggunaannya

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  1. Akun Klaviyo dengan akses API
  2. Private API Key dengan scope yang sesuai
  3. Public API Key Klaviyo Anda (company ID 6 karakter)
  4. Akun Brevo dengan akses API
  5. Akun Tajo dengan kredensial API

Autentikasi

Private API key

Klaviyo memakai private API key dengan akses ber-scope untuk autentikasi sisi server. Setel key tersebut pada header Authorization:

Terminal window
curl https://a.klaviyo.com/api/profiles/ \
-H "Authorization: Klaviyo-API-Key your-private-api-key" \
-H "revision: 2026-01-15"

Scope API key

Konfigurasikan scope saat membuat private key Anda:

ScopeAksesDeskripsi
profilesRead/FullAkses profil kontak
eventsRead/FullAkses event yang dilacak
listsRead/FullAkses daftar kontak
segmentsReadAkses segmen
campaignsReadAkses data kampanye
metricsReadAkses definisi metrik
flowsReadAkses konfigurasi flow
catalogsReadAkses katalog produk

Public API key

Untuk pelacakan sisi klien, gunakan company ID 6 karakter:

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

OAuth (integrasi partner)

Klaviyo mendukung OAuth untuk tech partner, dengan keamanan dan batas rate yang lebih baik:

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

Konfigurasi

Setup dasar

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

Pemetaan profil

Petakan properti profil Klaviyo ke atribut kontak 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_PREF

Pemetaan event

Petakan metrik Klaviyo ke event 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"

Endpoint API

MethodEndpointDeskripsi
GET/api/profiles/Menampilkan profil
POST/api/profiles/Membuat sebuah profil
PATCH/api/profiles/{id}/Memperbarui sebuah profil
POST/api/profile-merge/Menggabungkan profil duplikat
GET/api/events/Menampilkan event
POST/api/events/Membuat sebuah event
GET/api/lists/Menampilkan seluruh daftar
POST/api/lists/{id}/relationships/profiles/Menambahkan profil ke sebuah daftar
GET/api/segments/Menampilkan segmen
GET/api/campaigns/Menampilkan kampanye
GET/api/flows/Menampilkan flow
GET/api/metrics/Menampilkan metrik
POST/api/metric-aggregates/Mengueri agregat metrik
GET/api/catalog-items/Menampilkan item katalog

Contoh kode

Inisialisasi konektor Klaviyo

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

Sinkronisasi profil ke 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 }
// }
// }

Membuat sebuah event

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

Kueri agregat metrik

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

Batas rate

AutentikasiBatas burstBatas steady
Private API Key75 permintaan/dtk700 permintaan/mnt
OAuth150 permintaan/dtk1.500 permintaan/mnt
Client API100 permintaan/dtkN/A
Operasi bulk10 permintaan/dtk100 permintaan/mnt

Header revision wajib

Seluruh permintaan API Klaviyo membutuhkan header revision yang disetel ke tanggal versi API yang valid (misalnya 2026-01-15). Permintaan tanpa header ini akan ditolak.

Pemecahan masalah

MasalahPenyebabSolusi
400 Bad RequestAPI key tidak valid atau tidak adaPastikan private API key sudah benar
403 ForbiddenScope tidak mencukupiPeriksa apakah scope API key sesuai dengan izin yang dibutuhkan
Header revision hilangHeader belum disetelTambahkan revision: 2026-01-15 pada seluruh permintaan
Profil tidak ditemukanIdentifier keliruGunakan profile ID Klaviyo, bukan email, untuk pencarian
Event tidak tersinkronNama metrik keliruCocokkan nama metrik persis seperti yang didefinisikan di Klaviyo
429 Too Many RequestsBatas rate terlampauiTerapkan exponential backoff, pertimbangkan OAuth untuk batas lebih tinggi
Error format JSON:APIContent type keliruGunakan application/vnd.api+json untuk header Content-Type dan Accept

Praktik terbaik

  1. Gunakan format JSON:API - Ikuti spesifikasi JSON:API untuk seluruh payload permintaan dan respons
  2. Setel header revision - Selalu sertakan header revision dengan tanggal versi API terbaru
  3. Gunakan sparse fieldset - Minta hanya field yang dibutuhkan dengan ?fields[profile]=email,first_name untuk memperkecil ukuran payload
  4. Manfaatkan relasi - Gunakan parameter include JSON:API untuk mengambil resource terkait dalam satu permintaan
  5. Gunakan paginasi kursor - Telusuri kumpulan hasil besar dengan parameter page[cursor]
  6. Terapkan operasi bulk - Gunakan endpoint bulk untuk impor profil dan pembuatan event secara batch
  7. Gunakan OAuth untuk batas lebih tinggi - Autentikasi OAuth memberi batas rate 2x lebih tinggi dibanding private key

Keamanan

  • Scope private API key - Kontrol akses granular Read/Full per tipe resource
  • Dukungan OAuth - Autentikasi berbasis token yang aman untuk integrasi partner
  • Isolasi public key - Key sisi klien dibatasi hanya untuk operasi pembuatan
  • TLS 1.2+ - Seluruh komunikasi API dienkripsi saat transit
  • SOC 2 Type II - Klaviyo tersertifikasi SOC 2 Type II
  • Kepatuhan GDPR - Data Privacy API untuk permintaan penghapusan profil

Sumber daya terkait

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.