ワークフロー/プロセスの自動化
Salesforceの自動化ツールを理解しよう!
Salesforceには、繰り返し行う作業を自動化するための便利なツールがたくさんあります。主なツールとして、「ワークフロールール」「プロセスビルダー」「フロー(Flow)」があります。これらのツールを使いこなすことで、作業の効率がグッと上がりますよ。
1. ワークフロールール、プロセスビルダー、フローの違い
| ツール名 | できること | できないこと |
|---|---|---|
| ワークフロールール | ・項目を自動で更新する<br>・タスクを自動で作成する<br>・メールを自動で送る<br>・外部システムにメッセージを送る(アウトバウンドメッセージ) | ・複雑な条件設定や分岐処理<br>・複数のレコードをまとめて更新する処理 |
| プロセスビルダー | ・ワークフロールールでできることのほとんど<br>・より複雑な条件分岐<br>・関連するレコードの更新 | ・外部システムへのアウトバウンドメッセージ<br>・スケジュールによる実行(特定の日時に実行) |
| フロー(Flow) | ・最も強力で柔軟なツール<br>・ワークフロールールやプロセスビルダーでできることのすべて<br>・スケジュールによる実行<br>・複数のレコードの一括更新<br>・画面フロー(ユーザーからの入力に基づいて処理を進める)など | 特になし(設定によっては複雑になりやすい) |
ポイント:
- ワークフロールールは、一番古くからあるツールで、シンプルな自動化に向いています。特に「アウトバウンドメッセージ」は、このツールだけの特別な機能です。
- プロセスビルダーは、ワークフロールールよりも少し複雑な自動化ができます。
- フローは、Salesforceの自動化ツールの中で最もパワフルです。複雑な処理や、たくさんのレコードをまとめて処理したい場合に最適です。
2. ワークフロールールでの評価基準(いつ実行されるか)
ワークフロールールは、レコードが作成・更新されたときに、設定した条件を満たしているかをチェックして実行されます。実行されるタイミングは、以下の3パターンあります。
- 作成されたとき: レコードが新しく作られたときだけ実行されます。
- 作成されたとき、および編集されるたびに: レコードが作られたとき、または編集されるたびに毎回実行されます。
-
作成されたとき、およびその後条件を満たすように編集されるたびに:
- レコードが作られたとき、または条件を満たすように編集されたときに実行されます。
- 一度条件を満たして実行された後、その条件に関係ない部分を編集しても、再度実行されることはありません。
- しかし、一度条件を満たさなくなった後に、再度条件を満たすように編集されると、もう一度実行されます。
3. ワークフローアクションの実行を監視する方法
ワークフロールールの中で「時間ベースのアクション」(特定の時間になったら実行するアクション)を設定した場合、その実行状況は「設定」メニューにある「時間ベースのワークフロー」キューで確認できます。
4. ワークフロールールでできるアクションの種類
ワークフロールールでできることは以下の4つです。
- 項目自動更新: レコードの特定の項目を自動で更新します。
- タスクの作成: 自動でタスクを作成し、特定の人に割り当てます。
- メールアラート: 特定の条件を満たした場合に、自動でメールを送信します。
- アウトバウンドメッセージ: Salesforceのデータを外部のシステムに自動で送信します(XML形式)。これはワークフロールールだけの機能です。
5. レコードトリガーフローについて
フローの中でも特に使われるのが「レコードトリガーフロー」です。これは、レコードが作成されたり、更新されたりしたときに自動で動くフローです。
レコードトリガーフローがいつ動くかを決める条件:
以下の3つの方法で、フローを動かす条件を設定できます。
- 項目条件の組み合わせ: 特定の項目が、特定の値になっている場合に動かすことができます(例: 状況が「クローズ済み」になったら動かす)。
- 数式: より複雑な条件を数式で設定できます。数式が「True」(正しい)になった場合にフローが実行されます。
- 条件なし: 条件を設定せず、レコードが作成・更新されるたびに常に実行することもできます。
レコードトリガーフローの3種類のパス:
レコードトリガーフローでは、処理のタイミングを以下の3つのパスで設定できます。
- すぐに実行パス: レコードが保存された後、すぐに実行される処理です。
- スケジュール済みパス: 特定の条件が満たされた後、指定した日時(例: 2日後)に実行される処理です。
- 非同期パス: すぐには実行されず、システムが空いているときに実行される処理です。
例: 「評価が「Cold」になった取引先に関連するすべての取引先責任者を更新する」場合
もし「取引先の評価」が「Cold」になったときに、その取引先に関連するすべての「取引先責任者」の項目を更新したい場合、レコードトリガーフローを使うのが最も効率的です。
- フローの開始条件を「取引先の評価がColdになったとき」に設定します。
- フローの中で「ループ要素」を使い、関連するすべての取引先責任者を一つずつ処理します。
- 「割り当て要素」で更新したい項目値を準備します。
- 最後に「更新レコード要素」で、まとめてすべての取引先責任者を更新します。
このようにすることで、たくさんのレコードを効率よく処理でき、Salesforceのシステム制限(ガバナ制限)にも引っかかりにくくなります。
6. スケジュールトリガーフロー
「スケジュールトリガーフロー」は、特定の時間に自動で実行されるフローです。レコードの変更とは関係なく、例えば「毎日午前3時にすべての商談をチェックする」といったような場合に利用します。
7. 承認プロセス
「承認プロセス」は、特定の条件が満たされたときに、レコードの承認を求めるための機能です。例えば、高額な割引を適用する際に、上司の承認が必要な場合などに使われます。承認されるか却下されるまで、そのレコードの重要な変更はロックされます。
フローを使うと、この承認プロセスにレコードを自動で提出することも可能です。
8. Salesforceのレコード保存順序(Order of Execution)
Salesforceでは、レコードが保存されるときに、様々な処理が特定の順番で実行されます。これを「レコード保存順序(Order of Execution)」と呼びます。
簡単にまとめると、以下のようになります。
- レコードの読み込み: データが読み込まれる。
- システムの基本的なチェック: 必須項目やデータの形式が正しいかなどをチェック。
- Before Apexトリガー: データベースに保存される前に、開発者が書いたコード(Apex)が動く。
- 標準バリデーションルール: 管理者が設定した入力規則がチェックされる。
- レコードの仮保存: データベースに一時的に保存される。
- After Apexトリガー: データベースに保存された後で、開発者が書いたコード(Apex)が動く。
- 割り当てルール、自動応答ルール: レコードの担当者が自動で決まったり、自動返信メールが送られたりする。
- ワークフロールール: ここでワークフローが評価され、アクションが実行される。もし項目が更新された場合、ステップ3(Before Apexトリガー)からやり直すことがある(最大5回)。
- プロセスビルダーとレコードトリガーフロー: ここでプロセスビルダーやAfter Saveのレコードトリガーフローが動く。
- エスカレーションルール: ケースのエスカレーション(担当者の変更など)が行われる。
- 最終コミット: すべての変更がデータベースに完全に保存される。
ポイント: ワークフロールールやプロセスビルダー、フローは、この保存順序の途中で動きます。特に、ワークフロールールでの項目自動更新は、他の処理を再度実行させる可能性がある、という点が重要です。