【第408回】 Marketing Cloud Next : ID 解決とデータグラフのスケジュール
Marketing Cloud Next Growth & Advanced Edition では、ID 解決(Identity Resolution)と データグラフ(Data Graph)は、標準機能のままではスケジュール実行ができません。
そのため、任意の時間に実行させたい場合は、スケジュールトリガーフローからフローを起動する設定が必要になります。

ここでは、ID 解決 と データグラフ をスケジュール実行する手順を分かりやすく解説します。
ID 解決のスケジュール実行
事前準備:今後はフローによってスケジュール実行されるため、まず ID 解決の「自動公開」設定を無効化します。

1. スケジュールトリガーフローを開き、実行開始日時 と 実行頻度 を設定します。今回は、AM 7 時に 1 日 1 回実行されるようにします。

2. 次に、フローで アクション要素 を追加し、検索窓で Identity Resolution を検索して、「CDP Run Identity Resolution(CDP ID 解決の実行)」アクションを選択します。

3. アクション要素の表示名・API 参照名を設定したら、ID 解決の 18 桁の Salesforce ID を入力します。
Salesforce ID は、ID 解決の詳細画面の URL から取得できます。


4. 以上で設定は完了です。
ID 解決のみをスケジュール実行したい場合は、このままフローをアクティブ化してください。

Tips:計算済みインサイトを公開(cdpPublishCalculatedInsight) アクションを利用すると、計算済みインサイトについても同様の方法でスケジュール公開を行うことができます。なお、計算済みインサイトの場合は、計算済みインサイト ID ではなく、API 参照名 を入力してください。
また 2 つ以上の計算済みインサイトを連続してパスに並べる必要がある場合は、1 分の待機を設けてください。設定しない場合はエラーが発生します。
データグラフのスケジュール実行
続いて、データグラフ(Data Graph)のスケジュール設定です。
事前準備:こちらも、今後フローによりスケジュール実行されますので、既存のデータグラフのスケジュールを最大の「毎月」に変更しておきます。

1. データグラフの実行には 標準アクションが用意されていません ので、API をコールして実行する開発を行います。
まずは、以下の記事を参考にして 「コンシューマー鍵」と「コンシューマーの秘密」 を入手してください。
2. 「コンシューマー鍵」と「コンシューマーの秘密」が取得できましたら、設定から 「指定ログイン情報」 を検索し、「外部ログイン情報」タブを選択します。

3. 新規をクリックします。

4. 表示名と API 参照名 を決め、認証プロトコルを OAuth 2.0 に設定します。

5. 続いて、認証フロー種別 で 「クライアントの秘密によるクライアントログイン情報フロー」 を選択します。

6. 「リクエストボディでクライアントログイン情報を渡す」 にチェックを入れ、ID プロバイダー URL には以下を入力して保存します。
https://[My Domain Name].my.salesforce.com/services/oauth2/token

7. 続いて、少し下にある プリンシパル の箇所で新規をクリックします。

Tips:プリンシパルとは、「コンシューマー鍵」と「コンシューマーの秘密」の組み合わせ を指します。ここでは、外部サービスにログインするための認証情報を登録します。
8. プリンシパルのパラメーター名を決め、連番は 1 で良いです。取得済みの「コンシューマー鍵」と「コンシューマーの秘密」 を入力して保存します。

9. 次に、左メニューから再度「指定ログイン情報」をクリックし、「指定ログイン情報」タブで新規作成します。

10. 表示名・API 参照名を決め、URL には次を入力します。末尾の「/」は不要です。「コールアウトに対応」はオンのままです。
https://[My Domain Name].my.salesforce.com

11. 作成した 外部ログイン情報 を選択し、認証ヘッダーを生成(Generate Authorization Header)をチェックします。アウトバウンドネットワーク接続は「-- なし --」のままであることを確認し、保存します。

12. 続いて、設定で権限セットを検索し、新規で権限セットを作成します。

13. 権限セットの名前と API 参照名を入力して保存します。

14. 作成した権限セットから 「外部ログイン情報プリンシパルアクセス」 をクリックします。

15. 先ほど作成した 外部ログイン情報プリンシパル を有効化して保存します。

16. 次に 外部クライアントアプリケーションマネージャー に移動し、作成した 外部クライアントアプリケーション を開きます。

17. OAuth ポリシーをクリックし、「クライアントログイン情報フローを有効化」の実行者(ユーザー)を確認します。

※ 今回、この実行ユーザー(Integration User)には「Data Cloud アーキテクト」の権限セットを付与してください。
18. 確認したら、先ほどの権限セットに戻って、割り当ての管理 をクリックします。

19. 割り当てを追加 をクリックします。

20. 先ほど確認した「クライアントログイン情報フローを有効化」の実行者(ユーザー)と、現在ログインしている自分(システム管理者)の 2 つを選択して、次へをクリックします。

Tips:なぜ、自分(システム管理者)を選択したかというと、後にフローでデバッグを行うのですが、デバッグに関しては、現在のログインユーザー権限で実行されるためです。
21. 割り当て ボタンをクリックします。

22 .ここまで完了したらフローに戻り、アクションを選択して、一番下にある 「HTTP コールアウトを作成」 をクリックします。

23. 名前を決め、上で作成した 指定ログイン情報 を選択し、次へ進みます。
※この名前は、「スペース」も「アンダースコア」も利用できません。

24. 次も名前を設定し、メソッド は POST を選択します。

25. URL パスには以下を入力します。
※ Data Graph API 名は自身のものに変更してください。
/services/data/v66.0/ssot/data-graphs/[Data Graph API name]/actions/refresh

26. このエンドポイントは リクエストボディなし で実行できます。サンプル JSON 要求を入力せず、そのまま次へ進みます。

27. 続いて、応答の例を使用 を選択して、次へ進みます。

28. こちらでは、サンプル JSON 応答 に以下を入力して、確認 をクリックしたら、保存します。
{
"errors": [
{
"errorCode": "",
"message": ""
}
],
"success": true
}
29. アクションの表示名と API 参照名を入力します。

30. ここで一度、フロー名と API 名を入力して保存します。

31. テストは デバッグ から実行できます。

32. 「実行」をクリックします。

33. エラーが出ずに完了すれば 実装は成功 です。

注意事項(重要)
前回 ID 解決以降、データモデルオブジェクト内にデータ変更がない場合
→ データグラフは スキップ扱い=エラー になります。
→ 何かデータ変更を行ってからデバッグを実行してください。
ID 解決が実行中であることが確認できます。

データグラフも開始されました。

34. 最後に、待機アクティビティを配置します。今回は簡易的に 1 時間待機としました。

35. 前述の通り、データ変更がない場合スキップ=エラーとなるため、「障害パス」を設けてフローが停止しないようにすることが重要です。

36. その後、障害パス上に 1 分の待機を配置します。これを配置しない場合は、その後のデータグラフのアクションもスキップされます。

37. 再び、データグラフのアクションに戻したいので、要素の追加(+)をクリックして、「要素に接続」を選択します。

38. Data Graph のアクション に接続します。

39. これで完成です。保存してアクティブ化してください。

いかがでしたでしょうか。
今回作成した 指定ログイン情報 を利用すると、さまざまな API をフローから実行できるようになります。データグラフに限らず、ぜひ他の API も自動化してみてください。
今回は以上です。
