Konektor Klaviyo
Połącz Klaviyo z Brevo przez Tajo, aby migrować lub synchronizować dane marketingowe między platformami. Synchronizuj profile, zdarzenia, listy, segmenty, przepływy i dane kampanii dla ujednoliconej wielokanałowej strategii marketingowej.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | Klaviyo |
| Kategoria | Marketing |
| Poziom konfiguracji | Średni |
| Integracja oficjalna | Nie |
| Synchronizowane dane | Profile, Zdarzenia, Listy, Segmenty, Kampanie |
| Dostępne Skills | 10 |
| Standard API | JSON:API |
Funkcje
- Synchronizacja profili - Dwukierunkowa synchronizacja profili klientów między Klaviyo a Brevo
- Przekazywanie zdarzeń - Przekazuj śledzone zdarzenia Klaviyo do Brevo dla wyzwalaczy automatyzacji
- Migracja list - Synchronizuj listy Klaviyo z listami kontaktów Brevo
- Synchronizacja segmentów - Eksportuj segmenty Klaviyo jako listy lub segmenty Brevo
- Eksport danych przepływów - Pobierz dane wydajności przepływów dla analityki międzyplatformowej
- Synchronizacja kampanii - Koordynuj kampanie między kanałami Klaviyo i Brevo
- Synchronizacja katalogu - Dubluj katalogi produktów między platformami
- Zarządzanie kuponami - Synchronizuj kody kuponów i dane użycia
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Konto Klaviyo z dostępem do API
- Prywatny klucz API z odpowiednimi zakresami
- Publiczny klucz API Klaviyo (6-znakowy ID firmy)
- Konto Brevo z dostępem do API
- Konto Tajo z poświadczeniami API
Uwierzytelnianie
Prywatny klucz API
Klaviyo używa prywatnych kluczy API z dostępem z zakresem dla uwierzytelniania po stronie serwera. Ustaw klucz w nagłówku Authorization:
curl https://a.klaviyo.com/api/profiles/ \ -H "Authorization: Klaviyo-API-Key your-private-api-key" \ -H "revision: 2026-01-15"Zakresy kluczy API
Konfiguruj zakresy podczas tworzenia prywatnego klucza:
| Zakres | Dostęp | Opis |
|---|---|---|
profiles | Odczyt/Pełny | Dostęp do profili kontaktów |
events | Odczyt/Pełny | Dostęp do śledzonych zdarzeń |
lists | Odczyt/Pełny | Dostęp do list kontaktów |
segments | Odczyt | Dostęp do segmentów |
campaigns | Odczyt | Dostęp do danych kampanii |
metrics | Odczyt | Dostęp do definicji metryk |
flows | Odczyt | Dostęp do konfiguracji przepływów |
catalogs | Odczyt | Dostęp do katalogów produktów |
Publiczny klucz API
Dla śledzenia po stronie klienta używaj 6-znakowego ID firmy:
curl -X POST "https://a.klaviyo.com/client/events/?company_id=COMPANY_ID" \ -H "Content-Type: application/json" \ -d '{"data": {...}}'OAuth (integracje partnerskie)
Klaviyo obsługuje OAuth dla partnerów technologicznych, oferując lepsze bezpieczeństwo i limity szybkości:
curl https://a.klaviyo.com/api/profiles/ \ -H "Authorization: Bearer YOUR_OAUTH_TOKEN" \ -H "revision: 2026-01-15"Konfiguracja
Podstawowa konfiguracja
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: 22Mapowanie profili
Mapuj właściwości profili Klaviyo na atrybuty kontaktów 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_PREFMapowanie zdarzeń
Mapuj metryki Klaviyo na zdarzenia 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"Endpointy API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/profiles/ | Lista profili |
POST | /api/profiles/ | Utwórz profil |
PATCH | /api/profiles/{id}/ | Zaktualizuj profil |
POST | /api/profile-merge/ | Scal zduplikowane profile |
GET | /api/events/ | Lista zdarzeń |
POST | /api/events/ | Utwórz zdarzenie |
GET | /api/lists/ | Lista wszystkich list |
POST | /api/lists/{id}/relationships/profiles/ | Dodaj profile do listy |
GET | /api/segments/ | Lista segmentów |
GET | /api/campaigns/ | Lista kampanii |
GET | /api/flows/ | Lista przepływów |
GET | /api/metrics/ | Lista metryk |
POST | /api/metric-aggregates/ | Zapytaj agregaty metryk |
GET | /api/catalog-items/ | Lista elementów katalogu |
Przykłady kodu
Inicjalizacja konektora 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});Synchronizuj profile do 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 }// }// }Utwórz zdarzenie
// 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 } } })});Zapytanie o agregaty metryk
// 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)'] } } })});Limity API
| Uwierzytelnianie | Limit burst | Limit stały |
|---|---|---|
| Prywatny klucz API | 75 żądań/sek | 700 żądań/min |
| OAuth | 150 żądań/sek | 1 500 żądań/min |
| API klienta | 100 żądań/sek | Nie dotyczy |
| Operacje zbiorcze | 10 żądań/sek | 100 żądań/min |
Wymagany nagłówek wersji API
Wszystkie żądania Klaviyo API wymagają nagłówka revision ustawionego na prawidłową datę wersji API (np. 2026-01-15). Żądania bez tego nagłówka zostaną odrzucone.
Rozwiązywanie problemów
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
400 Bad Request | Nieprawidłowy lub brakujący klucz API | Zweryfikuj, czy prywatny klucz API jest prawidłowy |
403 Forbidden | Niewystarczający zakres | Sprawdź zakresy klucza API odpowiadające wymaganym uprawnieniom |
Brakujący nagłówek revision | Nagłówek nie ustawiony | Dodaj revision: 2026-01-15 do wszystkich żądań |
| Profil nie znaleziony | Zły identyfikator | Używaj ID profilu Klaviyo, nie e-maila, dla wyszukiwań |
| Zdarzenia nie synchronizują się | Zła nazwa metryki | Dopasuj dokładne nazwy metryk zdefiniowane w Klaviyo |
429 Too Many Requests | Przekroczony limit szybkości | Wdrożyj wykładnicze wycofanie, rozważ OAuth dla wyższych limitów |
| Błędy formatu JSON:API | Zły typ treści | Używaj application/vnd.api+json dla nagłówków Content-Type i Accept |
Najlepsze praktyki
- Używaj formatu JSON:API - Przestrzegaj specyfikacji JSON:API dla wszystkich ładunków żądań i odpowiedzi
- Ustaw nagłówek wersji - Zawsze dołączaj nagłówek
revisionz najnowszą datą wersji API - Używaj sparse fieldsets - Żądaj tylko potrzebnych pól z
?fields[profile]=email,first_name, aby zmniejszyć rozmiar ładunku - Korzystaj z relacji - Używaj parametru
includeJSON:API do pobierania powiązanych zasobów w jednym żądaniu - Używaj paginacji kursorowej - Nawiguj duże zestawy wyników z parametrem
page[cursor] - Wdrożyj operacje zbiorcze - Używaj endpointów zbiorczych dla masowych importów profili i tworzenia zdarzeń
- Używaj OAuth dla wyższych limitów - Uwierzytelnianie OAuth zapewnia 2x wyższe limity szybkości niż klucze prywatne
Bezpieczeństwo
- Zakresy prywatnego klucza API - Szczegółowa kontrola dostępu Odczyt/Pełny na typ zasobu
- Obsługa OAuth - Bezpieczne uwierzytelnianie oparte na tokenach dla integracji partnerskich
- Izolacja klucza publicznego - Klucze po stronie klienta ograniczone do operacji tylko do tworzenia
- TLS 1.2+ - Cała komunikacja API szyfrowana w tranzycie
- SOC 2 Type II - Klaviyo posiada certyfikat SOC 2 Type II
- Zgodność z RODO - Data Privacy API dla żądań usunięcia profilu