Customer.io Connector

เชื่อมต่อ Customer.io messaging platform ของคุณกับ Brevo เพื่อข้อมูลลูกค้าที่รวมกัน การประสานงานแคมเปญข้ามแพลตฟอร์ม และ engagement analytics ที่รวมศูนย์

ภาพรวม

คุณสมบัติค่า
แพลตฟอร์มCustomer.io
หมวดหมู่การตลาด
ความซับซ้อนในการตั้งค่าปานกลาง
การผสานรวมอย่างเป็นทางการไม่
ข้อมูลที่ซิงค์People เหตุการณ์ แคมเปญ Segments
API ที่ใช้Track API, App API, Pipelines API
การยืนยันตัวตนSite ID + API Key / App API Key
Base URLstrack.customer.io, api.customer.io

ฟีเจอร์

  • การซิงค์ People - การซิงค์โปรไฟล์ลูกค้าแบบ bidirectional กับ Brevo contacts
  • การส่งต่อเหตุการณ์ - ติดตามเหตุการณ์เชิงพฤติกรรมและส่งต่อไปยัง Brevo สำหรับ automation triggers
  • Campaign analytics - ซิงค์ metrics ประสิทธิภาพแคมเปญสำหรับรายงานที่รวมกัน
  • ข้อมูล Workflow - จำลองสถานะ workflow ของ Customer.io ใน Brevo contact attributes
  • การสะท้อน Segment - จำลอง Customer.io segments เป็นรายการ Brevo
  • การซิงค์ข้อมูล Object - ซิงค์ objects ที่ไม่ใช่ people และข้อมูลความสัมพันธ์

ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:

  1. บัญชี Customer.io ที่เปิดใช้งาน API access
  2. Site ID และ Track API Key ของคุณ (พบใน Settings > API Credentials)
  3. App API key สำหรับอ่านข้อมูลแคมเปญและ segment
  4. บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
  5. บัญชี Tajo ที่มีการสมัครสมาชิกที่ใช้งานอยู่

การยืนยันตัวตน

Customer.io ใช้ APIs สองตัวแยกกันพร้อมวิธีการยืนยันตัวตนที่แตกต่างกัน:

Track API (ข้อมูลเชิงพฤติกรรม)

ใช้สำหรับส่ง people เหตุการณ์ และข้อมูลอุปกรณ์ ยืนยันตัวตนด้วย Site ID และ API Key ผ่าน 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 (อ่านข้อมูล)

ใช้สำหรับดึงข้อมูลแคมเปญ segments และข้อมูลลูกค้า ยืนยันตัวตนด้วย Bearer token

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

การแยก API Key

Track API key และ App API key เป็นข้อมูลประจำตัวที่แตกต่างกัน Track API key ใช้สำหรับเขียนข้อมูล ในขณะที่ App API key ใช้สำหรับอ่านข้อมูล ต้องใช้ทั้งสองอย่างสำหรับการผสานรวม Tajo แบบเต็มรูปแบบ

การเชื่อมต่อกับ 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

การกำหนดค่า

การตั้งค่าพื้นฐาน

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

การแมปฟิลด์

แมปแอตทริบิวต์ person ของ 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_REQUEST

API Endpoints

Tajo ผสานรวมกับ Customer.io API endpoints ต่อไปนี้:

EndpointเมธอดAPIจุดประสงค์
/api/v1/customers/{id}PUTTrackสร้างหรืออัปเดต person
/api/v1/customers/{id}/eventsPOSTTrackติดตามเหตุการณ์ person
/api/v1/eventsPOSTTrackติดตามเหตุการณ์ anonymous
/api/v2/entityPOSTTrackสร้างหรืออัปเดต people/objects (Pipelines)
/v1/campaignsGETAppแสดงรายการแคมเปญ
/v1/campaigns/{id}/metricsGETAppMetrics ประสิทธิภาพแคมเปญ
/v1/segmentsGETAppแสดงรายการ segments
/v1/segments/{id}/membershipGETAppดึงสมาชิกของ segment
/v1/customers/{id}/attributesGETAppดึง customer attributes
/v1/customers/{id}/activitiesGETAppดึงบันทึกกิจกรรมของลูกค้า

ตัวอย่างโค้ด

เริ่มต้น Connector

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

ซิงค์ People ไปยัง 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
// }

ส่งต่อเหตุการณ์

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

ส่งออก 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`);

ขีดจำกัดอัตรา

Customer.io บังคับใช้ rate limits ที่แตกต่างกันต่อ API:

APIขีดจำกัดอัตราหมายเหตุ
Track API~100 คำขอ/วินาทีต่อ workspace
App API10 คำขอ/วินาทีต่อ API key
Pipelines API100 คำขอ/วินาทีแนะนำสำหรับข้อมูลจำนวนมาก
Batch endpoint1,000 people ต่อคำขอPayload สูงสุด 500KB

ใช้ Batch Endpoints

สำหรับการซิงค์ขนาดใหญ่ Tajo ใช้ Customer.io batch endpoint เพื่อส่งสูงสุด 1,000 people ต่อคำขอ ลดปริมาณการเรียก API อย่างมีนัยสำคัญ

การแก้ไขปัญหา

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้
401 UnauthorizedSite ID หรือ API key ไม่ถูกต้องตรวจสอบข้อมูลประจำตัวใน Customer.io Settings > API
People ไม่ซิงค์ไม่มี identifierตรวจสอบให้แน่ใจว่าแต่ละ person มี id หรือ email
เหตุการณ์ไม่ถูกติดตามใช้ API key ผิดประเภทใช้ Track API key สำหรับเหตุการณ์ ไม่ใช่ App API key
ไม่สามารถเข้าถึงข้อมูล EUกำหนดค่า region ผิดตั้ง region เป็น eu สำหรับ EU workspaces
ข้อผิดพลาด rate limitการเรียก App API มากเกินไปลดความถี่การ polling สำหรับข้อมูลแคมเปญ

โหมด Debug

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

ทดสอบการเชื่อมต่อ

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

แนวทางปฏิบัติที่ดีที่สุด

  1. ใช้ Pipelines API สำหรับข้อมูลจำนวนมาก - Pipelines API รุ่นใหม่ได้รับการปรับแต่งสำหรับการนำเข้าข้อมูลปริมาณสูง
  2. ตั้งค่า reporting webhooks - ส่งต่อเหตุการณ์อีเมล Customer.io ไปยัง Tajo แบบ real time
  3. แมป lifecycle stages - ซิงค์สถานะสมาชิก Customer.io segment ไปยัง Brevo attributes
  4. ใช้ identifiers ที่สอดคล้องกัน - จับคู่ฟิลด์ id ทั้ง Customer.io และ Brevo
  5. ซิงค์แบบ incremental - หลีกเลี่ยง full exports; ใช้ประโยชน์จาก timestamps last_activity
  6. ตรวจสอบการส่ง webhook - ตั้งค่าการแจ้งเตือนสำหรับการส่ง webhook ที่ล้มเหลว

ความปลอดภัย

  • Basic Auth - Track API ยืนยันตัวตนด้วย Site ID และ API Key
  • Bearer Token - App API ใช้ bearer tokens แบบ OAuth
  • HTTPS เท่านั้น - การสื่อสาร API ทั้งหมดเข้ารหัสผ่าน TLS 1.2+
  • ศูนย์ข้อมูลตามภูมิภาค - ตัวเลือก EU data center สำหรับการปฏิบัติตาม GDPR
  • การจัดเก็บที่เข้ารหัส - ข้อมูลประจำตัวทั้งหมดเข้ารหัสที่เก็บใน Tajo
  • Webhook Signatures - ตรวจสอบ webhook payloads ด้วย HMAC signatures

แหล่งข้อมูลที่เกี่ยวข้อง

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
ผู้ช่วย AI

สวัสดี! ถามฉันเกี่ยวกับเอกสารได้เลย