Salesforceのフロー(Salesforce Flow)は、Salesforce組織内のビジネスプロセスを自動化するための宣言型ツールです。コードを記述することなく、クリック操作で複雑なプロセスを設計・実行できます。ユーザーへの画面の表示や、バックグラウンドでのレコード操作、外部システムとの連携など、さまざまな自動化を実現します。

フロービルダーとは?

フロービルダーは、フローを作成・編集するためのインターフェースです。画面、ロジック(決定、割り当て、ループなど)、アクション(レコード作成/更新/削除、メール送信、Apex呼び出しなど)といった「要素」をキャンバス上にドラッグ&ドロップし、それらを「コネクタ」で繋いでいくことで、視覚的にフローを構築できます。変数や数式などの「リソース」も利用して、動的な処理を実装可能です。

フローでできること

フローは多機能であり、以下のようなさまざまな自動化を実現できます。

  • 画面を用いたユーザー操作支援
    複数画面にわたるウィザード形式のインターフェースを作成し、ユーザーのデータ入力をガイドしたり、特定の作業手順をナビゲートしたりできます。
  • レコードの自動操作
    レコードの作成、更新、削除を特定の条件(レコード作成時、更新時など)やスケジュールに基づいて自動実行します。
  • 複雑なビジネスロジックの実装
    条件分岐(決定要素)や繰り返し処理(ループ要素)を用いて、複雑なビジネスルールに基づいた処理を実行します。
  • 外部システムとの連携
    Apexアクションや外部サービス連携機能を利用して、Salesforce外のシステムとデータを送受信できます。
  • 承認プロセスの自動化
    申請されたレコードを指定された承認者に送信し、承認または却下のプロセスを自動化します。
  • その他
    メールアラートの送信、Chatterへの投稿、カスタム通知の送信など、さまざまなアクションを自動化できます。

フローには、画面を表示する「画面フロー」、レコードの変更などをトリガーとする「レコードトリガーフロー」、指定した日時に実行される「スケジュールトリガーフロー」、他の自動化から呼び出される「自動起動フロー(トリガーなし)」など、用途に応じた種類があります。

フローでの制限事項

フローは強力なツールですが、以下のようないくつかの制限事項や考慮事項があります。

  • ガバナ制限
    Salesforceプラットフォーム共通のガバナ制限が適用されます。1つのフロートランザクション内で実行できる要素の数、SOQLクエリの発行回数、DML操作(レコード作成・更新・削除)の回数などに上限があります。複雑すぎるフローや大量データを扱うフローは、これらの制限に達する可能性があります。
  • サポートされない機能
    一部の複雑なUIコンポーネントや、特定の標準オブジェクト・項目に対する操作が完全にはサポートされていない場合があります。
  • デバッグとテスト
    フローが複雑になると、デバッグやテストが難しくなることがあります。エラーハンドリングを適切に設計することが重要です。
  • パフォーマンス
    設計によってはフローの実行に時間がかかり、ユーザーエクスペリエンスに影響を与える可能性があります。効率的な設計が求められます。

これらの制限を理解し、設計段階で考慮することが、安定的かつ効率的なフローを構築するうえで重要です。