Salesforce Developers Japan Blog

Salesforceフローでのパスのスケジュール設定

オリジナル記事

Schedule Your Path in Salesforce Flow

 

Winter ‘20では、フローをスケジュール設定する機能が導入されました。これにより、たとえば、特定のフローを毎日実行することができます。Spring ’21では、さらに一歩進んで、フロー内部でスケジュール済みのパスを導入します。スケジュール済みのパスを使用すると、フローをトリガしたオブジェクトの日付項目にもとづいて特定の種類のイベントをトリガすることができます。スケジュール済みのパスでは、例えば、タスクを作成し、かつ、タスクの期限の1時間前に通知をユーザに送信するようスケジュール設定するとよいでしょう。これまで、これは多くの手間がかかる作業でした。

 

仕組み

使用を開始する前に、スケジュール済みのパスは、現在以下のタイプのレポートでトリガされるフローでのみ利用可能であることを覚えておく必要があります。

トリガ タイミング 条件なし 条件が存在する
Every time a record is updated and meets condition requirements(レコードが更新され、条件の要件を満たすたび) Only when a record is updated to meet the condition requirements(条件の要件を満たすようにレコードが更新される場合のみ)
レコードが作成される 保存前
保存後
レコードが更新される 保存前
保存後
レコードが作成または更新される 保存前
保存後
レコードが削除される 保存後

 

機能はフローで自由形式レイアウトを使用する場合のみ表示されることにも注意してください。現在ベータ版の自動レイアウトビルダーでは利用できません。上記の条件を満たしてからオブジェクトを選択すると、フローの開始ステップにスケジュール済みのパスオプションが自動的に表示されます。

スケジュール済みのパスを設定するためのUIは、決定ステップの作成と同様ですが、結果を指定する代わりに、そのパスを実行するさまざまな特定時点を指定します。

 

 

各パスについて、開始時刻を計算するために使用する日付/時刻項目を指定してから、パスを何時間後または何日後に実行するかを指定します。

試乗のスケジュール設定

eCarsサンプルアプリケーションを使用して、スケジュール済みのパスを使用する方法を確認できます。Pulsar Motorsは電気自動車メーカーです。これまで、顧客は販売特約店に来れば試乗できました。残念なことに、現在のCovid-19危機によりすべてが変化し、必要な安全対策を講じるために試乗をスケジュール設定する必要があります。

これをサポートするために、Pulsar Motorsでは、試乗スケジュールを管理するためのTest Driveカスタムオブジェクトを作成しました。このオブジェクトには、試乗を希望する人、車種、日程に関する情報が保存されます。この新しい仕事のやり方を踏まえ、来店しない顧客の数を減らすために何らかのリマインダーを送信することが得策であると決定しました。そこで、フローを使用して、以下を行うことを決定します。

  • 試乗の予定が作成された時点で確認メールを送信する
  • 試乗の予定の1日前にリマインダーメールを送信する
  • 試乗の予定の1時間前にリマインダーSMSを送信する

最初に、レコードの保存後に実行される作成および更新時に起動するレコードによってトリガされるフローを作成できます。

次に、フローをトリガするオブジェクトを指定する必要があります。ここで、Test Driveオブジェクトを選択し、試乗の日付/時刻を設定する必要があるという条件を設定します。

 

 

これは重要です。[Only when a record is updated to meet the condition requirements(条件の要件を満たすようにレコードが更新される場合のみ)]が選択されている場合のみ、このユースケースで利用できるパスをスケジュール設定したからです。これを保存すると、[スケジュール済みのパス]オプションが表示され、設定できるようになります。

使用できるスケジュール済みのパスの2つの例は次のとおりです。

  • 試乗の1日前にトリガするメールリマインダーを設定する
  • 試乗の1時間前のSMSリマインダーを設定する

 

 

これらの例の両方で、スケジュールが参照する項目を定義する[Time Source(タイムソース)]を指し示してから、タイムソースの何日前または何時間前にパスがトリガされるかを定義する必要があります。

その後、各パスをフローの開始時点から分岐させることで、定義済みのスケジュールにもとづいて単一フローから複数のアクションを実行できます。

 

 

デバッグ

フローがアクティブになると、現在のスケジュール内容を確認できます。[Pickup Time(ピックアップ時間)]を2021年2月19日午前8時30分にして試乗レコードを作成しました。

フロー定義にもとづき、メールリマインダーは2021年2月18日午前8時30分(1日前)、SMSリマインダーは2021年2月19日午前7時30分(1時間前)に送信されると見込まれます。これがスケジュール設定されていることを確認するには、[設定]→[Environments(環境)]→[Monitoring(監視)]→[Time-Based Workflow(時刻ベースのワークフロー)]に移動します。

そこで、同じレコードに対して2つのパスがスケジュール設定されていることを確認できます。

 

 

予約は変更されるのが常です。では、レコードで時間が変更されたときに何を行う必要があるでしょうか。試乗する人が午前8時30分だと非常に早いと判断し、時刻が午後12時30分に変更されます。この時点で、リマインダーが二重になるのではないかと心配するかもしれませんが、[Time-Based Workflows(時刻ベースのワークフロー)]を見ると、新しい値に置き換えられ、古い値はなくなっていることがわかります。このように、新しく設定された予約時刻に自動的に適応されます。

 

 

まとめ

スケジュール済みのパスは、フローに新たに追加された優れた機能で、コードを記述する必要なしに多くの可能性を切り開きます。使用可能にするための要件があることに注意し、ドキュメントに適切に従ってください。

リソース

Salesforceフローのドキュメント

Salesforceフローを使用したビジネスプロセスの自動化 | Salesforce

著者紹介

Jack van Dijkは、オランダのSalesforceに勤務する著名なアーキテクトです。Salesforceで4年以上、CRM分野で20年以上の経験があります。Jackの連絡先:https://www.linkedin.com/in/jackvandijk/

コメント

Salesforceフローでのパスのスケジュール設定