Salesforceの標準機能で用意されている「フロー」を使用することで、レコードを自動的に作成することができます。
定期的なレコード作成や、他の操作と関連したレコード作成をしたい場合などに役立ちます。
例えば、毎月30人のメンバに対し、「今月の状況をリーダーに報告する」というToDoを作成するとします。手動で行うと毎月30人分のToDoを1つずつ作成する必要がありますが、フローでToDoを自動作成することで各メンバに一括で付与することができます。
このときに自動作成する日やToDoの期日は、会社やチーム、締め日等の関係で変わります。
そのような場合に役立つ、フローを用いて一括で日付を指定する方法と、指定できる日付をご紹介します。
期日を固定の日付に設定する方法
まずは、ToDoの期日を固定の日付に指定する方法を、フローの作成も兼ねて説明します。
最初に、フローを作成します。
フローで使用する要素や基本的な使い方は、ご存知の前提で進めます。
以下の設定内容で、フローの種別の1つである、「スケジュールトリガーフロー」を指定して作成します。

図1 フロー作成時の初期画面

図2 フロー作成時の「種別の選択」画面
次に、フローを実行するスケジュールを設定します。
ここで、直接日付指定ができれば良かったのですが、現状の設定内容ではできないため、フロー内の条件で日付指定をし、処理を実行するかどうかを入れていきます。
実行するスケジュール頻度は「毎日」としておきます。

図3 スケジュール設定画面
次に、フロー実行日時の日付のみ(1~31日)を抽出する数式を作成します。
以下の数式を設定することで、フロー実行日時の日付のみが取得できます。
DAY({!$Flow.CurrentDate})

図4 フロー実行時の日付取得する数式
次に、作成した数式を使って、フローの処理を実行するかどうかの判断を入れます。
フローの要素「決定」を以下のように設定します。

図5 フローを実行するかの分岐処理
リソース部分には図4で取得したフロー実行日を設定して、値部分にはフローを実行したい日付を設定しています。(例として、フロー実行日が20日であれば、処理が実行されるようにしています)
次に、ToDoを作成するユーザを取得していきます。
今回は、図6のようなグループを事前に作成しておりますので、このグループのメンバー(2人)にToDoを作成していきます。

図6 ToDoを作成するグループ
このグループに所属するメンバーをフロー内で取得する処理を以下のように設定します。(値部分のID取得方法は割愛)

図7 グループメンバーを取得する処理
次に、取得したグループメンバー毎のループ(繰り返し)処理を入れます。

図8 グループメンバー毎のループ処理
次に、作成するToDo用の変数を以下のように作成します。

図9 作成するToDo用の変数
そして、今回はグループメンバー全員にToDoを作成するので、複数のToDoを作成することになります。
そのため、複数のToDoを一括で作成するための変数も以下のように作成します。

図10 作成する複数のToDo用の変数
次に、図9の変数を使って、作成するToDoの項目を以下のように割り当てます。

図11 作成するToDoの項目割り当て
図11の赤枠部分で、ToDoの期日を設定します。
次に、項目を割り当てたToDoを図10の変数にまとめます。

図12 図10の変数に作成するToDoをまとめる処理
最後は、図10の変数にまとめたToDoを作成するだけです。

図13 ToDoを作成する処理
これで、毎月1日に自動で、期日が「2099/12/31」のToDoを作成するフローが完成しました。
以下が実際に作成されたToDoになります。

図14 固定の日付を期日に設定したToDo(1人目)

図15 固定の日付を期日に設定したToDo(2人目)
もし、固定の日付を変更したい場合には、図11の赤枠の日付を変更するだけです。
期日を翌月初に設定する方法
前章で作成したフローを使用して、期日をフロー実行日の翌月初に設定します。
まず、以下の数式でフロー実行日の翌月初を取得します。
DATE(CASE(MONTH({!$Flow.CurrentDate}),12,YEAR({!$Flow.CurrentDate})+1,YEAR({!$Flow.CurrentDate})),CASE(MONTH({!$Flow.CurrentDate}),12,1,MONTH({!$Flow.CurrentDate})+1),1)

図16 フロー実行時の翌月初を取得する数式
次に、ToDoの期日設定箇所(図11の赤枠)に翌月初を取得した数式を設定するだけです。

図17 ToDoの期日に翌月初を取得した数式を設定
これで、期日にフロー実行日の翌月初が設定されたToDoを作成するフローが完成しました。
以下が実際に作成されたToDoです。フロー実行日は、「2024/9/20」にしています。

図18 フロー実行日の翌月初を期日に設定したToDo(1人目)

図19 フロー実行日の翌月初を期日に設定したToDo(2人目)
ちなみに、翌月の固定日で締切日を設定したい場合には、先程紹介した数式の赤字部分を変更すれば設定可能です。
例えば、翌月の15日に締切日を設定したい場合には、数式は以下のようになります。
DATE(CASE(MONTH({!$Flow.CurrentDate}),12,YEAR({!$Flow.CurrentDate})+1,YEAR({!$Flow.CurrentDate})),CASE(MONTH({!$Flow.CurrentDate}),12,1,MONTH({!$Flow.CurrentDate})+1),15)
期日で設定できる数式の一例
前章で作成したフローの数式を変更することで、容易に期日の設定が可能です。
以下に、日付を設定できる数式の一例を記載します。
◆当月の固定日付(赤字箇所が日付に相当)
DATE(YEAR({!$Flow.CurrentDate}),MONTH({!$Flow.CurrentDate}),1)
◆当月の月末
DATE(CASE(MONTH({!$Flow.CurrentDate}),12,YEAR({!$Flow.CurrentDate})+1,YEAR({!$Flow.CurrentDate})),CASE(MONTH({!$Flow.CurrentDate}),12,1,MONTH({!$Flow.CurrentDate})+1),1)-1
◆実行日からn日後の日付(赤字箇所がn日後に相当)
{!$Flow.CurrentDate}+20
◆実行日からnヶ月後の日付(赤字箇所がn日後に相当)
ADDMONTHS({!$Flow.CurrentDate},1)
最後に
本投稿では、フローを用いて一括で日付を指定する方法と、指定できる日付について説明しました。
ToDoのみに限らず、フローでレコードを自動作成する際に、こちらを参考に日付の指定を試していただければ幸いです。
また、今後もSalesforce初心者に向けた解説や便利な機能の図解等を投稿していきます。
参考
[数式 サンプル] 日付型項目から当月・翌月・〇か月後の末日を取得する数式(Salesforce公式)
https://help.salesforce.com/s/articleView?id=000384233&type=1
投稿者プロフィール

-
技術領域:VB、Salesforce
経験:建築業務向け生産支援システム、管理会計システム