Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Konektor Customer.io

Hubungkan platform pesan Customer.io Anda ke Brevo untuk data pelanggan terpadu, koordinasi kampanye lintas platform, dan analitik engagement yang terkonsolidasi.

Ikhtisar

PropertiNilai
PlatformCustomer.io
KategoriMarketing
Kompleksitas setupMenengah
Integrasi resmiTidak
Data yang disinkronkanPeople, Event, Kampanye, Segmen
API yang digunakanTrack API, App API, Pipelines API
AutentikasiSite ID + API Key / App API Key
URL dasartrack.customer.io, api.customer.io

Fitur

  • Sinkronisasi people - Sinkronisasi profil pelanggan dua arah dengan kontak Brevo
  • Penerusan event - Lacak event perilaku dan teruskan ke Brevo sebagai trigger otomatisasi
  • Analitik kampanye - Sinkronkan metrik performa kampanye untuk pelaporan terpadu
  • Data alur kerja - Cerminkan status alur kerja Customer.io ke atribut kontak Brevo
  • Replikasi segmen - Replikasikan segmen Customer.io sebagai list Brevo
  • Sinkronisasi data objek - Sinkronkan objek non-people dan data relasinya

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  1. Akun Customer.io dengan akses API
  2. Site ID dan Track API Key Anda (tersedia di Settings > API Credentials)
  3. App API key untuk membaca data kampanye dan segmen
  4. Akun Brevo dengan akses API
  5. Akun Tajo dengan langganan aktif

Autentikasi

Customer.io menggunakan dua API terpisah dengan metode autentikasi yang berbeda:

Track API (data perilaku)

Digunakan untuk mengirim data people, event, dan perangkat. Autentikasi memakai Site ID dan API Key melalui Basic Auth.

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

App API (membaca data)

Digunakan untuk mengambil data kampanye, segmen, dan pelanggan. Autentikasi memakai Bearer token.

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

Pemisahan API key

Track API key dan App API key adalah kredensial yang berbeda. Track API key digunakan untuk menulis data, sedangkan App API key untuk membaca data. Keduanya diperlukan agar integrasi Tajo berjalan penuh.

Menghubungkan ke 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

Konfigurasi

Setup dasar

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

Pemetaan field

Petakan atribut person Customer.io ke atribut kontak 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

Pemetaan event

event_mapping:
# Customer.io event -> Brevo event
purchase_completed: ORDER_PLACED
subscription_started: SUBSCRIPTION_START
feature_activated: FEATURE_USED
support_ticket_opened: SUPPORT_REQUEST

Endpoint API

Tajo terintegrasi dengan endpoint API Customer.io berikut:

EndpointMetodeAPITujuan
/api/v1/customers/{id}PUTTrackMembuat atau memperbarui person
/api/v1/customers/{id}/eventsPOSTTrackMelacak event person
/api/v1/eventsPOSTTrackMelacak event anonim
/api/v2/entityPOSTTrackMembuat atau memperbarui people/objek (Pipelines)
/v1/campaignsGETAppMenampilkan daftar kampanye
/v1/campaigns/{id}/metricsGETAppMetrik performa kampanye
/v1/segmentsGETAppMenampilkan daftar segmen
/v1/segments/{id}/membershipGETAppMengambil anggota segmen
/v1/customers/{id}/attributesGETAppMengambil atribut pelanggan
/v1/customers/{id}/activitiesGETAppMengambil log aktivitas pelanggan

Contoh kode

Inisialisasi konektor

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

Sinkronkan people ke Brevo

// 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
// }

Teruskan event

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

Ekspor segmen

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

Batas rate

Customer.io menerapkan batas rate yang berbeda untuk setiap API:

APIBatas rateCatatan
Track API~100 permintaan/detikPer workspace
App API10 permintaan/detikPer API key
Pipelines API100 permintaan/detikDirekomendasikan untuk data massal
Endpoint batch1.000 people per permintaanPayload maksimal 500KB

Gunakan endpoint batch

Untuk sinkronisasi besar, Tajo memakai endpoint batch Customer.io guna mengirim hingga 1.000 people per permintaan, sehingga volume panggilan API berkurang signifikan.

Pemecahan masalah

Masalah umum

MasalahPenyebabSolusi
401 UnauthorizedSite ID atau API key tidak validVerifikasi kredensial di Customer.io Settings > API
People tidak tersinkronisasiIdentifier tidak adaPastikan setiap person memiliki id atau email
Event tidak terlacakTipe API key salahGunakan Track API key untuk event, bukan App API key
Data EU tidak dapat diaksesRegion dikonfigurasi salahSetel region ke eu untuk workspace EU
Error batas rateTerlalu banyak panggilan App APIKurangi frekuensi polling untuk data kampanye

Mode debug

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

Uji koneksi

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

Praktik terbaik

  1. Gunakan Pipelines API untuk data massal - Pipelines API yang lebih baru dioptimalkan untuk ingesti bervolume tinggi
  2. Siapkan reporting webhook - Teruskan event email Customer.io ke Tajo secara real-time
  3. Petakan tahap lifecycle - Sinkronkan keanggotaan segmen Customer.io ke atribut Brevo
  4. Gunakan identifier yang konsisten - Samakan field id di Customer.io dan Brevo
  5. Sinkronkan secara inkremental - Hindari ekspor penuh; manfaatkan timestamp last_activity
  6. Pantau pengiriman webhook - Siapkan peringatan untuk pengiriman webhook yang gagal

Keamanan

  • Basic Auth - Track API melakukan autentikasi dengan Site ID dan API Key
  • Bearer Token - App API menggunakan bearer token bergaya OAuth
  • Hanya HTTPS - Semua komunikasi API dienkripsi melalui TLS 1.2+
  • Pusat data regional - Opsi pusat data EU untuk kepatuhan GDPR
  • Penyimpanan terenkripsi - Semua kredensial dienkripsi saat disimpan di Tajo
  • Signature webhook - Verifikasi payload webhook dengan signature HMAC

Sumber terkait

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.