BLOG
2022.12.22
Salesforce スケジュールトリガーフローのご紹介【前編】 〜スケジュールトリガーフローを使ってみよう〜
こんにちは、クラウドソリューション部 カスタマーサクセスチームの坂井です。
前回はレコードトリガーフローについて説明しましたが、今回は Salesforce の「スケジュールトリガーフロー」について説明します。
スケジュールトリガーフローとは?
レコードトリガーフローは、「レコードの更新」がトリガー(引き金)でしたが、スケジュールトリガーフローでは、「時間」をトリガーにするフローになります。
例えば、
- 毎日朝9時に、特定の Chatter グループに定形文の投稿
- 毎週月曜日に、先週が期日だった未完了の ToDo をマネージャに自動割り当て
など、時間をベースにしたアクションが選択できます。
スケジュール設定は「1回」「毎日」「毎週」が選択できます。
毎日と相対日付を組み合わせると、毎月10日に起動するスケジュールや、契約終了日の60日前に起動するスケジュールを作れますが、相対日付を使う方法は次回紹介しますが、まずはスケジュールトリガーフローの基本について説明したいと思います。
スケジュール設定
設定で「フロー」を検索し、選択して「新規フロー」をクリックします。
フローの選択画面で「スケジュールトリガーフロー」を選択して、「作成」をクリックします。
「スケジュールを設定」をクリックします。
「開始日」「開始時刻」「頻度」を選択して「完了」をクリックします。
頻度は「1回」「毎日」「毎週」から選択できます。
レコードの取得
前回のレコードトリガーフローでは、作成もしくは更新したレコードを、「$Record」という変数に自動で取得されるので、レコードの取得は省略しました。
今回のスケジュールトリガーフローでは、個別に特定のレコードからテキストや数値を取得するために「レコードを取得」を使いたいと思います。
「開始」の下の「+」をクリックして、「レコードを取得」を選択します。
「表示ラベル」「API参照名」を入力して、検索対象の「オブジェクト」を選択します。
URLが登録されているカレンダーなど取得する条件を指定できます。
(注意)
空欄を条件にする場合は「null」という演算子が存在します。
空欄ではない場合は「False」を使い、下記のような条件になります。
取得したレコードは、任意で設定したAPI参照名で取得できます。
上記で取得した行動の件名(Subject)を使用するには、レコード取得のAPI参照名を「Get_Event」で登録しているため、「$Get_Event.Subject」で参照できるようになります。
ループのロジック
取得する行動が複数ある場合は、アクションが複数必要になりますので、アクションを繰り返す場合は「ループ」のロジックを使用します。
「表示ラベル」と「API参照名」「コレクション変数」を設定します。
「コレクション変数」とは繰り返しを行う元となるレコードです。
今回は「レコードを取得」で所得しているレコードです。ここでのポイントは「レコードを取得」は、複数のレコードを取得できます。
つまり、条件に一致するレコードを複数取得できます。
こちらは、「レコードを取得」の要素の中に「最初のレコードのみ」もしくは「すべてのレコードのみ」のどちらを選択するかで動作が変わります。ループを、「レコードを取得」の「すべてのレコード」の設定がセットになりますので、「レコードを取得」の設定を確認しましょう。
「ループ」の下に「アクション」を配置することで、アクションが複数回実行されます。
【動画内容】 (18分程度 ※音声が流れます)
- スケジュールトリガーフロー
- 相対日付のトリガー
- フローの準備
- フローの作成
デバッグ
スケジュールトリガーフローは、時間になるまで起動しませんので、
「デバッグ」ボタンで、事前に動作を確認できます。
実行したルートがオレンジの先で表示されますので、想定していない動きをしている時は、詳細を展開して、処理の詳細を確認して、フローの設定が正しいかを確認してみましょう。
まとめ
スケジュールトリガーフローはこのような設定の後に、保存して有効化すれば起動します。
トリガーのスケジュールは、「毎日」「毎週」以外に存在すると思います。次回は、そのような変速的なスケジュールの場合にどうするのかを説明していきます。
今回は、スケジュールトリガーフロー以外でもよく使う、複数の「レコードを取得」と「ループ」の要素の使い方をご理解頂けると幸いです。