Zapier 経由で同意を Klaviyo に送信する方法
このページで学べること
Klaviyo に SMS の同意を送信するためのカスタム Zapier Webhook の作成方法をご確認ください。このガイドの手順は、メールの同意を送信する場合にも簡単に調整できます。
以下の手順は、Webhook(キャッチフックとも呼ばれます)を使用して、Python スクリプトのアクションをトリガーする Zap を作成する際に役立ちます。このスクリプトは、メールアドレスと電話番号をリストに購読させるために、Klaviyo に API 呼び出しを送信します。
この機能は、Zapier のプレミアム プランをご利用のユーザーのみ利用できます。
外部連携について
この外部連携は Klaviyo により完全にはサポートされていませんが、必要に応じて回避策として使用できます。この外部連携は、サポートできる開発者がチームにいる場合にのみ使用することをおすすめします。
このガイドでは、トリガーが検出されたときに Python スクリプトを実行する Zapier のコード アクションを使用します。このソリューションを使用すると、Klaviyo のエンドポイントで必要となるデータタイプにフィールドをマッピングできます。具体的には、プロファイルを購読エンドポイントと プロファイルの購読解除エンドポイントです。
Zapier Webhook を設定
- Zapier アカウントにログインします。
- Zapier のメインページで、+作成を選択し、次にZapを選択します。
- 新しい Zap の名前を入力します(例:Klaviyo Webhook)。
- Webhook を検索し、トリガー メニューから Webhooks by Zapier を選択してください。

- 次のメニューで、 Trigger Event オプションから Catch Hook を選択してください。

- [続行] をクリックします。
- [テスト] タブを選択します。
- Zapier が提供する Webhook URL をコピーし、リクエストの送信先として使用します。

- テストを行う前に、Webhook にテストデータを送信する必要があります。詳細については、Zapier にテストデータを送信する方法に関するガイドをご覧ください。テストデータを送信する際は、電話番号を正しくフォーマットしてください。
- テストデータを Webhook に送信したら、[テスト トリガー]([テスト] タブ)をクリックします。

- リクエストが成功すると、成功メッセージが表示され、成功メッセージの下にテストデータが入力されます(以下の例のように):

- トリガーが機能したら、[選択したレコードで続行] をクリックしてください。
Zapier アクションを設定
- [アクション] メニューで、検索ボックスに Code by Zapier と入力し、リストから該当するオプションを選択します。

- [イベントを選択] > [Python を実行] をクリックします。

- [続行] をクリックします。
フィールド マッピングを設定し、スクリプト ロジックを作成します
- 以下の表の入力データを、以前に送信した正しいテストデータに対応付けられるように、フィールドマッピングを設定します。

入力データ | テストデータをマッピング済み |
| 1. メール:<Test email> |
| 1. 電話番号:<Test phone number> |
| 1. Sms_consent: true |
| 1. 名前:<Test name> |
- 次のようなスクリプトをコード ボックスに追加します:
import requests
# configuring sms subscribe or unsubscribe call
if (input_data["sms_consent"] == "true" or input_data["sms_consent"] == "True" or input_data["sms_consent"] == "TRUE"):
url = "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs/" payload = { "data": {
"type": "profile-subscription-bulk-create-job",
"attributes": {
"profiles": { "data": [
{
"type": "profile",
"attributes": {
"email": input_data["email"],
"phone_number": input_data["phone_number"],
"subscriptions": {
"sms": { "marketing": { "consent": "SUBSCRIBED" } }
}
}
}
] }
},
"relationships": { "list": { "data": {
"type": "list",
"id": "LIST_ID"
} } }
} }
elif (input_data["sms_consent"] == "false" or input_data["sms_consent"] == "False" or input_data["sms_consent"] == "FALSE"): url = "https://a.klaviyo.com/api/profile-subscription-bulk-delete-jobs/"
payload = { "data": {
"type": "profile-subscription-bulk-delete-job",
"attributes": {
"profiles": { "data": [
{
"type": "profile",
"attributes": {
"email": input_data["email"],
"phone_number": input_data["phone_number"],
}
}
] }
},
"relationships": { "list": { "data": {
"type": "list",
"id": "LIST_ID"
} } }
} }
headers = {
"accept": "application/json",
"revision": "2024-05-15",
"content-type": "application/json",
"Authorization": "Klaviyo-API-Key your-private-api-key"
}
response = requests.post(url, json=payload, headers=headers)
# Zapier requires an 'output' object
output = {"response text": response.text}your-private-api-keyを Klaviyo のプライベート API キーに置き換えてください。
非公開 API キーはパスワードのように扱ってください。安全な場所に保管し、決して公開しないでください。
LIST_ID(両方の場所)を、Zapier データの送信先となる Klaviyo リスト ID に置き換えます。Klaviyo で オーディエンス > リストとセグメント > 設定 に移動すると、リスト ID を確認できます。確認なしで(テスト時に役立つことがあります)すぐに人を購読させたい場合は、リストがシングルオプトインに設定されていることを確認してください(リスト設定内の Consent タブにあります)。- [続行] をクリックし、次に [ステップをテスト] をクリックします。
- テストが成功すると、以下のようにエラーのない応答が表示されます。

- Klaviyo でリストに移動し、プロファイルが追加されていることを確認することで、テストが成功したかどうかも確認できます。

- テストが成功したら、[公開] をクリックして zap を公開します。テストが成功しない場合は、一般的な問題について トラブルシューティングのヒント をご確認ください。
トラブルシューティングのヒント
以下は、Zapier Webhook の設定中によく発生する問題です。他の問題が発生した場合は、Klaviyo コミュニティに連絡して、追加のガイダンスを受けることができます。
文字列リテラルのスキャン中に EOL
このエラーが表示される場合、いずれかの変数の周りに引用符が不足しています。リスト ID とプライベート API キーが両側を引用符で囲まれていることを確認してください。
SyntaxError: invalid syntax
このエラーが表示される場合は、Python コード内のコメントを削除してください(# で始まる行はすべて該当します)。
その他のリソース
- アカウントの API キーを管理する方法
Klaviyo アカウントの API キーにアクセスして管理する方法をご確認ください。
- Zapier にテストデータを送信する方法
Klaviyo にメールと SMS の同意を送信する Webhook を作成する際に、POST リクエストを介して Zapier にテストデータを送信する方法を説明します。