---
title: "Customer.io コネクター"
description: "Tajo を介して Customer.io のピープル、イベント、キャンペーン、ワークフローデータを Brevo と同期するための完全統合ガイド。"
url: https://tajo.io/jp/docs/connectors/marketing/customerio/
markdown: https://tajo.io/jp/docs/connectors/marketing/customerio.md
lang: ja-JP
robots: noindex
---

先行利用を申し込む

お名前と会社のメールアドレスを入力してください。Tajoへのアクセス申請を確認するためのリンクをメールでお送りします。

# Customer.io コネクター

コネクターのステータス: 予定 まだ構築されていません。Tajo は現在このコネクターを実行していません。

| 送信元フィールド | 送信先フィールド | サンプル値 |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Customer.io メッセージングプラットフォームを Brevo に接続し、統合された顧客データ、クロスプラットフォームキャンペーン連携、一元化されたエンゲージメントアナリティクスを実現します。

## 概要

| 項目 | 値 |
| --- | --- |
| **プラットフォーム** | Customer.io |
| **カテゴリー** | マーケティング |
| **セットアップ難易度** | 中程度 |
| **公式統合** | なし |
| **同期データ** | ピープル、イベント、キャンペーン、セグメント |
| **利用 API** | Track API、App API、Pipelines API |
| **認証** | Site ID + API キー / App API キー |
| **ベース URL** | `track.customer.io`、`api.customer.io` |

## 機能

- **ピープル同期** - Brevo コンタクトと顧客プロファイルを双方向同期
- **イベント転送** - 行動イベントを追跡し、Brevo のオートメーショントリガーへ転送
- **キャンペーン分析** - 統合レポートのためキャンペーンパフォーマンス指標を同期
- **ワークフローデータ** - Customer.io のワークフロー状態を Brevo コンタクト属性にミラーリング
- **セグメント複製** - Customer.io のセグメントを Brevo リストとして複製
- **オブジェクトデータ同期** - 非ピープルオブジェクトとリレーションシップデータを同期

## 前提条件

開始する前に、以下をご用意ください。

1. API アクセス付きの Customer.io アカウント
2. Site ID と Track API キー (Settings > API Credentials で確認)
3. キャンペーンとセグメントデータ読み取り用の App API キー
4. API アクセス付きの Brevo アカウント
5. 有効なサブスクリプションの Tajo アカウント

## 認証

Customer.io は認証方式の異なる 2 つの API を使用します。

### Track API (行動データ)

ピープル、イベント、デバイスデータを送信するために使用します。Basic 認証で Site ID と API キーを使用します。

```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 (データ読み取り)

キャンペーン、セグメント、顧客データを取得するために使用します。Bearer トークンで認証します。

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

API キーの分離

Track API キーと App API キーは異なる認証情報です。Track API キーはデータの書き込みに、App API キーはデータの読み取りに使用されます。完全な 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
```

### フィールドマッピング

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 エンドポイント

Tajo は以下の Customer.io API エンドポイントと連携します。

| エンドポイント | メソッド | API | 用途 |
| --- | --- | --- | --- |
| `/api/v1/customers/{id}` | PUT | Track | ピープルを作成または更新 |
| `/api/v1/customers/{id}/events` | POST | Track | ピープルイベントを追跡 |
| `/api/v1/events` | POST | Track | 匿名イベントを追跡 |
| `/api/v2/entity` | POST | Track | ピープル/オブジェクトを作成または更新 (Pipelines) |
| `/v1/campaigns` | GET | App | キャンペーン一覧 |
| `/v1/campaigns/{id}/metrics` | GET | App | キャンペーンパフォーマンス指標 |
| `/v1/segments` | GET | App | セグメント一覧 |
| `/v1/segments/{id}/membership` | GET | App | セグメントメンバー取得 |
| `/v1/customers/{id}/attributes` | GET | App | 顧客属性取得 |
| `/v1/customers/{id}/activities` | GET | App | 顧客アクティビティログ取得 |

## コード例

### コネクターの初期化

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

### ピープルを 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');
});
```

### セグメントのエクスポート

```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 は API ごとに異なるレート制限を適用します。

| API | レート制限 | 備考 |
| --- | --- | --- |
| **Track API** | 約 100 リクエスト/秒 | ワークスペース単位 |
| **App API** | 10 リクエスト/秒 | API キー単位 |
| **Pipelines API** | 100 リクエスト/秒 | 大量データ向けに推奨 |
| **バッチエンドポイント** | 1 リクエストあたり 1,000 ピープル | ペイロード最大 500KB |

バッチエンドポイントの活用

大規模同期では、Tajo は Customer.io のバッチエンドポイントを使用して 1 リクエストあたり最大 1,000 ピープルを送信し、API コール数を大幅に削減します。

## トラブルシューティング

### よくある問題

| 問題 | 原因 | 解決策 |
| --- | --- | --- |
| 401 Unauthorized | Site ID または API キーが無効 | Customer.io Settings > API で認証情報を確認 |
| ピープルが同期されない | 識別子が不足 | 各ピープルに `id` または `email` があることを確認 |
| イベントが追跡されない | API キーの種類が誤り | イベントには App API キーではなく Track API キーを使用 |
| EU データにアクセスできない | リージョン設定が誤り | EU ワークスペースではリージョンを `eu` に設定 |
| レート制限エラー | App API コールが多すぎる | キャンペーンデータのポーリング頻度を下げる |

### デバッグモード

```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. **レポートウェブフックをセットアップ** - Customer.io のメールイベントをリアルタイムで Tajo に転送
3. **ライフサイクルステージをマッピング** - Customer.io のセグメントメンバーシップを Brevo 属性に同期
4. **一貫した識別子を使用** - Customer.io と Brevo 間で `id` フィールドを一致させる
5. **増分同期** - フルエクスポートは避け、`last_activity` タイムスタンプを活用
6. **ウェブフック配信を監視** - ウェブフック配信失敗時のアラートを設定

## セキュリティ

- **Basic 認証** - Track API は Site ID と API キーで認証
- **Bearer トークン** - App API は OAuth スタイルの bearer トークンを使用
- **HTTPS 限定** - すべての API 通信を TLS 1.2+ で暗号化
- **リージョナルデータセンター** - GDPR 準拠のため EU データセンターオプションあり
- **暗号化ストレージ** - Tajo 内ですべての認証情報を保存時に暗号化
- **ウェブフック署名** - HMAC 署名でウェブフックペイロードを検証

## 関連リソース

- [Braze コネクター](https://tajo.io/jp/docs/connectors/marketing/braze)
- [Iterable コネクター](https://tajo.io/jp/docs/connectors/marketing/iterable)
- [顧客同期スキル](https://tajo.io/jp/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/jp/docs/contact-management)
