Customer.io конектор
Свържи своята messaging платформа Customer.io с Brevo за унифицирани клиентски данни, координация на кампании между платформи и консолидирана аналитика за ангажираност.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Customer.io |
| Категория | Маркетинг |
| Сложност на настройка | Средна |
| Официална интеграция | Не |
| Синхронизирани данни | Хора, събития, кампании, сегменти |
| Използвани API | Track API, App API, Pipelines API |
| Автентикация | Site ID + API Key / App API Key |
| Base URLs | track.customer.io, api.customer.io |
Функции
- Синхронизация на хора – Двупосочна синхронизация на клиентски профили с контактите в Brevo
- Препращане на събития – Проследявай поведенчески събития и ги препращай към Brevo за automation тригери
- Аналитика на кампании – Синхронизирай метрики за performance на кампании за унифицирано отчитане
- Workflow данни – Mirror-вай Customer.io workflow състояния в атрибути на контактите в Brevo
- Репликация на сегменти – Репликирай Customer.io сегменти като списъци в Brevo
- Синхронизация на обектни данни – Синхронизирай non-people обекти и данни за взаимоотношения
Предварителни условия
Преди да започнеш, увери се, че имаш:
- Акаунт в Customer.io с API достъп
- Твоя Site ID и Track API Key (намират се в Settings > API Credentials)
- App API ключ за четене на данни за кампании и сегменти
- Акаунт в Brevo с API достъп
- Акаунт в Tajo с активен абонамент
Автентикация
Customer.io използва две отделни API с различни методи за автентикация:
Track API (поведенчески данни)
Използва се за изпращане на хора, събития и данни за устройства. Автентикира се със Site ID и API Key чрез Basic Auth.
# Basic Auth: Site ID as username, API Key as passwordcurl -X POST https://track.customer.io/api/v1/customers/user123 \ -u "$SITE_ID:$API_KEY" \ -H "Content-Type: application/json" \App API (четене на данни)
Използва се за извличане на кампании, сегменти и клиентски данни. Автентикира се с Bearer token.
curl -X GET https://api.customer.io/v1/campaigns \ -H "Authorization: Bearer $APP_API_KEY"Разделяне на API ключове
Track API ключът и App API ключът са различни credentials. Track API ключът се използва за писане на данни, докато App API ключът е за четене на данни. И двата се изискват за пълна Tajo интеграция.
Свързване с Tajo
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" # or "eu" for EU data center
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: # Standard fields id: CIO_ID email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# Engagement metrics created_at: SIGNUP_DATE last_activity: LAST_ACTIVE plan: PLAN_NAME
# Custom attributes company: COMPANY role: JOB_TITLE mrr: MONTHLY_REVENUE lifecycle_stage: LIFECYCLE_STAGEМапване на събития
event_mapping: # Customer.io event -> Brevo event purchase_completed: ORDER_PLACED subscription_started: SUBSCRIPTION_START feature_activated: FEATURE_USED support_ticket_opened: SUPPORT_REQUESTAPI крайни точки
Tajo се интегрира със следните Customer.io API крайни точки:
| Крайна точка | Метод | API | Предназначение |
|---|---|---|---|
/api/v1/customers/{id} | PUT | Track | Създаване или обновяване на човек |
/api/v1/customers/{id}/events | POST | Track | Проследяване на event на човек |
/api/v1/events | POST | Track | Проследяване на анонимни събития |
/api/v2/entity | POST | Track | Създаване или обновяване на хора/обекти (Pipelines) |
/v1/campaigns | GET | App | Списък с кампании |
/v1/campaigns/{id}/metrics | GET | App | Performance метрики на кампания |
/v1/segments | GET | App | Списък със сегменти |
/v1/segments/{id}/membership | GET | App | Получаване на членовете на сегмент |
/v1/customers/{id}/attributes | GET | App | Получаване на атрибути на клиент |
/v1/customers/{id}/activities | GET | App | Получаване на лог на активностите на клиент |
Примери с код
Инициализация на конектора
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
// Incremental sync of Customer.io peopleawait 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// }Препращане на събития
// Forward Customer.io reporting webhook events to Brevoapp.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 налага различни rate limits за всяко API:
| API | Rate Limit | Бележки |
|---|---|---|
| Track API | ~100 заявки/секунда | На workspace |
| App API | 10 заявки/секунда | На API ключ |
| Pipelines API | 100 заявки/секунда | Препоръчително за bulk данни |
| Batch крайна точка | 1 000 души на заявка | Макс payload 500KB |
Използвай batch крайни точки
За големи синхронизации Tajo използва batch крайната точка на Customer.io, за да изпраща до 1 000 души на заявка, значително намалявайки обема на API извикванията.
Отстраняване на проблеми
Чести проблеми
| Проблем | Причина | Решение |
|---|---|---|
| 401 Unauthorized | Невалиден Site ID или API ключ | Провери credentials в Customer.io Settings > API |
| Хората не се синхронизират | Липсва идентификатор | Увери се, че всеки човек има id или email |
| Събитията не се проследяват | Грешен тип API ключ | Използвай Track API ключ за събития, не App API ключ |
| EU данните не са достъпни | Неправилно конфигуриран регион | Задай региона на eu за EU workspaces |
| Rate limit грешки | Твърде много App API извиквания | Намали честотата на polling за данни за кампании |
Режим за дебъг
connectors: customerio: debug: true log_level: verbose log_api_calls: trueТест на връзката
tajo connectors test customerio# ✓ Track API connection successful# ✓ App API connection successful# ✓ People accessible# ✓ Campaigns readable# ✓ Segments listableДобри практики
- Използвай Pipelines API за bulk данни – По-новият Pipelines API е оптимизиран за high-volume ingestion
- Настрой reporting уебхуци – Препращай Customer.io имейл събития към Tajo в реално време
- Мапвай lifecycle етапи – Синхронизирай членството в Customer.io сегменти към атрибути в Brevo
- Използвай консистентни идентификатори – Съпоставяй полетата
idмежду Customer.io и Brevo - Синхронизирай инкрементално – Избягвай пълни експорти; използвай timestamps за
last_activity - Мониторирай доставката на уебхуци – Настрой alert-и за неуспешни доставки на уебхуци
Сигурност
- Basic Auth – Track API се автентикира със Site ID и API Key
- Bearer Token – App API използва OAuth-style bearer tokens
- Само HTTPS – Цялата API комуникация е криптирана чрез TLS 1.2+
- Регионални дейта центрове – EU дейта център опция за GDPR съвместимост
- Криптирано съхранение – Всички credentials са криптирани при съхранение в Tajo
- Подписи на уебхуци – Верифицирай webhook payloads с HMAC подписи