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

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

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

# Коннектор Customer.io

Статус коннектора: Запланирован Ещё не создан. Сегодня Tajo не запускает этот коннектор.

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

Подключите платформу рассылок Customer.io к Brevo для единых данных о клиентах, кросс-платформенной координации кампаний и консолидированной аналитики вовлечённости.

## Обзор

| Свойство | Значение |
| --- | --- |
| **Платформа** | Customer.io |
| **Категория** | Marketing |
| **Сложность настройки** | Средняя |
| **Официальная интеграция** | Нет |
| **Синхронизируемые данные** | Пользователи, события, кампании, сегменты |
| **Используемые API** | Track API, App API, Pipelines API |
| **Аутентификация** | Site ID + API Key / App API Key |
| **Базовые URL** | `track.customer.io`, `api.customer.io` |

## Возможности

- **Синхронизация пользователей**, двунаправленная синхронизация профилей клиентов с контактами Brevo
- **Пересылка событий**, трекинг поведенческих событий и пересылка в Brevo для триггеров автоматизации
- **Аналитика кампаний**, синхронизация метрик эффективности кампаний для единой отчётности
- **Данные рабочих процессов**, отражение состояний рабочих процессов Customer.io в атрибутах контактов Brevo
- **Репликация сегментов**, репликация сегментов Customer.io как списков Brevo
- **Синхронизация объектов**, синхронизация не-пользовательских объектов и данных о связях

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

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

1. Аккаунт Customer.io с доступом к API
2. Site ID и Track API Key (в Settings > API Credentials)
3. App API Key для чтения данных кампаний и сегментов
4. Аккаунт Brevo с доступом к API
5. Аккаунт Tajo с активной подпиской

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

Customer.io использует два отдельных API с разными методами аутентификации:

### Track API (поведенческие данные)

Используется для отправки пользователей, событий и данных устройств. Аутентификация через Site ID и API Key по Basic Auth.

```bash
# Basic Auth: Site ID как имя пользователя, API Key как пароль
curl -X POST https://track.customer.io/api/v1/customers/user123 \
  -u "$SITE_ID:$API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'
```

### App API (данные для чтения)

Используется для получения кампаний, сегментов и данных клиентов. Аутентификация через Bearer-токен.

```bash
curl -X GET https://api.customer.io/v1/campaigns \
  -H "Authorization: Bearer $APP_API_KEY"
```

Разделение API Keys

Track API Key и App API Key, это разные учётные данные. Track API Key используется для записи данных, а App API Key, для чтения. Оба необходимы для полной интеграции с Tajo.

### Подключение к Tajo

```bash
tajo connectors install customerio \
  --site-id $CIO_SITE_ID \
  --track-api-key $CIO_TRACK_API_KEY \
  --app-api-key $CIO_APP_API_KEY
```

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

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

```yaml
connectors:
  customerio:
    enabled: true
    region: "us"  # или "eu" для дата-центра в ЕС

    sync:
      people: true
      events: true
      campaigns: true
      segments: true
      objects: false

    lists:
      all_contacts: 12
      active_subscribers: 13
      churned: 14
```

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

Сопоставьте атрибуты пользователей Customer.io с атрибутами контактов Brevo:

```yaml
field_mapping:
  # Стандартные поля
  id: CIO_ID
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone: SMS

  # Метрики вовлечённости
  created_at: SIGNUP_DATE
  last_activity: LAST_ACTIVE
  plan: PLAN_NAME

  # Пользовательские атрибуты
  company: COMPANY
  role: JOB_TITLE
  mrr: MONTHLY_REVENUE
  lifecycle_stage: LIFECYCLE_STAGE
```

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

```yaml
event_mapping:
  # Событие Customer.io -> Событие Brevo
  purchase_completed: ORDER_PLACED
  subscription_started: SUBSCRIPTION_START
  feature_activated: FEATURE_USED
  support_ticket_opened: SUPPORT_REQUEST
```

## Эндпоинты API

Tajo интегрируется со следующими эндпоинтами Customer.io API:

| Эндпоинт | Метод | API | Назначение |
| --- | --- | --- | --- |
| `/api/v1/customers/{id}` | PUT | Track | Создание или обновление пользователя |
| `/api/v1/customers/{id}/events` | POST | Track | Трекинг события пользователя |
| `/api/v1/events` | POST | Track | Трекинг анонимных событий |
| `/api/v2/entity` | POST | Track | Создание или обновление пользователей/объектов (Pipelines) |
| `/v1/campaigns` | GET | App | Список кампаний |
| `/v1/campaigns/{id}/metrics` | GET | App | Метрики эффективности кампании |
| `/v1/segments` | GET | App | Список сегментов |
| `/v1/segments/{id}/membership` | GET | App | Участники сегмента |
| `/v1/customers/{id}/attributes` | GET | App | Атрибуты клиента |
| `/v1/customers/{id}/activities` | GET | App | Лог активности клиента |

## Примеры кода

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

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.connectors.connect('customerio', {
  siteId: process.env.CIO_SITE_ID,
  trackApiKey: process.env.CIO_TRACK_API_KEY,
  appApiKey: process.env.CIO_APP_API_KEY,
  region: 'us'
});
```

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

```javascript
// Инкрементальная синхронизация пользователей Customer.io
await tajo.connectors.sync('customerio', {
  type: 'incremental',
  resources: ['people'],
  since: '2024-01-01',
  batchSize: 100
});

const status = await tajo.connectors.status('customerio');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T14:20:00Z',
//   peopleCount: 32500,
//   campaignsTracked: 18,
//   eventsProcessed: 87000
// }
```

### Пересылка событий

```javascript
// Пересылка событий из reporting webhook Customer.io в Brevo
app.post('/webhooks/customerio', async (req, res) => {
  const events = req.body;

  for (const event of events) {
    await tajo.connectors.handleEvent('customerio', {
      type: event.metric,
      payload: {
        customerId: event.data.customer_id,
        campaignId: event.data.campaign_id,
        timestamp: event.timestamp
      }
    });
  }

  res.status(200).send('OK');
});
```

### Экспорт сегмента

```javascript
const result = await tajo.connectors.exportSegment('customerio', {
  segmentId: 42,
  targetList: 13,
  includeAttributes: ['email', 'first_name', 'last_name', 'plan']
});

console.log(`Exported ${result.count} people to Brevo list 13`);
```

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

Customer.io устанавливает разные ограничения скорости для каждого API:

| API | Лимит | Примечания |
| --- | --- | --- |
| **Track API** | ~100 запросов/сек | На рабочее пространство |
| **App API** | 10 запросов/сек | На API-ключ |
| **Pipelines API** | 100 запросов/сек | Рекомендуется для массовых данных |
| **Batch endpoint** | 1 000 пользователей в запросе | Максимум 500 КБ |

Используйте batch-эндпоинты

Для крупных синхронизаций Tajo использует batch-эндпоинт Customer.io для отправки до 1 000 пользователей в запросе, что значительно снижает объём API-вызовов.

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

### Частые проблемы

| Проблема | Причина | Решение |
| --- | --- | --- |
| 401 Unauthorized | Недействительный Site ID или API-ключ | Проверьте учётные данные в Customer.io Settings > API |
| Пользователи не синхронизируются | Отсутствует идентификатор | Убедитесь, что у каждого пользователя есть `id` или `email` |
| События не отслеживаются | Неверный тип API-ключа | Используйте Track API Key для событий, а не App API Key |
| Нет доступа к данным ЕС | Неверный регион | Установите регион `eu` для рабочих пространств ЕС |
| Ошибки лимита скорости | Слишком много вызовов App API | Уменьшите частоту опроса данных кампаний |

### Режим отладки

```yaml
connectors:
  customerio:
    debug: true
    log_level: verbose
    log_api_calls: true
```

### Проверка подключения

```bash
tajo connectors test customerio
# ✓ Track API connection successful
# ✓ App API connection successful
# ✓ People accessible
# ✓ Campaigns readable
# ✓ Segments listable
```

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

1. **Используйте Pipelines API для массовых данных**, новый Pipelines API оптимизирован для высокообъёмной загрузки
2. **Настройте reporting webhooks**, пересылайте события email Customer.io в Tajo в реальном времени
3. **Маппируйте этапы жизненного цикла**, синхронизируйте членство в сегментах Customer.io с атрибутами Brevo
4. **Используйте согласованные идентификаторы**, согласуйте поля `id` в Customer.io и Brevo
5. **Синхронизируйте инкрементально**, избегайте полных экспортов; используйте временные метки `last_activity`
6. **Мониторьте доставку вебхуков**, настройте оповещения о неудачных доставках

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

- **Basic Auth**, аутентификация Track API через Site ID и API Key
- **Bearer-токен**, App API использует токены OAuth-стиля
- **Только HTTPS**, все API-коммуникации зашифрованы через TLS 1.2+
- **Региональные дата-центры**, опция дата-центра ЕС для соответствия GDPR
- **Зашифрованное хранение**, все учётные данные зашифрованы при хранении в Tajo
- **Подписи вебхуков**, верификация полезных нагрузок вебхуков с помощью HMAC-подписей

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

- [Коннектор Braze](https://tajo.io/ru/docs/connectors/marketing/braze)
- [Коннектор Iterable](https://tajo.io/ru/docs/connectors/marketing/iterable)
- [Скилл синхронизации клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/ru/docs/contact-management)
