---
title: "Коннектор Klaviyo"
description: "Полное руководство по интеграции Klaviyo для синхронизации профилей, событий, списков, сегментов и данных кампаний с Brevo через Tajo."
url: https://tajo.io/ru/docs/connectors/marketing/klaviyo/
markdown: https://tajo.io/ru/docs/connectors/marketing/klaviyo.md
lang: ru-RU
robots: noindex
---

Подайте заявку на ранний доступ

Укажите имя и рабочий адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

# Коннектор Klaviyo

Статус коннектора: В разработке Создаётся. Ещё не проверен.

| Поле источника | Поле назначения | Пример значения |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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

## Обзор

| Свойство | Значение |
| --- | --- |
| **Платформа** | Klaviyo |
| **Категория** | Marketing |
| **Сложность настройки** | Средняя |
| **Официальная интеграция** | Нет |
| **Синхронизируемые данные** | Профили, события, списки, сегменты, кампании |
| **Доступных скиллов** | 10 |
| **Стандарт API** | JSON: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`:

```bash
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 | Доступ | Описание |
| --- | --- | --- |
| `profiles` | Read/Full | Доступ к профилям контактов |
| `events` | Read/Full | Доступ к отслеживаемым событиям |
| `lists` | Read/Full | Доступ к спискам контактов |
| `segments` | Read | Доступ к сегментам |
| `campaigns` | Read | Доступ к данным кампаний |
| `metrics` | Read | Доступ к определениям метрик |
| `flows` | Read | Доступ к конфигурациям потоков |
| `catalogs` | Read | Доступ к каталогам товаров |

### Публичный API Key

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

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

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

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

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

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

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

```yaml
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:

```yaml
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:

```yaml
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

```javascript
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

```javascript
// Получение профилей 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": "jane@example.com",
//     "first_name": "Jane",
//     "last_name": "Kim",
//     "phone_number": "+15551234567",
//     "properties": { "lifetime_value": 450.00 }
//   }
// }
```

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

```javascript
// Трекинг события в 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: 'jane@example.com' } }
        },
        properties: {
          OrderId: 'ORD-1234',
          Value: 89.99,
          Items: [
            { ProductName: 'Widget Pro', Price: 89.99, Quantity: 1 }
          ]
        },
        value: 89.99
      }
    }
  })
});
```

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

```javascript
// Получение агрегированных данных метрик для отчётности
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 Key** | 75 запросов/сек | 700 запросов/мин |
| **OAuth** | 150 запросов/сек | 1 500 запросов/мин |
| **Client API** | 100 запросов/сек | Н/Д |
| **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 для запросов на удаление профилей

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

- [Коннектор Brevo](https://tajo.io/ru/docs/connectors/marketing/brevo)
- [Коннектор Google Ads](https://tajo.io/ru/docs/connectors/marketing/google-ads)
- [Коннектор Meta Ads](https://tajo.io/ru/docs/connectors/marketing/meta-ads)
- [Скилл синхронизации клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync)
