Коннектор Klaviyo

Подключите Klaviyo к Brevo через Tajo для миграции или синхронизации маркетинговых данных между платформами. Синхронизируйте профили, события, списки, сегменты, потоки и данные кампаний для единой многоканальной маркетинговой стратегии.

Обзор

СвойствоЗначение
ПлатформаKlaviyo
КатегорияMarketing
Сложность настройкиСредняя
Официальная интеграцияНет
Синхронизируемые данныеПрофили, события, списки, сегменты, кампании
Доступных скиллов10
Стандарт APIJSON:API

Возможности

  • Синхронизация профилей, двунаправленная синхронизация профилей клиентов между Klaviyo и Brevo
  • Пересылка событий, пересылка отслеживаемых событий Klaviyo в Brevo для триггеров автоматизации
  • Миграция списков, синхронизация списков Klaviyo в списки контактов Brevo
  • Синхронизация сегментов, экспорт сегментов Klaviyo как списков или сегментов Brevo
  • Экспорт данных потоков, получение данных об эффективности потоков для кросс-платформенной аналитики
  • Синхронизация кампаний, координация кампаний между каналами Klaviyo и Brevo
  • Синхронизация каталога, зеркалирование каталогов товаров между платформами
  • Управление купонами, синхронизация промокодов и данных об их использовании

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  1. Аккаунт Klaviyo с доступом к API
  2. Приватный API-ключ с необходимыми scope
  3. Публичный API-ключ Klaviyo (6-символьный company ID)
  4. Аккаунт Brevo с доступом к API
  5. Аккаунт Tajo с API-учётными данными

Аутентификация

Приватный API Key

Klaviyo использует приватные API-ключи с ограниченным доступом для серверной аутентификации. Укажите ключ в заголовке 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

Настройте scope при создании приватного ключа:

ScopeДоступОписание
profilesRead/FullДоступ к профилям контактов
eventsRead/FullДоступ к отслеживаемым событиям
listsRead/FullДоступ к спискам контактов
segmentsReadДоступ к сегментам
campaignsReadДоступ к данным кампаний
metricsReadДоступ к определениям метрик
flowsReadДоступ к конфигурациям потоков
catalogsReadДоступ к каталогам товаров

Публичный API Key

Для клиентского трекинга используйте 6-символьный company ID:

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

OAuth (партнёрские интеграции)

Klaviyo поддерживает OAuth для технических партнёров, обеспечивая повышенную безопасность и лимиты скорости:

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

Конфигурация

Базовая настройка

connectors:
klaviyo:
enabled: true
private_api_key: "your-klaviyo-private-key"
public_api_key: "XXXXXX"
api_revision: "2026-01-15"
# Параметры синхронизации данных
sync:
profiles: true
events: true
lists: true
segments: true
catalogs: false
# Назначение листов Brevo
lists:
all_contacts: 20
subscribers: 21
high_value: 22

Сопоставление профилей

Сопоставьте свойства профилей Klaviyo с атрибутами контактов 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
# Пользовательские свойства
lifetime_value: LTV
total_orders: ORDER_COUNT
last_order_date: LAST_ORDER_DATE
preferred_channel: CHANNEL_PREF

Сопоставление событий

Сопоставление метрик Klaviyo с событиями 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"

Эндпоинты API

МетодЭндпоинтОписание
GET/api/profiles/Список профилей
POST/api/profiles/Создание профиля
PATCH/api/profiles/{id}/Обновление профиля
POST/api/profile-merge/Объединение дублирующихся профилей
GET/api/events/Список событий
POST/api/events/Создание события
GET/api/lists/Список всех списков
POST/api/lists/{id}/relationships/profiles/Добавление профилей в список
GET/api/segments/Список сегментов
GET/api/campaigns/Список кампаний
GET/api/flows/Список потоков
GET/api/metrics/Список метрик
POST/api/metric-aggregates/Запрос агрегированных метрик
GET/api/catalog-items/Список элементов каталога

Примеры кода

Инициализация коннектора Klaviyo

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Подключение аккаунта Klaviyo
await tajo.connectors.connect('klaviyo', {
privateApiKey: process.env.KLAVIYO_PRIVATE_KEY,
publicApiKey: process.env.KLAVIYO_PUBLIC_KEY
});

Синхронизация профилей в Brevo

// Получение профилей Klaviyo и синхронизация с 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();
// Каждый профиль соответствует формату JSON:API
// {
// "type": "profile",
// "id": "01ABCDEF",
// "attributes": {
// "email": "[email protected]",
// "first_name": "Jane",
// "last_name": "Kim",
// "phone_number": "+15551234567",
// "properties": { "lifetime_value": 450.00 }
// }
// }

Создание события

// Трекинг события в Klaviyo (пересылается в Brevo через 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
}
}
})
});

Запрос агрегированных метрик

// Получение агрегированных данных метрик для отчётности
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)']
}
}
})
});

Ограничения скорости

АутентификацияBurst-лимитУстойчивый лимит
Приватный API Key75 запросов/сек700 запросов/мин
OAuth150 запросов/сек1 500 запросов/мин
Client API100 запросов/секН/Д
Bulk-операции10 запросов/сек100 запросов/мин

Обязательный заголовок revision

Все запросы к Klaviyo API требуют заголовка revision с указанием допустимой даты версии API (например, 2026-01-15). Запросы без этого заголовка будут отклонены.

Устранение неполадок

ПроблемаПричинаРешение
400 Bad RequestНедействительный или отсутствующий API-ключПроверьте правильность приватного API-ключа
403 ForbiddenНедостаточно scopeПроверьте соответствие scope API-ключа необходимым разрешениям
Отсутствует заголовок revisionЗаголовок не установленДобавьте revision: 2026-01-15 ко всем запросам
Профиль не найденНеверный идентификаторИспользуйте ID профиля Klaviyo, а не email, для поиска
События не синхронизируютсяНеверное имя метрикиИспользуйте точные имена метрик, как определены в Klaviyo
429 Too Many RequestsПревышен лимит скоростиРеализуйте экспоненциальную задержку; рассмотрите OAuth для более высоких лимитов
Ошибки формата JSON:APIНеверный тип контентаИспользуйте application/vnd.api+json в заголовках Content-Type и Accept

Лучшие практики

  1. Используйте формат JSON:API, следуйте спецификации JSON:API для всех полезных нагрузок запросов и ответов
  2. Устанавливайте заголовок revision, всегда включайте заголовок revision с актуальной датой версии API
  3. Используйте sparse fieldsets, запрашивайте только нужные поля с ?fields[profile]=email,first_name для уменьшения полезной нагрузки
  4. Используйте relationships, применяйте параметр include JSON:API для получения связанных ресурсов в одном запросе
  5. Используйте cursor pagination, навигируйте по большим наборам результатов с параметром page[cursor]
  6. Реализуйте bulk-операции, используйте bulk-эндпоинты для пакетного импорта профилей и создания событий
  7. Используйте OAuth для более высоких лимитов, аутентификация через OAuth обеспечивает в 2 раза более высокие лимиты скорости по сравнению с приватными ключами

Безопасность

  • Scope приватного API Key, гранулярный контроль доступа Read/Full на тип ресурса
  • Поддержка OAuth, безопасная аутентификация на основе токенов для партнёрских интеграций
  • Изоляция публичного ключа, клиентские ключи ограничены операциями создания
  • TLS 1.2+, все API-коммуникации зашифрованы при передаче
  • SOC 2 Type II, Klaviyo сертифицирован по SOC 2 Type II
  • Соответствие GDPR, Data Privacy API для запросов на удаление профилей

Связанные ресурсы

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-ассистент

Привет! Спрашивайте меня о документации.