---
title: "Customer.io Connector"
description: "คู่มือการผสานรวม Customer.io ฉบับสมบูรณ์สำหรับการซิงค์ข้อมูล people เหตุการณ์ แคมเปญ และข้อมูล workflow กับ Brevo ผ่าน Tajo"
url: https://tajo.io/th/docs/connectors/marketing/customerio/
markdown: https://tajo.io/th/docs/connectors/marketing/customerio.md
lang: th-TH
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลที่ทำงานของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

# Customer.io Connector

สถานะตัวเชื่อม: วางแผนไว้ ยังไม่ได้สร้าง ปัจจุบัน Tajo ยังไม่ได้ใช้งานตัวเชื่อมนี้

| ฟิลด์ต้นทาง | ฟิลด์ปลายทาง | ค่าตัวอย่าง |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

เชื่อมต่อ 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 URLs** | `track.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

```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 (อ่านข้อมูล)

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

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

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

### การแมปฟิลด์

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

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

| Endpoint | เมธอด | API | จุดประสงค์ |
| --- | --- | --- | --- |
| `/api/v1/customers/{id}` | PUT | Track | สร้างหรืออัปเดต person |
| `/api/v1/customers/{id}/events` | POST | Track | ติดตามเหตุการณ์ person |
| `/api/v1/events` | POST | Track | ติดตามเหตุการณ์ anonymous |
| `/api/v2/entity` | POST | Track | สร้างหรืออัปเดต people/objects (Pipelines) |
| `/v1/campaigns` | GET | App | แสดงรายการแคมเปญ |
| `/v1/campaigns/{id}/metrics` | GET | App | Metrics ประสิทธิภาพแคมเปญ |
| `/v1/segments` | GET | App | แสดงรายการ segments |
| `/v1/segments/{id}/membership` | GET | App | ดึงสมาชิกของ segment |
| `/v1/customers/{id}/attributes` | GET | App | ดึง customer attributes |
| `/v1/customers/{id}/activities` | GET | App | ดึงบันทึกกิจกรรมของลูกค้า |

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

### เริ่มต้น Connector

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

### ซิงค์ People ไปยัง 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');
});
```

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

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

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

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

ใช้ Batch Endpoints

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

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

### ปัญหาทั่วไป

| ปัญหา | สาเหตุ | วิธีแก้ |
| --- | --- | --- |
| 401 Unauthorized | Site 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

```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 สำหรับข้อมูลจำนวนมาก** - 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

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

- [Braze Connector](https://tajo.io/th/docs/connectors/marketing/braze)
- [Iterable Connector](https://tajo.io/th/docs/connectors/marketing/iterable)
- [Customer Sync Skill](https://tajo.io/th/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/th/docs/contact-management)
