Konektor Customer.io
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:
- Konto Customer.io z dostępem do API
- Site ID i Track API Key (dostępne w Settings > API Credentials)
- Klucz App API do odczytu danych kampanii i segmentów
- Konto Brevo z dostępem do API
- 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.
# 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 (odczyt danych)
Używane do pobierania kampanii, segmentów i danych klientów. Uwierzytelnia przy użyciu tokenu bearer.
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
tajo connectors install customerio \ --site-id $CIO_SITE_ID \ --track-api-key $CIO_TRACK_API_KEY \ --app-api-key $CIO_APP_API_KEYKonfiguracja
Podstawowa konfiguracja
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: 14Mapowanie pól
Mapuj atrybuty osób Customer.io na atrybuty kontaktów 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_STAGEMapowanie zdarzeń
event_mapping: # Customer.io event -> Brevo event purchase_completed: ORDER_PLACED subscription_started: SUBSCRIPTION_START feature_activated: FEATURE_USED support_ticket_opened: SUPPORT_REQUESTEndpointy 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
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
// 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// }Przekazuj zdarzenia
// 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');});Eksportuj segment
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
connectors: customerio: debug: true log_level: verbose log_api_calls: trueTest połączenia
tajo connectors test customerio# ✓ Track API connection successful# ✓ App API connection successful# ✓ People accessible# ✓ Campaigns readable# ✓ Segments listableNajlepsze praktyki
- Używaj Pipelines API dla danych masowych - Nowszy Pipelines API jest zoptymalizowany dla ingestion dużych wolumenów
- Skonfiguruj webhooki raportowania - Przekazuj zdarzenia e-mail Customer.io do Tajo w czasie rzeczywistym
- Mapuj etapy cyklu życia - Synchronizuj przynależność do segmentów Customer.io z atrybutami Brevo
- Używaj spójnych identyfikatorów - Dopasuj pola
idmiędzy Customer.io a Brevo - Synchronizuj przyrostowo - Unikaj pełnych eksportów; wykorzystuj znaczniki czasu
last_activity - 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