Salesforceフローを使って複数のレコードを定期的に一括更新する
単一のレコードだけでなく複数のレコードを一括更新したい時や定期的にレコードを更新したい時にはSalesforceフローが最適です。
本記事では実際にSalesforceフローを使って複数のレコードを定期的に一括更新するフローを作成してみたいと思います。
目次
今回作成するフローの要件
- 取引先オブジェクトの[契約終了日]を過ぎたら該当するすべての取引先レコードの[フェーズ]を”契約終了”に変更する。
取引先に契約状況のフェーズを持たせている企業も多いかと思います。
今回は契約状況を定期的に更新するフローを作成していきます。
取引先レコードが複数ある場合も想定し、自動起動かつ複数のレコードを一括更新できるようにフローを作成します。
スケジュールトリガフローを作成
定期的に自動でフローを起動したいためフローの種類は「スケジュールトリガフロー」を選択します。
スケジュールとオブジェクトを設定
スケジュールとオブジェクトを指定する必要があるので設定していきます。
スケジュールの設定
今回は毎朝5:00にフローを自動起動したいので開始日に今日の日付と開始時刻に5:00を設定し頻度を毎日にします。
オブジェクトの設定
オブジェクトは取引先を設定します。今回は契約中のレコードだけ取得しました。
使用する変数の準備
あとで使用する変数を先に準備しておきます。
先に作成しておくのは下記の2つです。
- 昨日の日付を持った変数
- 最後に一括更新するための変数
昨日の日付を持った変数
[リソース種別]から”数式”を選び「TODAY()-1」の数式を入れ[データ型]を”日付”で作成します。
最後に一括更新するための変数
[リソース種別]から”変数”、[データ型]を”レコード”、複数の値を許可 (コレクション)にチェックを入れ、[オブジェクト]は”取引先”を選択して作成します。
該当する取引先レコードの取得
まずは該当する取引先レコード=契約終了日が昨日の取引先レコードを取得します。
画面上に「レコードを取得」を追加し[オブジェクト]に”取引先”を指定。
絞り込みで「契約終了日」と先ほど作成した「昨日の変数」が一致しているを設定します。
今回は複数のレコードを一括更新したいので、保存するレコード数の「すべてのレコード」にチェックを入れて作成します。
1レコードずつ更新をセットするループを作成
複数のレコードに対してそれぞれ1つずつフェーズの更新をセットするループを作成します。
画面上に配置した後、コレクション変数には先ほどのレコード取得で作成された変数を指定します。
フェーズ変更の割り当てを作成
複数のレコードを取得しているのでそれぞれのレコードに対してフェーズの変更を割り当てていきます。
新規割り当てでレコード(単一)変数を選択します。
その中の[フェーズ]項目を選択し右側に”契約終了”を入力します。
これで単一のレコードに対して”契約終了”の変更をセットする設定は完了です。
一括更新用のコレクション変数に追加
先ほど作成した単一の割り当て変数を一括更新用のコレクション変数に追加していきます。
一括更新用のコレクション変数を左側に指定し追加を選択、右側に先ほど作成した割り当ての変数を入れて完了です。
レコードの一括更新を行う
最後にすべてのレコードの一括更新を行います。
すでに一括更新用のコレクション変数にレコードがセットされている状態ですので、その変数を指定してあげれば完了です。
まとめ
上の画像が作成したフローの全体像です。
Salesforceフローはプロセスビルダーなどと比べて少し難易度が上がりますが少しでも参考になれば幸いです。