DX攻略部がリニューアルしました!

【Salesforce】ユーザによってはフローが実行できない?原因と解決策まとめ

こんにちは、DX攻略部のヘナトンです。

Salesforceの自動化ツールであるフローは、ビジネスプロセスを自動化するための強力なツールです。

業務フローのデジタル化や承認プロセスの自動化など、企業のDX推進において中心的な役割を担うフローですが、「特定のユーザだけ実行できない」「エラーが出て原因がわからない」というトラブルは現場でよく発生します。

今回はそのフローを実行できるユーザの権限周りの解説をします。

そもそもフローとは何だろう?という方はこちらの記事で概要を解説しておりますのでご活用ください。

関連記事

こんにちは、DX攻略部のヘナトンです。 Salesforceの自動化ツールであるフローは、ビジネスプロセスを自動化するための強力なツールです。 Salesforceの自動化ツールとしてワークフロールールやプロセスビルダーもありま[…]

DX攻略部では、Salesforce支援サービスというサービスも提供しております。

こちら興味を持った方は、ぜひご相談ください。

Salesforce支援サービス

フローを実行できるユーザはどんなユーザ?

フローを作成し、有効化しても誰でも実行できるわけではありません

それぞれのユーザにフローを実行する許可をあたえなければなりません。

まず挙げられるのは下記の二つの方法です。

いずれかを設定すればフロー実行できます。

プロファイルや権限セットによる許可

プロファイルまたは権限セットに「フローを実行」もしくは「フローを管理」の権限を付与することで、そのプロファイル・権限セットを割り当てられたユーザはフローを実行できます。

  • 設定>プロファイル>該当ユーザのプロファイルを選択>編集>一般ユーザ権限>「フローを管理」
  • 設定>プロファイル>該当ユーザのプロファイルを選択>編集>一般ユーザ権限>「フローを実行」
    • 設定>権限セット>該当ユーザの権限セットを選択>システム権限>編集>「フローを管理」
    • 設定>権限セット>該当ユーザの権限セットを選択>システム権限>編集>「フローを実行」

       

      フローを管理」「フローを実行」の二つのうちどちらかにチェックを入れればそのプロファイルや権限セットを割り当てられているユーザはフローを実行できます

      *「フローを管理」はフローを設定する権限で、「フローを実行」はフローを実行するだけの権限です。

      ユーザレコードの項目による許可

      プロファイルや権限セットではなく、ユーザ個別に権限を付与することもできます。

      設定>ユーザ>該当ユーザを選択>編集>ユーザの詳細>「フローユーザ」

      この「フローユーザ」項目にチェックを入れればこのユーザはフローを実行できます。

      関連記事

      こんにちは、DX攻略部のmukkukoです。 今回はSalesforce導入の際、どのような課題があるのか・どう解決していくべきなのかを解説していきます。 実際に筆者が導入設定時に感じた目標設定の大切さについて、また実際の業務改[…]

      フローごとに実行可能ユーザを決められるの?

      前の章では「ユーザにフローを実行できる権限を付与する方法」を解説しました。

      ここではさらに一歩進んで、「特定のフローだけ特定のユーザに実行させたい(または実行させたくない)」という細かい制御の方法を解説します。

      DX推進において複数の業務フローを運用する場合、このフロー単位のアクセス制御は特に重要です。

      設定方法

      デフォルトではフロー実行権限を持つすべてのユーザがフローを実行できますが、特定のプロファイルまたは権限セットのみに絞り込むことができます。

      まずはフローを実行するユーザ条件を決めたいフローを決めます。

      設定>フロー>該当フローを選択>編集アクセス権>「デフォルト動作を上書きし、有効化されたプロファイルまたは権限セットにアクセスを制限します。」にチェック>該当プロファイルもしくは該当権限セットを「選択可能なプロファイル」から「有効にされたプロファイル」に追加>保存

      この設定を行うと、有効にされたプロファイルまたは権限セットを割り当てられたユーザだけがそのフローを実行できるようになります

      確認および追加方法

      「デフォルト動作を上書きし、有効化されたプロファイルまたは権限セットにアクセスを制限します。」にチェックを入れたフローは、プロファイルや権限セットの設定画面から確認・追加できます。

      プロファイルの場合

      設定>プロファイル>実行できるフローを確認したいプロファイルを選択>フローアクセスを有効化

      ここで当プロファイルに対して有効なフローを確認できます。

      「編集」>該当フローを「選択可能なフロー」から「フローを有効化」に追加>保存

      これで他の使用可能なフロー(「デフォルト動作を上書きし、有効化されたプロファイルまたは権限セットにアクセスを制限します。」にチェックが入っているフロー)を当プロファイルに対して有効化できます。

      権限セットの場合

      設定>権限セット>実行できるフローを確認したい権限セットを選択>フローアクセス

      ここで当権限セットに対して有効なフローを確認できます。

      「編集」>該当フローを「選択可能なフロー」から「フローを有効化」に追加>保存

      これで他の使用可能なフロー(「デフォルト動作を上書きし、有効化されたプロファイルまたは権限セットにアクセスを制限します。」にチェックが入っているフロー)を権限セットに対して有効化できます。

      フローが実行されるコンテキストとは?

      以上の設定を確認してもユーザがフローを実行できない場合があります。

      なぜでしょうか?

      それは上記の設定ではフロー自体を実行できるか否かの設定を行いましたが、フロー内の処理は別の話だからです。

      フロー内での処理内容が許可されていないユーザはそのフローを実行できないのです。

      以下にフロー内部での処理内容に対するアクセス権の解説をします。

      Salesforceフローはユーザコンテキストもしくはシステムコンテキストで実行されます。

      • ユーザコンテキスト
      • システムコンテキスト(共有あり)
      • システムコンテキスト(共有なし)

      ユーザコンテキスト

      実行ユーザのプロファイルや権限セットによってフロー内のオブジェクト権限や項目レベルのアクセス権が決まります

      例えばフロー内に商談レコードを編集する要素が含まれている場合でユーザAのプロファイルで商談は参照のみしかアクセス許可されていない場合、ユーザAはこのフローを実行してもエラーが出ます。

      システムコンテキスト(共有あり)

      フロー内のレコード処理には組織の共有設定ロール階層共有ルール共有の直接設定チームテリトリーが適用されます。

      例えば組織の共有設定で商談オブジェクトが非公開でありフロー内で商談を編集する処理があるとします。

      ユーザAに手動共有などで商談Aが共有されていないにも関わらず商談Aを編集するフローを実行するとエラーが出ます。

      システムコンテキスト(共有なし)

      システム管理者と同様の権限でフローを実行できます。

      上記のエラーの回避策として設定できます。

      レコードトリガーフローなどはそもそもこの設定しかできないので考慮不要です。

      コンテキストの設定方法や注意事項はこちらの記事でまとめておりますのでご活用ください。

      フローが実行できないときの確認手順

      ここまでの内容を踏まえて、ユーザAがフローを実行できない場合の確認手順を整理します。

      原因の特定には以下の4ステップで順番に確認することが最も確実です。

      DX推進の現場でフローを活用している管理者の方は、トラブル発生時のチェックリストとしてご活用ください。

      ①フロー自体が実行許可されているか

      ②フロー内の処理内容が実行許可されているか

      ③フローの処理に誤りがないか

      ④テストをする

      ①フロー自体が実行許可されているか

      まずはそのフロー自体をユーザAは実行許可されているか確認します。

      フローを実行できるユーザはどんなユーザ?フローごとに実行可能ユーザを決められるの?に従って確認できます。

      ②フロー内の処理内容が実行許可されているか

      次にフロー内の処理をユーザAは実行許可されているか確認します。

      フローが実行されるコンテキストとは?に従って確認できます。

      ③フローの処理に誤りがないか

      最後にフロー内の処理内容に間違いがないか確認します。

      例えば、ユーザのロールが「総務部」であれば処理A、「総務部」でなければ処理終了という条件分岐が設定されていたら総務部でないユーザAは処理を進めることができません。

      また、そもそもフローにおかしな処理が設定されていれば実行してももちろんエラーが出ます。

      ④テストをする

      それでもユーザAがフローを実行できない場合は様々なパターンでテストをして要修正箇所を発掘しましょう。

      • ユーザAと同じプロファイルで異なる権限セットを持つユーザBでは実行できるか。
      • ユーザAと同じ権限セットで異なるプロファイルを持つユーザBでは実行できるか。
      • レコードに関するフローであれば、他のレコードであれば実行できるか。
      • 本番環境のみで起こる現象なのか。

      原因が見つかるまで微調整を繰り返しテストする根気強さが必要ですが、この切り分けの手順を体系的に進めることで工数を最小限に抑えられます。

      関連記事

      こんにちはDX攻略部です。 今回は『Marketing Cloud Account Engagement(旧:Pardot)』のフォーム機能についてご紹介します。 『Marketing Cloud Account Engagem[…]

      まとめ

      Salesforceフローの権限に関する解説は以上となります。

      ご覧のようにフローでは様々な条件で実行できるできないを決定できるというメリットがあります。

      一方で様々な設定を管理しないといけないというデメリットもあります。

      同じ会社内の人間でも役職などによってアクセスしていい場合とよくない場合がありますね。

      Salesforceは社内の人間だけでなくパートナーやお客様にもライセンスを発行して活用できる便利なツールですがセキュリティ面は気を付けなければなりません。

      フローを誰にでも許可するのではなく、適切なユーザだけが適切なタイミングで活用できるよう権限設定を心がけましょう。

      DX攻略部のSalesforce支援サービスでは、初期導入から開発・カスタマイズ、運用、教育まで一気通貫で対応しています。

      フロービルダーを含むノーコード開発はもちろん、Apex言語やAPIを活用したプログラム開発も対応可能です。

      「まずは相談だけ」でも歓迎していますので、Salesforceの活用に課題を感じている方はぜひ詳細をご確認ください

      DX攻略部へのお問い合わせはこちら