🦥
Data Cloudに格納されているデータをSalesforceの任意のレコードページでリストビューとして取得する
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