---
title: "Customer.io конектор"
description: "Пълно ръководство за интеграция с Customer.io за синхронизация на хора, събития, кампании и workflow данни с Brevo чрез Tajo."
url: https://tajo.io/bg/docs/connectors/marketing/customerio/
markdown: https://tajo.io/bg/docs/connectors/marketing/customerio.md
lang: bg-BG
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` |

Свържи своята 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 обекти и данни за взаимоотношения

## Предварителни условия

Преди да започнеш, увери се, че имаш:

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

## Автентикация

Customer.io използва две отделни API с различни методи за автентикация:

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

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

```bash
# Basic Auth: Site ID as username, API Key as password
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 token.

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

```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"  # 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:

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

### Мапване на събития

```yaml
event_mapping:
  # Customer.io event -> Brevo event
  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 | Проследяване на 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 | Получаване на лог на активностите на клиент |

## Примери с код

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

```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
// Incremental sync of Customer.io people
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
// Forward Customer.io reporting webhook events to 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 налага различни 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 за данни за кампании |

### Режим за дебъг

```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 за bulk данни** – По-новият Pipelines API е оптимизиран за high-volume ingestion
2. **Настрой reporting уебхуци** – Препращай Customer.io имейл събития към Tajo в реално време
3. **Мапвай lifecycle етапи** – Синхронизирай членството в Customer.io сегменти към атрибути в Brevo
4. **Използвай консистентни идентификатори** – Съпоставяй полетата `id` между Customer.io и Brevo
5. **Синхронизирай инкрементално** – Избягвай пълни експорти; използвай timestamps за `last_activity`
6. **Мониторирай доставката на уебхуци** – Настрой 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 подписи

## Свързани ресурси

- [Braze конектор](https://tajo.io/bg/docs/connectors/marketing/braze)
- [Iterable конектор](https://tajo.io/bg/docs/connectors/marketing/iterable)
- [Customer Sync скил](https://tajo.io/bg/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/bg/docs/contact-management)
