Open1

ワークフロー/プロセスの自動化

kaikai

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」になったときに、その取引先に関連するすべての「取引先責任者」の項目を更新したい場合、レコードトリガーフローを使うのが最も効率的です。

  1. フローの開始条件を「取引先の評価がColdになったとき」に設定します。
  2. フローの中で「ループ要素」を使い、関連するすべての取引先責任者を一つずつ処理します。
  3. 割り当て要素」で更新したい項目値を準備します。
  4. 最後に「更新レコード要素」で、まとめてすべての取引先責任者を更新します。

このようにすることで、たくさんのレコードを効率よく処理でき、Salesforceのシステム制限(ガバナ制限)にも引っかかりにくくなります。


6. スケジュールトリガーフロー

スケジュールトリガーフロー」は、特定の時間に自動で実行されるフローです。レコードの変更とは関係なく、例えば「毎日午前3時にすべての商談をチェックする」といったような場合に利用します。


7. 承認プロセス

承認プロセス」は、特定の条件が満たされたときに、レコードの承認を求めるための機能です。例えば、高額な割引を適用する際に、上司の承認が必要な場合などに使われます。承認されるか却下されるまで、そのレコードの重要な変更はロックされます。

フローを使うと、この承認プロセスにレコードを自動で提出することも可能です。


8. Salesforceのレコード保存順序(Order of Execution)

Salesforceでは、レコードが保存されるときに、様々な処理が特定の順番で実行されます。これを「レコード保存順序(Order of Execution)」と呼びます。

簡単にまとめると、以下のようになります。

  1. レコードの読み込み: データが読み込まれる。
  2. システムの基本的なチェック: 必須項目やデータの形式が正しいかなどをチェック。
  3. Before Apexトリガー: データベースに保存される前に、開発者が書いたコード(Apex)が動く。
  4. 標準バリデーションルール: 管理者が設定した入力規則がチェックされる。
  5. レコードの仮保存: データベースに一時的に保存される。
  6. After Apexトリガー: データベースに保存された後で、開発者が書いたコード(Apex)が動く。
  7. 割り当てルール、自動応答ルール: レコードの担当者が自動で決まったり、自動返信メールが送られたりする。
  8. ワークフロールール: ここでワークフローが評価され、アクションが実行される。もし項目が更新された場合、ステップ3(Before Apexトリガー)からやり直すことがある(最大5回)。
  9. プロセスビルダーとレコードトリガーフロー: ここでプロセスビルダーやAfter Saveのレコードトリガーフローが動く。
  10. エスカレーションルール: ケースのエスカレーション(担当者の変更など)が行われる。
  11. 最終コミット: すべての変更がデータベースに完全に保存される。

ポイント: ワークフロールールやプロセスビルダー、フローは、この保存順序の途中で動きます。特に、ワークフロールールでの項目自動更新は、他の処理を再度実行させる可能性がある、という点が重要です。