【第327回】 REST API を使って連絡先がどのジャーニーにいるかを調べる方法
以前の記事で、Salesforceの非公式アプリ「Marketing Cloud Engagement Journeys for Salesforce」を取り上げ、Salesforce CRM の取引先責任者やリードのレコードページ上で、進行中のジャーニーを確認したり、特定の顧客をジャーニーから削除する方法について紹介しました。
このアプリの活用例として、たとえばカスタマーセンターがクレーム対応中に「この顧客には今後メールを送らないようにしたい」となった場合でも、その顧客だけをすべての進行中ジャーニーから速やかに削除することが可能になります。

では、「Marketing Cloud Engagement Journeys for Salesforce」が使えない環境では、どうすればよいのでしょうか?
そのような場合には、REST APIを活用して該当するジャーニーを検索し、処理を行う方法があります。今回は、その具体的な手順をご紹介します。
今回の記事では REST API を使用します。過去の記事「Salesforce Marketing Cloud で REST API を叩いてみよう」の Part.1 と Part.2 の記事で取得できる以下の 2 つが必要となりますので、事前に用意してください。
■ Part.1 の REST ベース URL
■ Part.2 の アクセストークン
今回、以下のスコープがセットアップで選択されている必要があります。
■ Automation - Journeys - Read
■ Automation - Journeys - Execute
■ Automation - Journeys - Activate/Stop/Pause/Resume/Send/Schedule
■ Contacts - List and Subscribers - Read
■ Data - Data Extensions - Read
※ Automation - Journeys - Read だけだと正しく検索できません。
ある連絡先がどのジャーニーにいるかを調べる
以下を Talend API Tester や Postman で実行してください。
--- スコープ
Automation - Journeys - Read
Automation - Journeys - Execute
Automation - Journeys - Activate/Stop/Pause/Resume/Send/Schedule
Contacts - List and Subscribers - Read
Data - Data Extensions - Read
--- メソッド
POST
--- エンドポイント
[REST ベース URL].rest.marketingcloudapis.com/interaction/v1/interactions/contactMembership
--- ヘッダー
Content-Type:application/json
Authorization:Bearer [アクセストークン]
--- ボディ
{
"ContactKeyList":["BOR501", "0035Y000072MKdIQAW", "ContactKey_3"]
}今回は、"BOR501", "0035Y000072MKdIQAW", "ContactKey_3" の 3 名分を同時に検索していますが、同じ書き方で最大 50 名までを検索できます。
検索結果
以下のように表示されます。上段(contactMemberships)を展開することで検索した連絡先がジャーニーのどのバージョンにいるかの結果が表示され、下段(contactNotFound)には、現在のジャーニーには存在していない連絡先キーが表示されます。

ちなみに、ここでは definitionKey が表示されるだけで、ジャーニー名などは表示されません。そこで definitionKey からジャーニー名を探す必要があります。
ジャーニー名を調べる
上で検索した結果から、definitionKey をコピーして、下のエンドポイントのパラメーターに貼り付けます。以下を Talend API Tester や Postman で実行してください。
--- スコープ
Automation - Journeys - Read
Automation - Journeys - Execute
Automation - Journeys - Activate/Stop/Pause/Resume/Send/Schedule
Contacts - List and Subscribers - Read
Data - Data Extensions - Read
--- メソッド
GET
--- エンドポイント
[REST ベース URL].rest.marketingcloudapis.com/interaction/v1/interactions/key:28f23a58-3797-31f4-6e69-63fc8c642f34
--- ヘッダー
Content-Type:application/json
Authorization:Bearer [アクセストークン]
--- ボディ
なし検索結果
これで結果が表示されます。「Journey 008」というジャーニー名であることが分かります。

ここまでの事は、前の記事の「Marketing Cloud Engagement Journeys for Salesforce」の方でも、同じ結果が出ていることが分かります。

連絡先をジャーニーから削除する
さて、ここからジャーニーから連絡先を削除する方法は 2 つあります。
ジャーニー名が分かったので、Marketing Cloud の Journey Builder よりジャーニーに遷移して「健全性」から削除する
REST API を使用して削除する
1. ジャーニーに遷移して「健全性」から削除する方法
「Journey 008」のジャーニーで「健全性」のボタンをクリックします。

「連絡先キー」で検索します。

結果が表示されたら「ジャーニーから削除」をクリックして削除します。

注意:健全性からの削除は、ジャーニーの履歴機能を使用しているため、過去 30 日以内の結果しか返しません。すでに 30 日を超えており表示されない場合は、REST API 使用して削除ください。
2. REST API を使用して削除する方法
以下を Talend API Tester や Postman で実行してください。
--- スコープ
Automation - Journeys - Read
Automation - Journeys - Execute
Automation - Journeys - Activate/Stop/Pause/Resume/Send/Schedule
Contacts - List and Subscribers - Read
Data - Data Extensions - Read
--- メソッド
POST
--- エンドポイント
[REST ベース URL].rest.marketingcloudapis.com/interaction/v1/interactions/contactexit
--- ヘッダー
Content-Type:application/json
Authorization:Bearer [アクセストークン]
--- ボディ
[
{
"ContactKey": "0035Y000072MKdIQAW",
"DefinitionKey": "28f23a58-3797-31f4-6e69-63fc8c642f34"
}
]いかがでしたでしょうか。
これらの仕組みは Talend API Tester や Postman に一度作成してしまえば、連絡先キーを入れ替えるだけで繰り返し使用ができますので、一度仕組みを作ってしまうことをオススメします。
今回は以上です。
