Klaviyoは、eコマース企業向けのEメールマーケティングオートメーションに焦点を当てたデジタルマーケティングプラットフォームです。Klaviyoはeコマース向けのSMSおよびEメールマーケティングオートメーションプラットフォームを提供しています。
このインテグレーションとTDを使用すると、
- Klaviyoメンバーリストにプロファイルを追加できます。
- Klaviyoメンバーリストからプロファイルを削除できます。
- TD Toolbeltを含むTreasure Dataの基本的な知識。
- Private APIアクセストークンを持つKlaviyoアカウント。
Treasure DataはCampaigns APIを使用してKlaviyoにEメールメッセージの送信を指示します。このAPIのリクエストボディに関するドキュメントは、Klaviyoでのメールテンプレートの設定に非常に役立ちます。
- 「Remove Profiles」操作を実行するには、クエリでデータ型がstringのprofile_id列(大文字小文字を区別)を指定する必要があります。クエリでこの列を指定しない場合、エラーが返され、ジョブは失敗します。
- 「Add Profiles」操作を実行するには、クエリでデータ型がstringのemail列(大文字小文字を区別)を指定する必要があります。クエリでこの列を指定しない場合、エラーが返され、ジョブは失敗します。
- クエリでphone_number列(大文字小文字を区別)を指定する場合、このフィールドのデータはAccepted phone number formats for SMS in Klaviyoに従う必要があります。そうでない場合、エラーが返され、ジョブは失敗します。
Klaviyo Dashboardにログインします。
SettingsタブでCreate Private API Keyを選択します。
Private API keyをコピーして、安全な場所に保存します。

- Klaviyo Dashboardにログインします。
- ダッシュボードの左側でLists & Segmentsを選択します。
- Lists & Segmentsページから、リスト名のリンクを選択します。
- リスト表示ページのURLからlist_idをコピーして、安全な場所に保存します。
Treasure Dataでは、クエリを実行する前にデータコネクションを作成して設定する必要があります。データコネクションの一部として、インテグレーションにアクセスするための認証情報を提供します。
- TD Consoleを開きます。
- Integrations Hub > Catalogに移動します。
- Klaviyoを検索し、Klaviyo Output Betaを選択します。
- Create Authenticationを選択します。

- KlaviyoのPrivate API keyを入力します。
- Continueを選択します。

- コネクションの名前を入力します。
- Doneを選択します。
「Add Profiles」操作を実行するには、クエリでデータ型がstringのemail列(大文字小文字を区別)を指定する必要があります。クエリでこの列を指定しない場合、エラーが返され、ジョブは失敗します。
「Remove Profiles」操作を実行するには、クエリでデータ型がstringのprofile_id列(大文字小文字を区別)を指定する必要があります。クエリでこの列を指定しない場合、エラーが返され、ジョブは失敗します。
Creating a Destination Integrationの手順を完了します。
Data Workbench > Queriesに移動します。
データをエクスポートするクエリを選択します。
クエリを実行して結果セットを検証します。
Export Resultsを選択します。
Use Existing Integrationを選択します。

追加のExport Resultsの詳細を定義します。エクスポートインテグレーションのコンテンツで、インテグレーションパラメータを確認します。

Doneを選択します。
クエリを実行します。
指定した宛先にデータが移動したことを検証します。
Klaviyoのインテグレーションパラメータ
| パラメータ | 値 | 説明 |
|---|---|---|
| Data operation | - Add profiles - Remove profiles | Klaviyoリストにプロファイルを追加または削除します。remove profiles操作にはKlaviyoのprofile_idが必要です。削除後、プロファイルはこの特定のリストからマーケティングメールを受信しなくなります。 |
| Add to | - List ID - List Name | Klaviyoリストを識別するために使用されます。 |
| List ID or List Name value | - List ID - List Name | プロファイルが追加されるリストIDまたはリスト名。 「Add to」パラメータがList Nameに設定されており、ここで指定された名前がKlaviyoに存在しない場合、これらの値を持つ新しいリストが作成されます。 |
| Wait Until The Operation Is Finished? | True/False | チェックを入れると、TD ConsoleはKlaviyo側で操作が完了するまで待機してから続行します。 チェックを外すと、TD ConsoleはタスクをKlaviyoに送信して先に進みます。 |
| The waiting time for operation completion | 最小: 300000 ms (5分) 最大: 86400000 ms (1日) | TD Consoleが操作の完了を待機する時間(ミリ秒)。 |
このクエリにはemail列を含める必要があります。
SELECT email, col_a, col_b, col_c
FROM your_table;このクエリにはprofile_id列が必要です。
SELECT profile_id FROM your_table;Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。
Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。
2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。
例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。
Data Workbench > Queries に移動します
新しいクエリを作成するか、既存のクエリを選択します。
Schedule の横にある None を選択します。

ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

ドロップダウン値 説明 Custom cron... Custom cron... の詳細を参照してください。 @daily (midnight) 指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。 @hourly (:00) 毎時 00 分に実行します。 None スケジュールなし。

| Cron 値 | 説明 |
|---|---|
0 * * * * | 1 時間に 1 回実行します。 |
0 0 * * * | 1 日 1 回午前 0 時に実行します。 |
0 0 1 * * | 毎月 1 日の午前 0 時に 1 回実行します。 |
| "" | スケジュールされた実行時刻のないジョブを作成します。 |
* * * * *
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +---------- month (1 - 12)
| | +--------------- day of month (1 - 31)
| +-------------------- hour (0 - 23)
+------------------------- min (0 - 59)次の名前付きエントリを使用できます:
- Day of Week: sun, mon, tue, wed, thu, fri, sat.
- Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.
各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:
| フィールド値 | 例 | 例の説明 |
|---|---|---|
| 各フィールドに対して上記で表示された制限内の単一の値。 | ||
フィールドに基づく制限がないことを示すワイルドカード '*'。 | '0 0 1 * *' | 毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
範囲 '2-5' フィールドの許可される値の範囲を示します。 | '0 0 1-10 * *' | 毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。 | 0 0 1,11,21 * *' | 毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。 | '30 */2 1 * *' | 毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10' | '0 0 5,*/10,25 * *' | 毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
- (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。
クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。
設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。
(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。
Treasure Workflowでは、このデータコネクタを使用してデータをエクスポートするよう指定できます。
TD Toolbeltを使用してワークフローでデータをエクスポートする方法の詳細をご覧ください。
_export:
td:
database: klaviyo_db
+klaviyo_export_task:
td>: export_data.sql
database: ${td.database}
result_connection: new_created_klaviyo_auth
result_settings:
type: klaviyo
api_token: api_token
operation: add
list_identify_type: id
list_value: id_value
wait_for_completion: true
waiting_time_for_completion_millis: 3600000_export:
td:
database: klaviyo_db
+klaviyo_export_task:
td>: export_data.sql
database: ${td.database}
result_connection: new_created_klaviyo_auth
result_settings:
type: klaviyo
api_token: api_token
operation: add
list_identify_type: name
list_value: name_value
wait_for_completion: true
waiting_time_for_completion_millis: 3600000_export:
td:
database: klaviyo_db
+klaviyo_export_task:
td>: export_data.sql
database: ${td.database}
result_connection: new_created_klaviyo_auth
result_settings:
type: klaviyo
api_token: api_token
operation: remove_profiles
list_identify_type: id
list_value: id_value_export:
td:
database: klaviyo_db
+klaviyo_export_task:
td>: export_data.sql
database: ${td.database}
result_connection: new_created_klaviyo_auth
result_settings:
type: klaviyo
api_token: api_token
operation: remove_profiles
list_identify_type: name
list_value: name_value