顧客同期

顧客同期

eコマースプラットフォームからBrevoコンタクトへ顧客データを自動的に同期します。このスキルにより、Brevoコンタクトリストが常に現在の顧客ベースを反映します。

概要

プロパティ
カテゴリデータ同期
ステータスStable
バージョン2.1
トリガーcustomer_created, customer_updated, customer_deleted
アクションコンタクト作成、コンタクト更新、コンタクト削除

仕組み

graph LR
A[E-commerce Platform] -->|Customer Event| B[Customer Sync Skill]
B -->|Map Data| C[Field Mapping]
C -->|API Call| D[Brevo Contacts API]
D -->|Success| E[Contact Updated]
D -->|Error| F[Retry Queue]
  1. イベント検知: プラットフォームの顧客ライフサイクルイベントをリッスンします
  2. データマッピング: プラットフォームのフィールドをBrevoコンタクト属性にマッピングします
  3. API同期: Brevo API経由でコンタクトを作成、更新、削除します
  4. エラーハンドリング: 失敗した操作を指数バックオフで再試行します

設定

基本セットアップ

skills:
customer-sync:
enabled: true
source: shopify # or woocommerce, magento, custom
# Map platform fields to Brevo attributes
field_mapping:
email: email
firstName: FIRSTNAME
lastName: LASTNAME
phone: SMS
# Sync options
options:
sync_mode: realtime # or batch
delete_behavior: soft # or hard
list_id: 5 # Add to this list

フィールドマッピング

プラットフォームの顧客フィールドをBrevoコンタクト属性にマッピングします。

デフォルトのフィールドマッピング

Parameter Type Description
email required
string

顧客のメールアドレス。Brevo内で一意の識別子として使用されます。

firstName optional
string

顧客の名(ファーストネーム)。FIRSTNAME属性にマッピングされます。

Default: FIRSTNAME
lastName optional
string

顧客の姓(ラストネーム)。LASTNAME属性にマッピングされます。

Default: LASTNAME
phone optional
string

E.164形式の電話番号。WhatsApp/SMS用にSMS属性にマッピングされます。

Default: SMS
acceptsMarketing optional
boolean

マーケティングのオプトイン状況。メール購読ステータスを制御します。

Default: true

カスタム属性

eコマースデータ用のカスタム属性マッピングを追加します。

field_mapping:
# Standard fields
email: email
firstName: FIRSTNAME
# Custom e-commerce attributes
totalOrders: TOTAL_ORDERS
totalSpent: TOTAL_SPENT
lastOrderDate: LAST_ORDER_DATE
customerTier: CUSTOMER_TIER
tags: TAGS

Tip

最初に属性を作成: カスタム属性は同期する前にBrevoで作成しておく必要があります。BrevoのダッシュボードまたはAPIで作成してください。

トリガー

customer_created

プラットフォームに新しい顧客が作成されると発火します。

{
"event": "customer_created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": "cust_12345",
"email": "[email protected]",
"firstName": "Jane",
"lastName": "Smith",
"phone": "+1234567890",
"acceptsMarketing": true,
"createdAt": "2024-01-15T10:30:00Z"
}
}

customer_updated

顧客情報が変更されたときに発火します。

{
"event": "customer_updated",
"timestamp": "2024-01-15T14:45:00Z",
"data": {
"id": "cust_12345",
"email": "[email protected]",
"changes": {
"phone": {
"old": null,
"new": "+1234567890"
}
}
}
}

customer_deleted

プラットフォームから顧客が削除されたときに発火します。

{
"event": "customer_deleted",
"timestamp": "2024-01-15T16:00:00Z",
"data": {
"id": "cust_12345",
"email": "[email protected]",
"deletedAt": "2024-01-15T16:00:00Z"
}
}

アクション

コンタクト作成

顧客が作成されたときにBrevoで新しいコンタクトを作成します。

POST /v3/contacts

Brevoアカウントに新しいコンタクトを作成します

Query Parameters

Parameter Description
email string required
コンタクトのメールアドレス
attributes object optional
コンタクトの属性
listIds array optional
コンタクトを追加するリストID
updateEnabled boolean optional
コンタクトが既に存在する場合に更新する
Default: false

Responses

201 コンタクトが正常に作成されました
400 リクエストパラメータが無効です
409 コンタクトは既に存在します

コンタクト更新

顧客データが変更されたときに既存のコンタクトを更新します。

PUT /v3/contacts/{identifier}

既存のコンタクトの属性を更新します

Path Parameters

Parameter Description
identifier string required
メールアドレスまたはコンタクトID

Query Parameters

Parameter Description
attributes object optional
更新する属性
listIds array optional
コンタクトを追加するリスト
unlinkListIds array optional
コンタクトを削除するリスト

Responses

204 コンタクトが正常に更新されました
400 リクエストパラメータが無効です
404 コンタクトが見つかりません

コンタクト削除

顧客が削除されたときにコンタクトを削除します。

DELETE /v3/contacts/{identifier}

Brevoからコンタクトを完全に削除します

Path Parameters

Parameter Description
identifier string required
メールアドレスまたはコンタクトID

Responses

204 コンタクトが正常に削除されました
404 コンタクトが見つかりません

コード例

JavaScript (Node.js)

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Enable customer sync skill
await tajo.skills.enable('customer-sync', {
source: 'shopify',
fieldMapping: {
email: 'email',
firstName: 'FIRSTNAME',
lastName: 'LASTNAME',
totalOrders: 'TOTAL_ORDERS',
totalSpent: 'TOTAL_SPENT'
},
options: {
syncMode: 'realtime',
listId: 5
}
});
// Manually trigger a sync
await tajo.skills.trigger('customer-sync', {
event: 'customer_created',
data: {
firstName: 'Jane',
lastName: 'Smith'
}
});

Python

from tajo import TajoClient
tajo = TajoClient(
api_key=os.environ['TAJO_API_KEY'],
brevo_api_key=os.environ['BREVO_API_KEY']
)
# Enable customer sync skill
tajo.skills.enable('customer-sync', {
'source': 'woocommerce',
'field_mapping': {
'email': 'email',
'first_name': 'FIRSTNAME',
'last_name': 'LASTNAME',
'total_orders': 'TOTAL_ORDERS'
},
'options': {
'sync_mode': 'realtime',
'list_id': 5
}
})
# Manually trigger a sync
tajo.skills.trigger('customer-sync', {
'event': 'customer_updated',
'data': {
'email': '[email protected]',
'total_orders': 10,
'total_spent': 1250.00
}
})

モニタリング

同期ステータスダッシュボード

Tajoダッシュボードで同期パフォーマンスを監視します。

  • 同期成功率: 同期が成功した割合
  • 平均レイテンシ: イベントからBrevo更新までの時間
  • エラー率: 同期の失敗回数
  • キュー長: 保留中の同期オペレーション数

Webhook通知

同期イベントの通知を受け取ります。

notifications:
webhook_url: https://your-app.com/webhooks/tajo
events:
- sync_completed
- sync_failed
- batch_completed

トラブルシューティング

よくある問題

コンタクトが既に存在します (409)

設定でupdateEnabled: trueを有効にすると、既存コンタクトが失敗せずに更新されます。

エラー原因解決方法
Contact already existsメールアドレスのコンタクトが存在するupdateEnabled: trueを有効にする
Invalid attribute属性がBrevoに存在しない先にBrevoで属性を作成する
Rate limit exceededAPIリクエストが多すぎるバッチ同期モードを使用する
Invalid email formatメールアドレスが不正な形式同期前にメールを検証する

デバッグモード

トラブルシューティング用にデバッグログを有効にします。

skills:
customer-sync:
debug: true
log_level: verbose

関連スキル

次のステップ

  1. プラットフォーム向けにフィールドマッピングを設定します
  2. Brevoでカスタム属性をセットアップします
  3. 即時更新のためにリアルタイム同期を有効にします

Subscribe to updates

developer-docs

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

AIアシスタント

こんにちは!ドキュメントについて何でもお聞きください。

Brevoで無料で始める