Salesforceのフローを使用することで、ノーコードで高度なオートメーションを構築できます。フローは非常に便利なツールですが、使いこなすためにはフローの包括的な知識が求められます。この記事では、自在にフローを作成できるようになるために必要な前提知識を整理し、フローの全体像をしっかりと理解できるよう解説します。
Salesforce フローとは?
Salesforceフローとは、業務プロセスを自動化するためのノーコードツールです。ユーザーは、ドラッグ&ドロップのUIから、データ操作や条件分岐、ユーザーの入力画面などを構築できます。
フローを利用することで、シンプルな項目自動更新やレコード自動作成だけでなく、複雑な業務プロセスをSalesforce上に置き換えることも可能です。
例えばよくある「他部門への業務依頼」のシーンで、フローを使って以下のように業務を自動化できます。
①他部門への業務依頼の際に、依頼用ボタンを押す。
②ボタンを押したら依頼のために必要な情報が正しく埋まっているかフロー内で自動チェックされる。
③もし正しくない or 埋まっていなかったらエラーを出して依頼はブロックされる。
④正しく埋まっていたらさらにカスタムの入力画面を表示し、ユーザーに追加情報を入力させる。
⑤複数のオブジェクトにまたがるデータをロジックに沿って取得し、ユーザーがカスタム画面から入力したデータと組み合わせて、依頼用のレコードを自動作成する。
このように業務をフローに置き換えていくことで、属人的な作業をどんどん減らしていけますし、業務がシステム上に載ってくる状態になります。
業務がシステム上に載ってくると、業務を構成する個別の要素を取り出して見直すことがしやすくなるため、実は不要だった業務を無くしたり、他の業務と合体させることで、根本的な工数を削減することにもつながります。
このような一連の改善プロセスを、ノーコードで高速に回転させて行ける点がフローの最大の強みです。
旧オートメーション機能からフローへの移行について
Salesforceには、元々ワークフロールールやプロセスビルダーといった非常にシンプルなオートメーション機能が存在しました。これらの機能はフロー同様に、ノーコードで自動処理を行うことができます。フローよりも自由度が低い分、初心者にも使いやすいツールでした。
しかし、Salesforce社は2025年12月31日にワークフロールールおよびプロセスビルダーのサポートを廃止する予定であり、それまでにフロー(Flow Builder)に移行することを推奨しています。フローはワークフロールールやプロセスビルダーと比較して自由度が高く、その分設定難易度も若干上がっていますが、メジャーアップデートごとに新機能が追加されており、非常に注目されている領域です。
さらに、以前はApexでしか実現できなかった複雑な処理も、現在ではフローで実装できるようになってきています。この機会にフローを習得する価値は十分にあると言えます。
Salesforceフローの種類
ここからはフローの機能の紹介に入っていきます。フローにはいくつかの種類があり、要件に応じて適切なフローを選択することが重要です。フローの各種類について、特徴を確認していきましょう。
画面フロー
画面フローは、ユーザー操作をトリガーにして起動するフローです。LightningページやExperience Cloudサイト、クイックアクションなどから開始でき、ユーザーが入力したデータに基づいて動的に画面を表示したり、処理を進めることができます。何かのオートメーションをするために、ユーザーからの追加情報が必要な場合などに使用します。
レコードトリガフロー
レコードトリガフローは、Salesforce内でレコードが作成、更新、または削除されたときに自動的に起動するフローです。例えば、商談フェーズが変更された際にToDoを自動生成するなど、レコードの状態に応じてさまざまなアクションを自動で実行するために利用されます。
レコードトリガフローの開始条件には、「レコードの保存前」か「レコード保存後」を選択できます。保存前のレコードの値をチェックしたり、変更したい場合は「高速項目更新」、保存後に確定される項目(ID、自動採番、更新日など)を利用する場合には「アクションと関連レコード」を選択します。
スケジュールトリガフロー
スケジュールトリガフローは、指定した時間や頻度に基づいて定期的に起動するフローです。特定の条件に一致するレコードを自動的に処理したり、未完了タスクのリマインダーを作成するなど、定期的なバッチ処理を自動化できます。ただし、24時間あたりに処理できるレコード数には25万件という上限があるため、効率的に条件を設定することが重要です。
プラットフォームイベントトリガフロー
プラットフォームイベントトリガフローは、Salesforceと外部システムの連携を目的としたフローです。外部アプリケーションやシステムからプラットフォームイベントが発火すると、それをトリガーにフローが起動し、Salesforce内で複数の処理を並行して実行します。例えば、外部注文システムからのイベントを受信し、注文処理を自動化することができます。
自動起動フロー(トリガなし)
自動起動フローは、トリガを持たず、他の自動化ツールや外部からの呼び出しによって実行されるフローです。Apexコード、プロセスビルダー、REST APIなどから呼び出されて起動し、特定の処理を自動で実行します。これにより、複雑な業務ロジックをシンプルに実装することができます。
以上がフローで使用できる機能種類の一覧です。完全にノーコードで使用できるフローは画面フロー、レコードトリガフロー、スケジュールトリガフローとなります。
これら3つのフローを使いこなすことで、ほとんどのオートメーションは実現することが出来ます。どうしてもガバナ制限に抵触してしまう場合や、フローでは複雑になりすぎてしまう場合にApexを検討する形になると思います。
フローで使用できる要素
フローでは、下図の要素を配置してデータを操作します。
データ
レコードを作成: 新しいレコードをSalesforceに作成するための要素です。
レコードを更新: 既存のレコードの項目を更新するための要素です。
レコードを取得: 条件に一致するレコードを検索し、利用するための要素です。
レコードを削除: 指定したレコードをSalesforceから削除するための要素です。
ロジック
割り当て: フロー内の変数に値を設定するための要素です。変数やコレクションに特定の値を割り当てたり、計算結果を保存することで、フロー内で後続の処理に利用できます。
決定: フロー内で条件分岐を行うための要素です。指定した条件に基づいて、フローの進行方向を選択し、異なる処理を実行することができます。
ループ: コレクション内の各アイテムに対して繰り返し処理を行うための要素です。例えば、リストに含まれる複数のレコードに対して順番に処理を行う場合などに利用されます。
変換: データの変換を行うための要素です。例えば、テキストを数値に変換したり、日付をテキストに変換することで、異なる型のデータを扱いやすくします。また、コレクション変数を単一レコード変数に変換することが出来るため、集計でも使用することが出来る注目の要素です。
コレクション並び替え: コレクション内のレコードを特定の基準に基づいて並び替えるための要素です。例えば、レコードの作成日や数値項目の大小に応じて並び替えて、最も小さいレコードを使う、などで使用できます。
コレクション検索条件: コレクション内のレコードを特定条件で検索し、一致するものだけを抽出するための要素です。取得要素でレコードを取ってきた中からさらに処理を分割させたい場合などに使用します。
相互関係
アクション: フロー内で事前定義された外部アクションやSalesforceの標準機能を実行するための要素です。例えば、メールの送信、Chatterの投稿、レコードの作成や更新などを、フローの一部として自動的に実行することができます。また、ApexクラスやLightningコンポーネントを呼び出して、さらに高度な処理を行うことも可能です。
サブフロー: 既存のフローを別のフロー内で呼び出して実行するための要素です。これにより、繰り返し使用する処理を1つのフローとして定義し、他のフローから簡単に再利用することができます。これによって、フローの設計が効率化され、メンテナンスも容易になります。
カスタムエラー: フロー内で特定の条件が満たされた場合にエラーメッセージを表示し、フローの実行を停止するための要素です。これにより、ユーザーに対して適切なエラーメッセージを表示し、問題が発生した時点で処理を中断して、無効なデータ入力や操作を防ぐことができます。
フローで使用できるリソース
フローでは下図のリソースを使用することができます。
変数: フロー内でデータを一時的に保存するためのリソースです。変数にはテキスト、数値、日付などさまざまなデータ型を設定でき、フローの進行中にデータを格納し、後続の処理で使用します。例えば、ユーザーの入力を保存し、次のステップで利用することができます。
定数: フロー内で一定の値を保持するリソースです。定数はフローの実行中に変化しない値を設定するために使用されます。例えば、特定の税率や固定値を設定して、フロー内の計算で利用する場合などに便利です。
数式: フロー内で動的に計算を行うためのリソースです。変数や定数、他のリソースを組み合わせて数式を作成し、その結果を利用することができます。例えば、売上金額に税率をかけた金額を計算するなど、複雑な計算を実行できます。Salesforceの通常の数式とほとんど同様です。
テキストテンプレート: フロー内で使用するテキストのひな形を作成するためのリソースです。動的に変数や定数を埋め込んだテキストを生成できるため、メールの本文や通知メッセージを自動生成する際に使用されます。これにより、個別のデータに基づいたメッセージを簡単に作成できます。
フェーズ: フローの進行状況を追跡するためのリソースです。フェーズを利用して、フローの特定のステップで現在の状態や進行状況を表現し、後続の処理を制御することができます。これにより、フロー全体の管理が容易になり、複雑な業務プロセスを視覚的に把握できます。
フローの全体像まとめ
Salesforceフローをノーコードで開発するためには、まず要件に合ったフロータイプを選択することが重要です。例えば、「○○したら○○する」という具体的な条件がある場合にはレコードトリガフローを選びます。ユーザーに入力を促したり、注意文を表示する場合には画面フローが適しています。なお、レコードトリガフローでは画面の表示ができない点に注意が必要です。
一方で、特定のレコードに対して定期的にデータ操作を行い、ユーザーの操作に依存せずにデータの整合性を保ちたい場合は、スケジュールトリガフローが有効です。
これらのフローを構築する際には、レコードの取得や更新といった基本要素を適切に配置していきます。さらに、データ更新以外の処理(例:メール送信やSlack通知)はアクション要素を利用します。また、条件を限定してレコードを取得する場合には数式リソースを、レコード作成や更新時には変数リソースを活用することで、フロー全体をより効率的に設計できます。
以上のポイントを押さえながら、要件に応じた最適なフローを選択し、構築することで、Salesforce内で効果的に業務プロセスを自動化できます。