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

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

Обзор

СвойствоЗначение
ПлатформаCustomer.io
КатегорияMarketing
Сложность настройкиСредняя
Официальная интеграцияНет
Синхронизируемые данныеПользователи, события, кампании, сегменты
Используемые APITrack API, App API, Pipelines API
АутентификацияSite ID + API Key / App API Key
Базовые URLtrack.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.

Terminal window
# 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": "[email protected]"}'

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

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

Terminal window
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

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

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

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

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:

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

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

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}PUTTrackСоздание или обновление пользователя
/api/v1/customers/{id}/eventsPOSTTrackТрекинг события пользователя
/api/v1/eventsPOSTTrackТрекинг анонимных событий
/api/v2/entityPOSTTrackСоздание или обновление пользователей/объектов (Pipelines)
/v1/campaignsGETAppСписок кампаний
/v1/campaigns/{id}/metricsGETAppМетрики эффективности кампании
/v1/segmentsGETAppСписок сегментов
/v1/segments/{id}/membershipGETAppУчастники сегмента
/v1/customers/{id}/attributesGETAppАтрибуты клиента
/v1/customers/{id}/activitiesGETAppЛог активности клиента

Примеры кода

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

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

// Инкрементальная синхронизация пользователей 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
// }

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

// Пересылка событий из 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');
});

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

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 API10 запросов/секНа API-ключ
Pipelines API100 запросов/секРекомендуется для массовых данных
Batch endpoint1 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Уменьшите частоту опроса данных кампаний

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

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

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

Terminal window
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-подписей

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

Subscribe to updates

developer-docs

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

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

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