ワークフロールールとプロセスビルダーの廃止のアナウンスでフローを勉強し始めている方も多いと思いますが、「ワークフロールールとプロセスビルダーは設定できるけど、フローは難しそうで…」という声を多く聞きます。
確かにフローを紹介しているサイトや記事は複雑なものが多いため、難しそうという印象があるかもしれません。
そこで今回は、ワークフロールールとプロセスビルダーでよく設定されていそうな、レコード更新(項目自動更新)、レコード作成、メールアラート、スケジュール済アクション、とおまけの承認プロセスの設定方法をご紹介いたします。
1.レコードの更新
<要件>
Salesforceのデフォルトの動作で商談成立時に自動的に今日の日付に更新される「完了予定日」を元の日付に戻す(更新する)
1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリックします。
2.「レコードトリガフロー」を選択し、以下のように開始を設定します。
・
オブジェクト:商談
・
フローをトリガする条件:レコードが作成または更新された
・
エントリ条件を設定:
[条件の要件] すべての条件に一致(AND)
項目 | 演算子 | 値 |
IsWon(成立フラグ) | 次の文字列と一致する | True |
・
更新されたレコードでフローを実行するタイミング:条件の要件に一致するようにレコードを更新したときのみ
・
フローを最適化:アクションと関連レコード
3.[開始]の下の⊕から[レコードを更新]を追加し、以下のように設定します。
・
レコード を更新する条件の要件:なし―常にレコードを更新
・
商談 の項目値を レコード に設定項目 | 値 |
CloseDate(完了予定日) | $Record__Prior > 完了予定日 |
※$Recordはトリガレコードの値が含まれ、$Record__Priorはフロー開始の直前のトリガレコードの値が含まれます。今回の要件では前の値を使用したいため、$Record__Priorから完了予定日を指定します。ヘルプは
こちら4.最後にフローを[保存]し[有効化]にします。
【結果確認】
フローを有効化する前の挙動はこちらです。
完了予定日が未来日付の場合に、成立にすると成立にした日に完了予定日が自動更新されてしまいます。
フローを有効化し、完了予定日が未来日付の商談を成立にします。
成立にしても、元の日付のままです。
2.レコードの作成
<要件>商談のフェーズを「契約合意」にしたら、契約レコードを自動作成する
1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリックします。
2.「レコードトリガフロー」を選択し、以下のように開始を設定します。
・
オブジェクト:商談
・
フローをトリガする条件:レコードが作成または更新された
・
エントリ条件を設定:
[条件の要件] すべての条件に一致(AND)
項目 | 演算子 | 値 |
StageName(フェーズ) | 次の文字列と一致する | 06-契約合意(選択リストの値) |
・
更新されたレコードでフローを実行するタイミング:条件の要件に一致するようにレコードを更新したときのみ
・
フローを最適化:アクションと関連レコード
3.[開始]の下の⊕から[レコードを作成]を追加し、以下のように設定します。
・
作成するレコード数:1
・
レコード項目の設定方法:個別のリソースおよびリテラル値を使用
・
オブジェクト:契約
・
項目値を設定項目 | 値 |
Opportunity__c(商談) | $Record > 商談 ID |
AccountId(取引先 ID) | $Record > 取引先 ID |
Status(状況) | ドラフト(選択リストの値) |
4.フローを[保存]し[デバッグ]で以下のように入力し[実行]をクリックします。
・
レコードが次の場合にフローを実行::更新済み
・
商談*:テストレコードを選択
・
トリガレコードを更新:フェーズを「06-契約合意」に。(2.の開始条件に一致するように入力します)
5. 「デバッグの詳細」で想定通りか確認します。他のパターンなど必要に応じて検証を行います。
6. 最後に[有効化]にします。
【結果確認】
商談のフェーズを「06-契約合意」に変更すると、契約レコードが作成されました。
3.メールアラートアクション
<要件>
種別が「新規ビジネス」の商談レコードが作成されたら、営業部長へメール通知する
※メールテンプレート、メールアラートの作成については省略させていただきます。
1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリックします。
2.「レコードトリガフロー」を選択し、以下のように開始を設定します。
・
オブジェクト:商談
・
フローをトリガする条件:レコードが作成された
・
エントリ条件を設定:
[条件の要件] すべての条件に一致(AND)
項目 | 演算子 | 値 |
Type(種別) | 次の文字列と一致する | 新規ビジネス(選択リストの値) |
・
フローを最適化:アクションと関連レコード
3.[開始]の下の⊕から[メールアラートを送信]を追加し、以下のように設定します。
(アクション → 検索条件:種別 → メールアラートでもOK)
・
アクション:送信するメールアラートを選択
・
カスタムオブジェクト ID:{!$Record.Id}
4.最後にフローを[保存]し[デバッグ]で確認後、[有効化]にします。
【結果確認】
商談の種別を「新規ビジネス」にしたレコードを作成します。
メールが送信されました。
4.スケジュール済みアクション
<要件>
金額が1000万円を超える商談の完了予定日が残り30日でフェーズが進行中の場合は、商談所有者と営業部長にメール通知する。
※メールテンプレート、メールアラートの作成については省略させていただきます。
1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリックします。
2.「レコードトリガフロー」を選択し、以下のように開始を設定します。
・
オブジェクト:商談
・
フローをトリガする条件:レコードが作成または更新された
・
エントリ条件を設定:
[条件の要件] すべての条件に一致(AND)
項目 | 演算子 | 値 |
Amount(金額) | 以上 | 10000000 |
IsClosed(完了フラグ) | 次の文字列と一致する | False |
・
更新されたレコードでフローを実行するタイミング:条件の要件に一致するようにレコードを更新したときのみ
・
フローを最適化:アクションと関連レコード
3.[開始]の「+スケジュール済みパスを追加(省略可能)」をクリックします。
4.[スケジュール済みパス]を以下のように設定します。
・
時間取得元:Opportunity: 完了予定日
・オフセット数:30
・
オフセットオプション:日前
5.[完了予定日30日前](4.で設定したパスの表示ラベル)の下の⊕から[メールアラートを送信]を追加し、以下のように設定します。
(アクション → 検索条件:種別 → メールアラートでもOK)
・
アクション:送信するメールアラートを選択
・
カスタムオブジェクト ID:{!$Record.Id}
6.最後にフローを[保存]し[デバッグ]で確認後、[有効化]にします。
スケジュール済みパスでデバッグを行う場合は[デバッグ実行のパス]を設定したパスに変更します。
【結果確認】
商談の金額を「¥10,000,000」にしたレコードを作成します。
[設定] から、[クイック検索] で「時間」を検索し、[時間ベースのワークフロー]をクリックし、[検索]ボタンをクリックして、キューに入っていることを確認します。
先ほど作成した商談の金額を「¥1,000,000」に変更してみると、キューが削除されました。
5.承認プロセス
こちらはリクエストがありましたので、おまけとして紹介しています。
<要件>
通常の承認プロセスが存在しており、そちらは標準の承認申請ボタンから申請を行っているが、経費が発生した場合のみ経費申請ができるように、専用の申請ボタンを配置したい。
※承認プロセスの設定については省略させていただきます。
⚠️注意
こちらの設定はサンプル設定ですので、実働には動的アクションで申請ボタンの表示を制御したり、障害パスを設定したり、その他の細かい定義と設定が必要になるかと思います。
またLEXでの設定方法のご紹介になります。
<動的アクション関連記事>
・
動的アクションで状況に応じたアクションを表示する・
Winter'21動的アクションが商談や取引先でも使用可能に・
動的アクションで必要なときだけ【承認申請】を表示フローの設定
1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリックします。
2.「画面フロー」を選択し、左側のマネージャの[新規リソース]をクリックし、以下のように設定します。
・リソース種別:変数
・
API 参照名:recordId(※大文字と小文字が区別されるため、この表記のままで入力してください)
・データ型:テキスト
・フロー外部での可用性:入力で使用可能にチェック
3.[開始]の下の⊕から[画面]を追加し、左のコンポーネントから「テキスト」を選択し、以下のように設定します。
こちらは標準の承認申請ボタンの押下時と同じようにコメントを入力できるようにするための画面ですので、コメント入力が不要でしたら設定は不要です。
<画面のプロパティ>・表示ラベル:コメント入力画面(命名は自由)
・API 参照名:display_comment(命名は自由)
<テキスト>・表示ラベル:コメント(命名は自由)
・API 参照名:text_comment(命名は自由)
4.[画面]の下の⊕から[アクション]を追加し、以下のように設定します。
・
アクション:承認申請
・
カスタムオブジェクト ID:{!recordId}
・
開始条件をスキップ:スキップする場合は「含める」にして、{!$GlobalConstant.True}
・
承認プロセス名または ID:「含める」にして、承認プロセスの一意の名前
・
登録コメント:「含める」にして、{!text_comment}(3.で設定した画面のテキストコンポーネントのAPI 参照名)
5.最後にフローを[保存]し[有効化]にします。
カスタムボタンの作成、配置
1. 承認申請するレコードのオブジェクトマネージャから「ボタン、リンク、およびアクション」にアクセスし、[新規アクション]をクリックし、以下のように必須箇所を入力します。
・アクション種別:フロー
・
フロー:上記で設定した該当のフローを選択
・
表示ラベル:経費申請(命名は自由)
・
名前:Action_Expenses_Approval(命名は自由)
2.承認申請するレコードのオブジェクトマネージャから「ページレイアウト」にアクセスし、[Salesforce モバイルおよび Lightning Experience のアクション]から1.で作成したアクションを配置して [保存]をクリックします。
【結果確認】
[経費申請]をクリックすると、設定したコメント入力画面が表示されました。
[次へ]をクリックすると、承認履歴に申請した履歴が追加されました。
画面を更新すると、同じレコードで同時に複数の申請ができないため、標準の承認申請ボタンは非表示となりますが、カスタムで作成したアクションボタンはそのままです。
続けて[経費申請]をクリックし、処理を進めるとフローがエラーとなりますので、動的アクションで非表示にするか、障害パスを追加するなどの対応が必要になります。
関連リンク
・
SALESFORCE ヘルプ 「フローのベストプラクティス」・
トリガと実行の順序・
ワークフローとプロセスビルダーのリタイア(廃止):2022年6月の最新情報・
2021年10月の最新情報:ワークフローとプロセスビルダーのリタイア(廃止)とフローへの移行について・
ワークフローとプロセスビルダーの引退(廃止)は避けられない模様・
ワークフローのFlow移行ツール:Migration to Flow(Beta)を試してみました・
Spring’22で承認プロセスの結果からフローがトリガできるようになる様子