目次
はじめに
Salesforceを業務で活用していると、「関連リストの情報を親レコードの項目にまとめて表示したい」というニーズが頻繁に発生します。例えば、営業担当者が取引先情報を確認する際に、過去の活動履歴を都度関連リストまでクリックして確認するのではなく、取引先画面上で最新の活動内容が一目でわかれば、業務効率が大幅に向上します。
このような要件は、Salesforceの標準機能だけでは実現が難しく、フロー(特にレコードトリガーフロー)を使って、実装することが可能です。
本記事では、Salesforceの標準機能であるフローを活用して、関連オブジェクトの情報を取得し、親レコードの項目に格納する方法について、初心者の方でも実装できるよう詳細に解説します。
なぜ関連リストの情報を親レコードに表示すべきか?
関連リストの情報を親レコードに表示するメリットとして、以下のような点が挙げられます:
- 情報アクセスの迅速化:ユーザーが関連リストをクリックせずに必要な情報を確認できる
- レポート・ダッシュボードでの活用:親レコードの項目として保存することで、レポートやダッシュボードでの集計・分析が容易になる
- ページレイアウトのカスタマイズ柔軟性:関連リストとは別の場所に重要情報を配置可能
- 条件付き表示や書式設定:テキスト形式で保存することで、HTMLやリッチテキスト機能を活用した視覚的な強調が可能
- データ活用の幅の拡大:保存された情報を基に別のプロセスの条件として活用できる
実装するユースケース
本記事では、以下のようなユースケースを想定して実装方法を解説します:
- 親オブジェクト:
取引先(Account)
- 子オブジェクト:
活動(Task)
- 実現したいこと:取引先に紐づく最新の3件の活動(Task)の「件名」「期日」「ステータス」「担当者」の情報をまとめて、取引先の「最新活動概要__c」というカスタム項目に保存する
- 業務上の価値:営業担当者が取引先ページを開いた際に、直近のコミュニケーション履歴や進行中のタスクを即座に把握できる
この機能により、顧客対応の質が向上し、営業チームの業務効率化が期待できます。
ステップ1:事前準備とカスタム項目の作成
まず、取引先オブジェクトに必要なカスタム項目を作成します。
- Salesforceの設定から「オブジェクトマネージャ」を開く
- **「取引先」**オブジェクトを選択し、「項目とリレーション」をクリック
- 「新規」ボタンをクリックし、以下の設定でカスタム項目を作成:
- データ型:ロングテキストエリア
- 項目の表示ラベル:最新活動概要
- 項目名:LatestActivitySummary
- 表示行数:5
- 項目の説明:取引先に紐づく最新3件の活動内容を自動表示
- ヘルプテキスト:この項目には最新の3件の活動情報が自動的に表示されます。編集は不要です。

ステップ2:フローの作成
次に、活動(Task)の作成・更新時に自動的に実行されるフローを作成します。
2.1 フローの基本設定
- Salesforceの設定から「フロー」を開く
- 「新規フロー」ボタンをクリックし、**「レコードトリガーフロー」**を選択
- 以下の設定を行う:
- オブジェクトを選択:ToDo
- トリガーを設定:レコードが作成または更新された
- エントリー条件を設定:なし
- フローを最適化:アクションと関連レコード

2.2 条件分岐の設定
Activity(Task)オブジェクトは、WhatIdフィールドに複数の種類のオブジェクト(取引先、商談など)を関連付けることができます。そのため、WhatIdが取引先(Account)を参照している場合のみフローを実行するよう条件分岐を設定します。
- 判断要素を追加
- 要素名:取引先関連チェック
- API参照名:AccountCheck
- 条件名:WhatIdが取引先
- 結果のAPI参照名:WhatIdisAccount
- 条件:
{!$Record.WhatId}
が “001” で始まる (注:Salesforceでは取引先IDは”001″で始まります)

2.3 関連タスクの取得
次に、トリガーとなったTaskの関連取引先に紐づく、最新のTaskレコードを取得します。
- レコード取得要素を追加
- 要素名:関連タスクの取得
- API参照名:GetRelatedTasks
- 取得するレコード:複数のレコード
- このオブジェクトのレコードを取得:Todo(Task)
- Todoレコードを絞り込み:
- 「WhatId」 「次の文字列と一致する」
「{!$Record.WhatId}」
- ( 「Status が ‘完了’ と等しくない」と設定することでより詳細な条件を追加することも可能)
- 「WhatId」 「次の文字列と一致する」
- 並び替え:作成日(CreatedDate)の降順(最新順)
- 保存するレコード数:「すべてのレコード、指定した制限まで」
- 保存するレコードの最大数:「3」

2.4 取得した関連タスク情報の加工
取得した活動情報を見やすく整形します。
- 新規リソースの作成
- リソース:テキストテンプレート
- API参照名:Texts
- 本文:下記の図のように記入します。
件名:{!TaskLoop.Subject}
内容:{!TaskLoop.Description}
担当:{!TaskLoop.Owner:User.LastName}{!TaskLoop.Owner:User.FirstName}
ーーーーーーーーーーーーーーーー
{!GlobalConstantEmptyString}
※大切なポイント:{!GlobalConstantEmptyString}は、改行するための文字列です。(後述します)

次に改行するためのテキスト変数を作成します。これは改行するための変数です。
下記のように変数を作成します。
- API参照名:GlobalConstantEmptyString
- データ型:テキスト
- デフォルト値:空白値(空の文字列)
- {!$GlobalConstant.EmptyString}と入力すると空白値になります

次にすべての活動内容を格納するためのテキスト変数を作成します。
下記のように変数を作成します。
- API参照名:List
- データ型:テキスト

次にループの中に下記のような「割り当て」要素を作成します。
つまり、取得した3つの活動をTexts変数に整形して格納し、3つの活動内容をList変数にまとめる処理をループを使って実施します。
- 表示ラベル:テキスト整形
- API参照名:TextFormating
- 変数:List(変数)
- 演算子:追加
- 値:Texts(変数)

2.5 親レコード(取引先)の更新
最後に、整形したテキスト(List変数の内容)を取引先レコードの「LastestActivitySummary__c」フィールドに保存します。
- レコード更新要素を追加
- 要素名:取引先更新
- API参照名:UpdateAccount
- 更新するレコードを検索してその値を設定する方法:レコードを識別する条件を指定し、項目を個別に設定
- オブジェクト:取引先(Account)
- 取引先レコードを絞り込み:ID が
{!$Record.WhatId}
と等しい - 取引先の項目値をレコードに設定:
- LastestActivitySummary__c ← 「List」

2.6 フローの完成と有効化
フローの「保存」後に「有効化」を行います。これにより、フローがSalesforce環境で実行可能になります。
バリエーション:実務での応用例
この基本的なパターンはさまざまなビジネスシーンで応用できます:
例1:商談と見積りの連携
- 親オブジェクト:商談(Opportunity)
- 子オブジェクト:見積(Quote)
- 実装内容:最新の有効な見積情報(金額、割引率など)を商談に表示
- 業務効果:営業担当者が商談画面で最新の見積情報を即座に確認可能
例2:取引先と取引先責任者の連携
- 親オブジェクト:取引先(Account)
- 子オブジェクト:取引先責任者(Contact)
- 実装内容:主要連絡先(役職が「部長」以上)の情報を取引先に一覧表示
- 業務効果:アカウント担当者が重要人物の連絡先情報にすぐアクセス可能
例3:ケースとソリューション履歴の連携
- 親オブジェクト:ケース(Case)
- 子オブジェクト:ケースコメント(CaseComment)
- 実装内容:対応履歴の最新情報をケースに表示
- 業務効果:サポート担当者が過去の対応内容を即座に把握可能
まとめ
本記事では、Salesforceのフローを活用して関連リストの情報を親レコードに表示する方法を解説しました。この手法を活用することで、以下のメリットが得られます:
- 情報アクセスの効率化:必要な情報を素早く確認できる
- データ活用の拡大:親レコードの項目として保存することで分析やレポート作成が容易に
- ユーザビリティの向上:必要な情報を見やすく整理して表示
- 柔軟なカスタマイズ:業務ニーズに応じた情報表示が可能
Salesforceのフローは、専門的な開発知識がなくても高度なカスタマイズを実現できる強力なツールです。本記事で紹介した手法をベースに、ぜひ皆さんの業務に合わせたカスタマイズを試みてください。
また、この基本パターンを応用すれば、様々な業務課題を解決できます。まずは小規模な実装から始めて、徐々に複雑な処理にチャレンジしていくことをお勧めします。Salesforceの自動化機能を最大限に活用し、業務効率化と顧客体験の向上を実現しましょう!