Salesforce画面フロー:1画面で処理完結するレコード検索画面
目次
Salesforceの画面フローはメジャーアップデートの度に進化しており、従来はLWCなどの開発でのみ可能であったUIがフローだけで対応可能になってきています。
今回の記事では2025年6月のSummer’25でリリースされた、画面フローの「画面アクション」を活用していきます。
画面要素で入力された値を元に、画面表示をリアルタイムで更新することが可能になっています。

従来からReactive Screen Flow(反応型画面フロー)として下記の機能は備わっていました。
Salesforceの画面フローが進化 – リアルタイムな画面更新で業務効率向上
本記事の内容はさらに柔軟性があり、画面フローで入力した検索値に合致するレコードをリアルタイムに結果表示するなどが可能になっています。
処理のために画面遷移をしたりボタンを押したりすること無く、リアルタイム処理できる設計例をみていきましょう。
完成系イメージ
まずは先に完成系のフローを確認します。
ユーザが画面上で入力した「検索開始日」「検索終了日」の間の日付が完了予定日になっている商談をリアルタイムに検索し表示する仕組みになります。
わかりやすいようにデータテーブルは上段と下段で計2つ配置しています。
・上段:未承認の全商談一覧(日付フィルター無し)
・下段:日付フィルター適用後の未承認商談一覧
日付の検索結果のみが必要であれば下段のみの表示にすることも可能です。
検索ボタンや「次へ」ボタンを押さず、日付を入力するとリアルタイムに検索結果が表示される点が特徴です。

処理の仕組み:2つのフローを作成し、相互に値を受け渡す
今回は下記のように「①画面フロー」「②自動起動フロー」の2つを作成し、相互に値を受け渡す設計としている点がポイントです。
【ポイント】
2つのフローの役割はそれぞれ下記になります。
①画面フロー:検索値の入力や、検索値に合致するレコードを表示する役割
②自動起動フロー:①の画面フローで入力された検索値を受取り、レコードにフィルターをかけてレコードを画面フローに戻す役割
1つ目のフロー:画面フローの作成
「検索値の入力や、検索値に合致するレコードを表示する役割」のフローです。
商談オブジェクトへ「承認ステータス」項目を作成し、値が”1.未申請”レコードとなっている商談一覧をデータテーブルへ表示する、という画面フローを作成します。
特に特別な形ではなく、まずはよくあるシンプルな画面フローになります。
- まずはレコード取得要素で商談ステータスの値が”1.未申請”レコード”となっている商談を取得します。
- 商談を完了予定日で絞り込めるように「検索開始日」「検索終了日」という日付コンポーネントも配置します。

取得した商談を画面要素のデータテーブルのソースコレクションとして表示します。
データテーブルへの表示項目は商談名、商談ステータスの他に、この後使用する完了予定日も含めておきます。


画面フローは下記の形となるため、保存し有効化まで済ませておきます。
2つ目のフロー:自動起動フローの作成
次に自動起動フローを新規作成します。
「1つ目に作成した画面フローで入力された検索値を受取り、レコードにフィルターをかけた結果を画面フローに戻す役割」のフローです。
- まずは自動起動フロー内で下記A〜Cの3つの変数を作成しておきます。
- 次に画面フローから取得した検索開始日、検索終了日、商談レコードコレクションを使い、商談を日付で絞り込みます。
- 日付フィルターをかけた商談レコードを画面フローに返すために、「oppCollection」の商談レコードコレクション変数に値を反映します。
・A:画面フローで入力された検索開始日を受け取るための日付変数「startDate」
→画面フローから値を受け取るために「入力で使用可能」にチェックを付けます。

・B:画面フローで入力された検索終了日を受け取るための日付変数「endDate」
→画面フローから値を受け取るために「入力で使用可能」にチェックを付けます。

・C:画面フローで取得した商談ステータスの値が”1.未申請”レコード”となっている商談レコードを受け取るための商談レコードコレクション変数「oppCollection」
→画面フローから値を受け取るために「入力で使用可能」にチェックを付け、
自動起動フローから画面フローへ値を返すために「出力で使用可能」にチェックを付けます。

自動起動フローに計3つの要素を用意出来ました。

【ポイント】
画面フローから受け取った商談コレクションを元にフィルターをかけたいので、要素は「コレクション検索条件」を使用します。

これで日付フィルターした商談を画面フローに返すことが出来ました。
2つのフローを連動設定
これで画面フロー、自動起動フローの下準備が出来ました。
最後に画面フロー側でリアルタイムに検索結果が処理されるよう設定していきます。
- 画面フロー側の画面要素で「画面アクションを設定」にて自動起動フローを指定します。
- 画面フローから自動起動フローへ渡す変数を指定します。
- 画面フローから自動起動フローへ渡す変数を指定します。
- 自動起動フローから返ってきた商談を表示するデータテーブルを配置します。
- 最終的に画面要素に2つのデータテーブルを配置する形になりました。
【ポイント】
この「画面アクション」で活用することで自動起動フローと処理連動させることが本記事の1番の特徴です。
自動起動フロー側が有効化されてないとこの選択肢にフローが表示されません。

【ポイント】
自動起動フロー側で最初に作成した3つの変数がここに表示されますが、「入力で使用可能」にチェックを付けた変数でないと表示されません。

「画面の読み込み時のアクションを実行するタイミング」「アクション実行条件を設定」の設定も可能です。
今回は検索開始日、検索終了日が入力されるとリアルタイムで商談検索結果を表示したいため、実行タイミングは“画面が読み込まれるたびに”に設定しておきます。

未申請の商談一覧データテーブルの下段にもう1つデータテーブルを表示する構成です。

・上段:未承認の全商談一覧
・下段:日付フィルター適用後の未承認商談一覧
デバッグで挙動の確認
例えば完了予定日の検索範囲を25/12/8~26/1/9と指定することで、未申請の全3商談のうち2商談をリアルタイムに絞り込みし下段に表示することが出来ることを確認できました。
検索ボタンや「次へ」ボタンを押さずにリアルタイムに即時検索ができるため、ユーザビリティの向上が期待出来ますね。

注意点
あくまでフローでの処理になるので、処理の件数には注意が必要です。
今回は未承認ステータスという条件を設定していますが、商談の全件取得など条件無しでの取得は処理エラーとなってしまう可能性があるため注意が必要です。
主に下記のガバナ制限には注意しましょう。
・SOQLクエリによって取得されるレコードの合計数:5万件
・発行されるSOQLクエリの合計数:100回
・DMLステートメントで処理されるレコードの合計数:1万件
・発行されるDMLステートメントの合計数:150回
まとめ
今回は画面フローの「画面アクション」を活用し、自動起動フローと連動することでリアルタイムにレコード検索結果を表示する仕組みを試しました。
「画面フローから自動で別の自動起動フローへ値を渡し、自動起動フローから再度値が返ってくる」ということが可能なため、
工夫次第で柔軟な仕組みが実現可能です。
下記のような観点の際には「画面アクション」が最適なシーンとありそうです。
・ユーザの入力途中で処理したい
・画面遷移やボタンを押させずに結果を返したい
・入力値を即時に検証・反映したい
・LWCやApexまでは実装したくない
活用が想定される具体例としては下記などが考えられます。
・入力値に応じたレコード検索結果の表示したい場合(=本記事の内容)
・見積金額など、条件を変えながら金額を比較したり値を保存せずに仮の計算結果を表示したい場合
・外部連携の実行前に事前の入力チェックをしたい場合
検索、検証、計算、判定などのシーンでは今回の「画面アクション」を活用出来そうです。
また自動起動フロー側でレコード削除や処理分岐、親や子レコードの処理を追加してみるのも面白そうです。
工夫しながら、使いやすく保守性も高い仕組みを考えていきましょう。
<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!
医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら


