Mailchimp コネクター
Mailchimp アカウントを Tajo 経由で Brevo に接続して、オーディエンス移行、キャンペーンデータ同期、両プラットフォームにまたがる統一されたマーケティングオートメーションをシームレスに実現します。
概要
| 項目 | 値 |
|---|---|
| プラットフォーム | Mailchimp |
| カテゴリー | マーケティング |
| セットアップ難易度 | 容易 |
| 公式統合 | あり |
| 同期データ | コンタクト、キャンペーン、自動化、イベント |
| API ベース URL | https://{dc}.api.mailchimp.com/3.0 |
機能
- オーディエンス同期 - Mailchimp オーディエンスを Brevo コンタクトリストに移行・同期
- キャンペーンデータ - キャンペーンパフォーマンスデータを統一レポート向けに同期
- 自動化移行 - Mailchimp 自動化を Brevo ワークフローにマッピング
- エンゲージメントメトリクス - 開封、クリック、バウンスデータを Brevo 属性に同期
- セグメントマッピング - Mailchimp セグメントを Brevo リストまたはセグメントとして複製
- eコマースデータ - Mailchimp eコマースのストア、商品、注文データを同期
- タグ同期 - Mailchimp タグを Brevo コンタクト属性またはリストにマッピング
- テンプレート移行 - Brevo キャンペーン用に Mailchimp テンプレートをエクスポート
前提条件
開始する前に、以下をご用意ください。
- Mailchimp アカウント (Free、Essentials、Standard、Premium)
- Mailchimp API キーまたは OAuth アプリ
- API アクセス付きの Brevo アカウント
- Tajo アカウント
認証
API キー認証
Mailchimp Account > Extras > API Keys から API キーを生成します。
curl https://{dc}.api.mailchimp.com/3.0/ping \ --user "anystring:{api_key}" \ -H "Content-Type: application/json"{dc} データセンタープレフィクスは API キーの末尾部分 (例: us21) です。
OAuth 2.0
マルチアカウント統合向け:
# Authorization URLhttps://login.mailchimp.com/oauth2/authorize? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}
# Token exchangecurl -X POST https://login.mailchimp.com/oauth2/token \ -d "grant_type=authorization_code" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "redirect_uri={redirect_uri}" \ -d "code={auth_code}"データセンター
データセンターは常に API キーまたは OAuth メタデータエンドポイントから取得してください。誤ったデータセンターを使用すると認証に失敗します。
設定
基本セットアップ
connectors: mailchimp: enabled: true api_key: "${MAILCHIMP_API_KEY}" data_center: "us21"
# Data sync options sync: audiences: true campaigns: true automations: true ecommerce: true
# Audience to Brevo list mapping audience_mapping: "Main Audience": 40 "Newsletter": 41 "Customers": 42フィールドマッピング
Mailchimp のマージフィールドを Brevo コンタクト属性にマッピングします。
既定のマッピング
| Parameter | Type | Description |
|---|---|---|
email_address required | string | 購読者メール (一意の識別子) |
FNAME optional | string | 名のマージフィールド、FIRSTNAME にマッピング |
LNAME optional | string | 姓のマージフィールド、LASTNAME にマッピング |
PHONE optional | string | 電話マージフィールド、SMS にマッピング |
status optional | string | 購読ステータス (subscribed、unsubscribed、cleaned、pending) |
tags optional | array | セグメンテーション用の購読者タグ |
stats.avg_open_rate optional | number | 平均メール開封率 |
stats.avg_click_rate optional | number | 平均メールクリック率 |
カスタムマージフィールドマッピング
field_mapping: # Standard fields email_address: email FNAME: FIRSTNAME LNAME: LASTNAME PHONE: SMS
# Engagement metrics stats.avg_open_rate: AVG_OPEN_RATE stats.avg_click_rate: AVG_CLICK_RATE member_rating: ENGAGEMENT_SCORE
# E-commerce fields ecommerce_data.total_revenue: TOTAL_REVENUE ecommerce_data.number_of_orders: ORDER_COUNT
# Custom merge fields MMERGE5: COMPANY_NAME MMERGE6: CUSTOMER_TYPEAPI エンドポイント
オーディエンス (リスト)
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /3.0/lists | すべてのオーディエンス一覧 |
GET | /3.0/lists/{list_id} | オーディエンス詳細を取得 |
GET | /3.0/lists/{list_id}/members | オーディエンスメンバー一覧 |
POST | /3.0/lists/{list_id}/members | メンバーを追加 |
PUT | /3.0/lists/{list_id}/members/{hash} | メンバーを更新 |
POST | /3.0/lists/{list_id} | 一括購読/解除 |
キャンペーン
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /3.0/campaigns | キャンペーン一覧 |
GET | /3.0/campaigns/{id} | キャンペーン詳細を取得 |
GET | /3.0/reports/{id} | キャンペーンレポート取得 |
GET | /3.0/reports/{id}/email-activity | メールアクティビティ取得 |
自動化
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /3.0/automations | 自動化一覧 |
GET | /3.0/automations/{id} | 自動化詳細を取得 |
GET | /3.0/automations/{id}/emails | 自動化メール一覧 |
eコマース
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /3.0/ecommerce/stores | 接続済みストア一覧 |
GET | /3.0/ecommerce/stores/{id}/customers | ストア顧客一覧 |
GET | /3.0/ecommerce/stores/{id}/orders | ストア注文一覧 |
GET | /3.0/ecommerce/stores/{id}/products | ストア商品一覧 |
イベント
キャンペーンイベント
| イベント | トリガー | 用途 |
|---|---|---|
campaign.sent | キャンペーン配信 | パフォーマンス追跡 |
campaign.opened | メール開封 | エンゲージメントスコアリング |
campaign.clicked | リンククリック | 関心追跡 |
campaign.bounced | メール不達 | リスト衛生 |
購読者イベント
| イベント | トリガー | 用途 |
|---|---|---|
subscribe | 新規購読者追加 | ウェルカムフロー |
unsubscribe | 購読解除 | 嗜好管理 |
profile | プロフィール更新 | 属性同期 |
cleaned | メール除去 (不達) | リスト整備 |
eコマースイベント
| イベント | トリガー | 用途 |
|---|---|---|
ecommerce.order | 注文確定 | 購入後フロー |
ecommerce.cart | カート更新 | カゴ落ち回復 |
コード例
コネクターの初期化
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Mailchimpawait tajo.connectors.connect('mailchimp', { apiKey: process.env.MAILCHIMP_API_KEY});オーディエンスの Brevo への移行
// Full audience migration from Mailchimp to Brevoawait tajo.connectors.sync('mailchimp', { type: 'full', resources: ['audiences', 'campaigns', 'ecommerce'], options: { preserveTags: true, migrateSegments: true, includeUnsubscribed: false }});
// Check migration statusconst status = await tajo.connectors.status('mailchimp');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 52000,// campaignsSynced: 245,// segmentsMapped: 18// }キャンペーンエンゲージメントデータの同期
// Sync campaign performance to Brevo attributesawait tajo.connectors.sync('mailchimp', { type: 'incremental', resources: ['campaigns'], options: { syncEngagement: true, updateContactMetrics: true, since: '2024-01-01' }});レート制限
Mailchimp Marketing API のレート制限:
| 種類 | 制限 | 詳細 |
|---|---|---|
| 標準 | 同時 10 リクエスト | API キーごと |
| バッチ操作 | バッチあたり 500 操作 | リクエストごと |
| エクスポート制限 | 同時 1 エクスポート | アカウントごと |
| トランザクショナル | 25 リクエスト/秒 | API キーごと |
レート制限戦略
Mailchimp は秒間リクエスト数ではなく同時接続数を制限します。バッチエンドポイントを使用し、429 レスポンス時には指数バックオフによるリトライロジックを実装してください。
トラブルシューティング
よくある問題
| 問題 | 原因 | 解決策 |
|---|---|---|
| 401 Unauthorized | API キー無効またはデータセンター誤り | API キーを確認し正しい dc プレフィクスを抽出 |
| メンバー既存 | オーディエンスに既にメールあり | 既存メンバー更新には POST ではなく PUT を使用 |
| コンプライアンス状態 | GDPR 削除により再追加不可 | コンタクトはサインアップフォームから再購読が必要 |
| バッチタイムアウト | 大規模バッチ操作 | 500 操作単位の小さなバッチに分割 |
| マージフィールド欠落 | カスタムフィールド未作成 | マッピング前に Mailchimp でマージフィールドを作成 |
デバッグモード
詳細ログを有効化します。
connectors: mailchimp: debug: true log_level: verbose log_api_calls: true接続テスト
tajo connectors test mailchimp# ✓ API connection successful# ✓ Audiences readable# ✓ Campaigns readable# ✓ E-commerce data accessible# ✓ Webhook configuredベストプラクティス
- バッチ操作を使用 - 一括更新には batch subscribe/unsubscribe を活用
- 購読ステータスを維持 - 移行時に購読同意を尊重
- マージフィールドを先にマッピング - 同期前に対応する Brevo 属性を作成
- エンゲージメントデータを同期 - 履歴セグメンテーション向けに開封/クリック率をインポート
- コンプライアンス状態を扱う - GDPR や永久削除状態を尊重
- 増分同期を使用 - 前回同期以降の変更のみを同期して API 使用量を削減
セキュリティ
- API キー認証 - HTTP Basic 認証のパスワードとしてシークレットキーを渡す
- OAuth 2.0 - マルチアカウントアクセス向けのトークンベース認可
- TLS 暗号化 - すべての API 通信を HTTPS で暗号化
- ウェブフック検証 - 共有シークレットでウェブフック送信元を検証
- データセンター分離 - リージョン固有のデータセンターにデータを保存