Salesforceにはビジネスプロセスを自動化するツールが複数存在します。
今回はSalesforceフローに含まれる、Flow Builderについて紹介します。
フロー(Flow Builder)とは
Flow Builderは、Salesforceフローという製品に含まれるツールのことで、ビジネスプロセスを自動化するためのツールです。
画面やDML操作、ループ処理などの各種要素をつなげることでフローを設定します。
フローを使用することで、例えば以下のようなビジネスプロセスの自動化を柔軟に設定することが可能です。
- レコードの作成・更新をトリガに、関連レコードの作成・更新を自動実行する
- 設定した画面を表示しユーザにフォーム入力させ、入力内容に沿って自動処理を実行する
- スケジュールを設定し、指定した日時でDML操作を行う
上記以外にも、設定を組み合わせていくことで、様々な処理の自動化を実現できます。
Flow Builderでは処理の流れが視覚的に確認できるため、複雑な処理の流れも、ある程度直感的に設定することができます。
Flow Builderに似た他のプロセス自動化機能
Flow Builderと似たような機能で、Salesforceには以下のようなビジネスプロセス自動化機能があります。(各機能の詳細については、リンク先の別記事を参照してください)
- ワークフロールール
Salesforceでは最も昔に実装されたプロセスの自動化機能です。
レコードが作成・更新されたことトリガに、設定したアクションを自動で実行します。
一番古い機能だけあって、単一のif-thenステートメントでしか設定できない、レコードの作成はToDoのみ等、実現できる内容には制限が多いです。 - プロセスビルダー
ワークフロールールより後に実装されたプロセスの自動化機能です。
複数のif-thenステートメントで設定が可能となり、別のプロセスからの呼び出しも可能となっています。
また、条件分岐が視覚的に見やすくなっていることも特徴です。 - 承認プロセス
ビジネスにおける、別のユーザやグループからの承認を要するプロセスの自動化に特化した機能です。
ワークフロールールやプロセスビルダーとの違い
Flow Builderはワークフロールールやプロセスビルダーと似ていて、どの機能を用いてプロセスの自動化を実現すべきか混乱しやすいかもしれません。
結論を述べると、ワークフロールールとプロセスビルダーでできることは、Flow Builderでも実現可能のため、新しくプロセスの自動化を設定する場合は、Flow Builderの使用をおすすめします。
というのも、将来的にワークフロールール・プロセスビルダーは廃止し、Flow Builderへ集約する予定であるとSalesforceが公式に発表をしているためです。
これまでワークフロールールやプロセスビルダーをメインで使用している人からすると、抵抗があるかもしれませんが、基本的な考え方は同じため、これを機にFlow Builderの操作に慣れておきましょう。
Flow Builder設定手順
デモシステムの概要
今回はFlow Builderを使用して、以下のようなシステムを作成します。
システム概要
取引先レコードの詳細画面からボタンをクリックしてフローを呼び出し、子レコード(取引先責任者or商談を選択する)を作成する
システム詳細
- フロー起動時、取引先責任者を作成するか商談を作成するか実行ユーザに選択させる
- 一部項目値を親取引先レコードから自動コピーする
- 一部項目値を入力フォームで入力し設定する
設定手順解説~フロー作成~
- 設定のホームから プロセスの自動化 > フロー を選択し、「新規フロー」を押下する

- 「画面フロー」を選択し、「作成」を押下する

- フロー内で使用する数式や定数などは、ツールボックスの「新規リソース」(①)から作成する

レコードの操作や画面の追加、条件分岐やループ処理はキャンパス内の「⊕」(②)を押下し、要素を選択して追加します。
- 「ツールボックス」 > 「マネージャ」 > 「新規リソース」を押下し、下記設定をして「完了」を押下する
・リソース種別:変数
・API参照名:recordId(※ここは必ず左記の文字列にしてください)
・データ型:テキスト
・複数の値を許可:チェック無し
・フロー外部での可用性:入力で使用可能
- キャンパスで開始の後ろにある「⊕」を押下し、下記設定をして「完了」を押下する
・表示ラベル:取引先取得
・API参照名:get_account
・オブジェクト:取引先
・レコードを絞り込み
- 条件の要件:すべての条件に一致(AND)
- 条件:Id 次の文字列と一致する recordId
・作成するレコード数:最初のレコードのみ
・レコードデータの保存方法:すべての項目を自動的に保存
- 作成したレコード取得の要素の後にある「⊕」を押下し、「画面」を選択する

- 画面のプロパティで任意の名前を設定する

画面左のコンポーネントから、「選択肢」をドラッグ&ドロップで中央のエリアに配置する
・表示ラベル:任意の文字列
・API参照名:任意の文字列
・必須:チェック
・データ型:テキスト
選択肢の入力ボックスにカーソルを合わせ、「新規選択肢リソース」を押下し選択肢を追加する
(もしくは、フローキャンパスのマネージャからあらかじめリソースを作成しておく)
API参照名、選択肢の表示ラベル、選択肢の値を設定して「完了」を押下する
※ここでは”取引先責任者”と”商談”の2つの選択肢を作成

選択肢の作成が完了し、オブジェクト選択画面の選択肢にセットしたら「完了」を押下する
- 手順7で作成した画面の次の要素で「決定」を追加する
【条件分岐1:取引先責任者】
・条件の要件:すべての条件に一致(AND)
・条件:
Choices(手順7で作成した選択肢の結果のAPI名)
次の文字列と一致する
Contact(手順7で作成した選択肢「取引先責任者」の選択肢リソース
デフォルトの結果(上の条件に一致しないデータが通る分岐)の表示ラベルを「商談」に書き換える
※処理内容には影響しませんが、第三者が見て何の分岐か分かるようにしておくと親切です
- 「決定」の要素を追加すると、次の要素が下図のように分岐した状態になります

- 分岐「取引先責任者」に画面要素を追加する
・姓(テキスト)と名(テキスト)を入力するコンポーネントを配置し、「完了」を押下します
同様に、分岐「商談」の方にも画面要素を追加する
・商談名(テキスト)、完了予定日(日付)を入力するコンポーネントを配置し、「完了」を押下します
- 分岐「取引先責任者」に追加した画面要素の次に、「レコードの作成」を追加する
◆作成するレコード数:1
◆レコード項目の設定方法:個別のリソースおよびリテラル値を使用
◆オブジェクト:取引先責任者
◆項目値
・取引先名(AccountId) ← recordId
※手順4で作成した変数
※フローを実行した取引先レコードのSalesforceIDが入る
・フローデモ用テキスト ← get_account.フローデモ用テキスト
※本項目は今回のデモ用に作成したカスタムテキスト項目
※get_accountは手順5で取得した取引先レコード
・姓(LastName) ← 手順10で入力した「姓」
・名(FirstName) ← 手順10で入力した「名」
同様に、分岐「商談」に追加した画面要素の次に、「レコードの作成」を追加する
◆作成するレコード数:1
◆レコード項目の設定方法:個別のリソースおよびリテラル値を使用
◆オブジェクト:取引先責任者
◆項目値
・取引先名(AccountId) ← recordId
※手順4で作成した変数
※フローを実行した取引先レコードのSalesforceIDが入る
・フローデモ用テキスト ← get_account.フローデモ用テキスト
※本項目は今回のデモ用に作成したカスタムテキスト項目
※get_accountは手順5で取得した取引先レコード
・商談名(Name) ← 手順10で入力した「商談名」
・完了予定日(CloseDate) ← 手順10で入力した「完了予定日」
- 分岐が収束した後の「⊕」を押下し、新規画面要素を追加する
・レコードの作成が完了したメッセージコンポーネントを配置
※メッセージ内に手順で使用した選択肢リソースを
テキスト内に埋め込むことで、
選択結果に応じて動的にメッセージが変更されます
- 一通りフローの設定が完了すると、下図のようなフローとなる

- 画面右上の「保存」を押下し、フローの名称を設定して保存する

設定手順解説~アクション作成&レイアウト配置~
作成したフローは画面フローのため、フローを配置する必要があります。
今回は、フローを取引先のクイックアクションとして設定し、レコード詳細画面に配置して使用します。
- オブジェクトマネージャから取引先を選択し、「ボタン、リンク、およびアクション」 > 「新規アクション」を押下する

- 下記設定をして「保存」を押下する
・アクション種別:フロー
・フロー:作成したフローを選択
・表示ラベル:任意の文字列
・名前:任意の文字列(半角英数字)
- ページレイアウトの編集画面へ移動(①)し、「モバイルおよびLightningのアクション」(②)から作成したアクションをドラッグ&ドロップでレイアウトに配置(③)して、「保存」(④)を押下する

動作確認
作成したフローが想定通り動作するか確認します。
動作確認①:取引先責任者レコード作成
- 取引先のレコード詳細画面で、配置したフローアクション「子レコードを作成」を押下する
※事前に作成した、フローでコピーするカスタム項目にも値を設定する
- 「取引先責任者」を選択し、「次へ」を押下する

- 姓・名を入力し、「次へ」を押下する

- レコードの作成が完了した旨を伝えるメッセージを確認し、「完了」を押下する

- 作成された取引先責任者レコード画面に遷移する

- 画面で入力した姓・名が反映され、取引先のカスタムテキスト項目の値が自動でコピーされていることが確認できました

動作確認②:商談レコード作成
- 取引先のレコード詳細画面で、配置したフローアクション「子レコードを作成」を押下する
※事前に作成した、フローでコピーするカスタム項目にも値を設定する
- 「商談」を選択し、「次へ」を押下する

- 商談名・完了予定日を入力し、「次へ」を押下する

- レコードの作成が完了した旨を伝えるメッセージを確認し、「完了」を押下する
※作成するレコードの種類に合わせ、メッセージが変わっていることも確認できました。
- 作成された商談レコード画面に遷移する

- 画面で入力した商談名・完了予定日が反映され、取引先のカスタムテキスト項目の値が自動でコピーされていることが確認できました

