上級者でも間違いやすい分野です。
Salesforceでフローを運用で使用するには「フロー自体が操作できる権限範囲」「フローを起動するためのユーザ権限」を正確に把握する必要があります。
意図しない挙動とならないように慎重に設定をしましょう。
①レコードトリガーフローは常に「システムコンテキスト共有なし」で実行されることを意識すべし
Salesforce公式サイトである下記で紹介されています。
フローの実行コンテキスト
下記で詳しくみてみましょう。
画面フロー
Salesforceは画面フローであれば下記のように「フローの実行方法」の選択が可能です。
その画面フローを起動したユーザ自身のアクセス権に沿った処理とするか、全権限を持った処理とするかを指定できます。

レコードトリガーフロー・自動起動フロー・スケジュールトリガーフロー
一方でSalesforceはレコードトリガー、自動起動フロー、スケジュールトリガーフローでは「フローの実行方法」の指定箇所がありません。
そのため常に「システムコンテキスト(共有なし)」で実行されます。
これは「ユーザーの権限や共有ルールに影響されず、すべてのレコード・項目にアクセス可能」という状態です。
・レコードトリガーフロー、自動起動フロー、スケジュールトリガーフローを実行したユーザが編集権を持たない項目であっても、値の入力や更新ができてしまう点に注意!
補足:ExperienceCloudユーザ(外部ユーザ)でレコードトリガーフロー、自動起動フロー、スケジュールトリガーフローを実行する場合は?
SalesforceはExperienceCloudユーザであっても、レコードトリガーフロー、自動起動フロー、スケジュールトリガーフローを実行すると「システムコンテキスト(共有なし)」となります。
内部ユーザが実行する際と同じように「ユーザーの権限や共有ルールに影響されず、すべてのレコード・項目にアクセス可能」という状態となるため注意しましょう。
②各フローが実行できるのは誰なのかを意識すべし
画面フロー
Salesforceでは画面フローを実行できるのは、「フローを管理」、「フローを実行」、「フローユーザー」のいずれかの権限をもつユーザのみです。
●権限の種類
・「フローを管理」権限:開発や編集・実行ができる強い権限
・「フローを実行」権限:実行だけ可能な権限
・「フローユーザー」:ユーザオブジェクトの項目、実行だけ可能な権限
●ライセンスごとに付与可能な機能
・Salesforceライセンス
プロファイルか権限セットで「フローを管理」か「フローを実行」の権限を付与できます。
・Salesforce Platformライセンス
プロファイルか権限セットで「フローを実行」の権限を付与できます。
・ユーザレコード
ユーザ単位ではユーザレコードの項目「フローユーザー」がTrueであればフローを実行可能です。
【ワンポイントTips】
上記いずれかの権限を持つユーザであれば、各画面フローが実行可能になります。
もし一部のユーザのみが実行可能な画面フローを作成したい場合は「編集アクセス権」からプロファイル単位で設定が可能です。
※この機能は画面フローでのみ使用可能です。


レコードトリガーフロー
画面フローと違い、レコードトリガーフローを実行するためには「フローを管理」か「フローを実行」の権限は必要ありません。
ユーザがそのレコードに作成/更新/削除の各権限を持っていれば、その処理に応じてレコードトリガーフローは実行されます。
・レコードトリガーフローの実行に「フローを管理」か「フローを実行」権限は不要
・レコード作成権限があるユーザは作成トリガーフローが実行出来る、レコード編集権限があるユーザなら編集トリガーフローが実行される、という具合に作成/更新/削除の各権限を持っていればレコードトリガーフローは実行されます
自動起動フロー
自動起動フロー自体の実行に「フローを管理」か「フローを実行」の権限は必要ありません。
自動起動フローは何かをトリガーに実行されるため、レコードトリガーフロー、画面フロー、プラットフォームイベントフローなどの起動元が実行できれば自動起動フローも実行可能です。
スケジュールトリガーフロー
スケジュールトリガーフローはSalesforce自体が実行するフローのため、どのユーザが実行できるかという概念はありません。
Salesforce自体がフローを実行するため、レコード更新後のレコード最終更新者は[プロセスの自動化設定] – [デフォルトのワークフローユーザー] で設定されているユーザとなります。
デフォルトのワークフローユーザーが未設定の場合は一律で「Process Automated 」というシステム名となるようです。


