🦥

Data Cloudに格納されているデータをSalesforceの任意のレコードページでリストビューとして取得する

2024/10/31に公開

TL;DR

Data Cloudには多種多様なデータを取得できるため、収集されたデータをSalesforceのレコードに紐づいてSalesforceのレコードページで表示する仕組みを説明します。
今回は特に下記のことを意識して機能を試してみました。

  • できる限り消費するクレジットを節約できるようにする
  • 最大の柔軟性を保つように任意のレコードページでも実現できるようにする
  • できる限りノーコードで実現する

最終的に実現できたイメージ

Data Cloudにある機器に関連する過去の修理依頼履歴をService Cloudの画面からボタンをクリックするたびに取得する

ソリューション

今回はSalesforceの画面Flowを利用してData Cloudのデータを取得し、Data Tableコンポーネントで表示することを実現しました。全体の作りは簡単ですが、Data Cloudのデータを取得した後の処理が従来Sales CloudやService CloudなどCRM側からデータを取得する際の処理と少し違いがあるためご注意ください。

最終的に構築した画面Flowイメージ

実装の流れ

  • まず、最初に本Flowを埋め込むレコードページのレコードIDをベースに関連のレコード情報を取得します。レコードページからレコードIDを取得するにはFlowに「入力で利用可能」にチェックを入れたテキスト変数を用意します。これによって機器の名称を取得します。
  • 「履歴取得」ノードでData Cloudのオブジェクトから条件に合う全レコードを取得できる
  • Data Cloudから取得したデータを格納するレコードコレクションは一部のノードでしか利用できません。レコードコレクション変数の前にある雲アイコンにご注目ください。このアイコンがある変数はループと画面表示コンポーネントでの表示テキストのみ利用可能です。
  • Data Cloudのレコードコレクションを通常のノードで利用するためにはループの中で各レコードを別レコード変数へ割り当てる必要があります。
  • 割り当て先のレコード変数を作成するためにCRM側でData Cloudと同じ項目を持つ空のオブジェクトを作成して、このオブジェクトのレコード変数をFlowで用意する必要があります。
  • そしてキャッシュ用レコード変数を同じオブジェクトのレコードコレクション変数に追加します。
  • これにより、画面コンポーネントでData Tableを選び、上記のレコードコレクション変数を指定してリストビューを表示できるようになりました。

    上記の画面フローを機器オブジェクトのレコードページに組み込むことで、機器名に紐づく修理依頼履歴を取得できるようになりました。

注意事項

FlowのLimitにより、大量のレコードをData Cloudから取得したり、処理することはできないため

  • 参考: トランザクション単位のフローの制限
    データを要件に沿って日付やその他条件を追加して絞って表示したり、複数画面(トランザクション)に分けて部分的に取得する形が良いかと思います。

※本記事は、私が所属する会社とは一切関係のない事柄です。

Discussion