---
title: "Konektor Customer.io"
description: "Kompletny przewodnik integracji Customer.io do synchronizacji osób, zdarzeń, kampanii i danych workflow z Brevo przez Tajo."
url: https://tajo.io/pl/docs/connectors/marketing/customerio/
markdown: https://tajo.io/pl/docs/connectors/marketing/customerio.md
lang: pl-PL
robots: noindex
---

Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

# Konektor Customer.io

Status konektora: Planowany Jeszcze niezbudowany. Tajo nie uruchamia dziś tego konektora.

| Pole źródłowe | Pole docelowe | Przykładowa wartość |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Połącz swoją platformę komunikacyjną Customer.io z Brevo dla ujednoliconych danych klientów, wieloplatformowej koordynacji kampanii i skonsolidowanej analityki zaangażowania.

## Przegląd

| Właściwość | Wartość |
| --- | --- |
| **Platforma** | Customer.io |
| **Kategoria** | Marketing |
| **Poziom konfiguracji** | Średni |
| **Integracja oficjalna** | Nie |
| **Synchronizowane dane** | Osoby, Zdarzenia, Kampanie, Segmenty |
| **Używane API** | Track API, App API, Pipelines API |
| **Uwierzytelnianie** | Site ID + Klucz API / Klucz App API |
| **Bazowe URL** | `track.customer.io`, `api.customer.io` |

## Funkcje

- **Synchronizacja osób** - Dwukierunkowa synchronizacja profili klientów z kontaktami Brevo
- **Przekazywanie zdarzeń** - Śledź zdarzenia behawioralne i przekazuj do Brevo jako wyzwalacze automatyzacji
- **Analityka kampanii** - Synchronizuj metryki wydajności kampanii dla ujednoliconego raportowania
- **Dane workflow** - Dubluj stany workflow Customer.io w atrybutach kontaktów Brevo
- **Replikacja segmentów** - Replikuj segmenty Customer.io jako listy Brevo
- **Synchronizacja danych obiektów** - Synchronizuj obiekty niebędące osobami i dane relacji

## Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

1. Konto Customer.io z dostępem do API
2. Site ID i Track API Key (dostępne w Settings > API Credentials)
3. Klucz App API do odczytu danych kampanii i segmentów
4. Konto Brevo z dostępem do API
5. Konto Tajo z aktywną subskrypcją

## Uwierzytelnianie

Customer.io używa dwóch oddzielnych API z różnymi metodami uwierzytelniania:

### Track API (dane behawioralne)

Używane do wysyłania osób, zdarzeń i danych urządzeń. Uwierzytelnia przy użyciu Site ID i klucza API przez 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 (odczyt danych)

Używane do pobierania kampanii, segmentów i danych klientów. Uwierzytelnia przy użyciu tokenu bearer.

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

Rozdzielenie kluczy API

Klucz Track API i klucz App API to różne poświadczenia. Klucz Track API służy do zapisu danych, natomiast klucz App API do odczytu danych. Oba są wymagane do pełnej integracji z Tajo.

### Połączenie z 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
```

## Konfiguracja

### Podstawowa konfiguracja

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

### Mapowanie pól

Mapuj atrybuty osób Customer.io na atrybuty kontaktów 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
```

### Mapowanie zdarzeń

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

## Endpointy API

Tajo integruje się z następującymi endpointami API Customer.io:

| Endpoint | Metoda | API | Przeznaczenie |
| --- | --- | --- | --- |
| `/api/v1/customers/{id}` | PUT | Track | Utwórz lub zaktualizuj osobę |
| `/api/v1/customers/{id}/events` | POST | Track | Śledź zdarzenie osoby |
| `/api/v1/events` | POST | Track | Śledź anonimowe zdarzenia |
| `/api/v2/entity` | POST | Track | Utwórz lub zaktualizuj osoby/obiekty (Pipelines) |
| `/v1/campaigns` | GET | App | Lista kampanii |
| `/v1/campaigns/{id}/metrics` | GET | App | Metryki wydajności kampanii |
| `/v1/segments` | GET | App | Lista segmentów |
| `/v1/segments/{id}/membership` | GET | App | Pobierz członków segmentu |
| `/v1/customers/{id}/attributes` | GET | App | Pobierz atrybuty klienta |
| `/v1/customers/{id}/activities` | GET | App | Pobierz log aktywności klienta |

## Przykłady kodu

### Inicjalizacja konektora

```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'
});
```

### Synchronizuj osoby do 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
// }
```

### Przekazuj zdarzenia

```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');
});
```

### Eksportuj segment

```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`);
```

## Limity API

Customer.io egzekwuje różne limity szybkości dla każdego API:

| API | Limit szybkości | Uwagi |
| --- | --- | --- |
| **Track API** | ~100 żądań/sekundę | Na przestrzeń roboczą |
| **App API** | 10 żądań/sekundę | Na klucz API |
| **Pipelines API** | 100 żądań/sekundę | Zalecane dla danych masowych |
| **Endpoint wsadowy** | 1 000 osób na żądanie | Maks. ładunek 500KB |

Używaj endpointów wsadowych

Dla dużych synchronizacji Tajo używa endpointu wsadowego Customer.io do wysyłania do 1 000 osób na żądanie, co znacznie zmniejsza liczbę wywołań API.

## Rozwiązywanie problemów

### Typowe problemy

| Problem | Przyczyna | Rozwiązanie |
| --- | --- | --- |
| 401 Unauthorized | Nieprawidłowy Site ID lub klucz API | Zweryfikuj poświadczenia w Customer.io Settings > API |
| Osoby się nie synchronizują | Brakujący identyfikator | Upewnij się, że każda osoba ma `id` lub `email` |
| Zdarzenia nie są śledzone | Zły typ klucza API | Używaj klucza Track API dla zdarzeń, nie klucza App API |
| Dane EU niedostępne | Skonfigurowany zły region | Ustaw region na `eu` dla przestrzeni roboczych UE |
| Błędy limitu szybkości | Zbyt wiele wywołań App API | Zmniejsz częstotliwość odpytywania danych kampanii |

### Tryb debug

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

### Test połączenia

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

## Najlepsze praktyki

1. **Używaj Pipelines API dla danych masowych** - Nowszy Pipelines API jest zoptymalizowany dla ingestion dużych wolumenów
2. **Skonfiguruj webhooki raportowania** - Przekazuj zdarzenia e-mail Customer.io do Tajo w czasie rzeczywistym
3. **Mapuj etapy cyklu życia** - Synchronizuj przynależność do segmentów Customer.io z atrybutami Brevo
4. **Używaj spójnych identyfikatorów** - Dopasuj pola `id` między Customer.io a Brevo
5. **Synchronizuj przyrostowo** - Unikaj pełnych eksportów; wykorzystuj znaczniki czasu `last_activity`
6. **Monitoruj dostarczanie webhooków** - Ustaw alerty dla nieudanych dostarczeń webhooków

## Bezpieczeństwo

- **Basic Auth** - Track API uwierzytelnia przy użyciu Site ID i klucza API
- **Token Bearer** - App API używa tokenów bearer w stylu OAuth
- **Tylko HTTPS** - Cała komunikacja API szyfrowana przez TLS 1.2+
- **Regionalne centra danych** - Opcja centrum danych UE dla zgodności z RODO
- **Szyfrowane przechowywanie** - Wszystkie poświadczenia szyfrowane w stanie spoczynku w Tajo
- **Podpisy webhooków** - Weryfikuj ładunki webhooków podpisami HMAC

## Powiązane zasoby

- [Konektor Braze](https://tajo.io/pl/docs/connectors/marketing/braze)
- [Konektor Iterable](https://tajo.io/pl/docs/connectors/marketing/iterable)
- [Skill synchronizacji klientów](https://tajo.io/pl/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/pl/docs/contact-management)
