はじめにこんにちは、チョコです(チョコレートが大好物です)。今回の勉強会では、Salesforceの「ユーザー管理」を取り上げました。 Salesforceの権限セットを活用することで、ユーザーや業務上の役割に応じて、必要な権限を柔軟に付与することができます。本記事を通じて、Salesforceにおけるユーザー管理について、少しでも理解を深めていただければ幸いです。勉強会の目的Salesforceの「権限セット」に関する基本的な知識を身につけ、商談チームに追加されたユーザーの役割に応じて、必要な権限を自動で付与することで、適切な情報のみを編集できる状態を実現すること。ユーザー管理と権限セットの活用本セクションでは、権限セットを活用した権限付与の自動化について学びます。下記のユースケースを想定しています。商談は、原則として所有者および上位ロールのユーザーのみが編集可能とし、商談チームに「レビュー担当」として追加されたユーザーに対しては、商談の「承認済み」項目を編集可能にする。※本記事では「商談チームの役割に応じて権限セットを自動付与する仕組み」を学習することを目的としているため、説明を簡略化した構成としています。※実際の業務では、権限付与だけでなく、権限の剥奪やロール変更時の制御などもあわせて検討するケースがあります。要件:商談チームの役割に応じて、編集可能な情報を制御することを想定営業提案業務においては、商談に関与するメンバーの役割に応じて、編集可能な情報を適切に制御する必要がある。そのため、商談は原則として所有者および上位ロールのユーザーのみが編集可能とし、それ以外のユーザーは編集不可とする仕組みが求められる。その上で、商談チームに「レビュー担当」として追加されたユーザーに対しては、当該商談の「承認済み」項目も編集可能とする。この仕組みにより、必要最小限の操作のみを許可し、業務上必要な権限を適切に付与することができる。目標:商談チームの役割を判別し、権限セットを自動付与する以下の条件で権限セットを付与する。商談チームにユーザーが追加され、かつメンバーロールが「レビュー担当」の場合に、該当ユーザーへレビュー担当用の権限セットを自動付与する。レビュー担当以外のメンバーロールの場合は、権限セットを付与しない。※本ユースケースでは、商談チームに加えられたメンバーのロールは、作成時から変更されないものとします。※また、権限の剥奪は考慮せず、「レビュー担当」として設定されたタイミングでのみ権限付与を行うシンプルな構成とします。事前準備今回の勉強会では、Trailhead Playgroundを使用しました。ユーザを作成する1、「標準 Platform ユーザー」プロファイルで複数ユーザを作成します。・佐藤 太郎・鈴木 花子・高橋 一郎2、高橋 一郎のプロファイルを「標準ユーザー」に設定します。3、設定>ログインアクセスポリシーの画面で「管理者は任意のユーザーでログインできる」を有効化します。手順以下操作はシステム管理者ユーザで実施します。①商談オブジェクトにカスタム項成するホーム画面右上の歯車から「設定」を押下後、「オブジェクトマネージャ」タブをクリックします。その後、検索窓に「商談」と入力し、リスト内の[商談]をクリックします。「項目とリレーション」を選択し、[新規]をクリックします。新規ボタン押下後、カスタム項目を作成します。・項目名:「承認済み」・データ型:チェックボックス・項目名:「approved__c」・デフォルト値:チェックなし作成時に、項目レベルセキュリティを設定します。「標準ユーザー」の「参照のみ」にチェックを入れ、[次へ]をクリックします。※ここでは、通常の標準ユーザーが「承認済み」項目を自由に編集できないようにすることを目的としています。②商談の組織全体のデフォルト(OWD)を「非公開」に設定するホーム画面右上の歯車から「設定」を押下後、クイック検索ボックスに「共有設定」と入力し、[共有設定]をクリックします。 「組織の共有設定」内の[編集]をクリックします。商談のデフォルトの内部アクセス権を「非公開」に設定し、[保存]をクリックします。③商談チームを有効化し、チーム内の役割に「レビュー担当」を追加する商談チームを使用するため、商談チームの有効化を行います。ホーム画面右上の歯車から「設定」を押下後、クイック検索ボックスに「商談チーム」と入力し、[商談チームの設定]をクリックします。「チーム設定の有効化」にチェックを入れ[保存]をクリックします。ページレイアウトの選択では、「Opportunity Layout」にチェックを入れ、[保存]をクリックします。次に、クイック検索ボックスに「チーム内の役割」と入力し、[チーム内の役割]をクリックします。[新規]をクリックします。入力欄に「レビュー担当」と入力します。[保存]をクリックします。・役割名:「レビュー担当」・API名:「レビュー担当」④レビュー担当用の権限セットを作成する商談チームで「レビュー担当」となったユーザーに付与する権限セットを作成します。ホーム画面右上の歯車から「設定」を押下後、クイック検索ボックスに「権限セット」と入力し、[権限セット]をクリックします。[新規]をクリックし、権限セットを作成します。・表示ラベル:「商談レビュー担当」・API参照名:「OpportunityReviewer」入力後、[保存]をクリックします。権限セット作成後、「オブジェクト設定」をクリックします。 オブジェクト設定から商談オブジェクトを開き、[編集]をクリックします。 ・参照:有効・編集:有効次に、項目権限から「承認済み」項目を設定します。・承認済み:参照可能・承認済み:編集可能上記にチェックが入っていることを確認し、[保存]をクリックします。⑤商談チーム追加時に権限セットを自動付与するフローを作成レビュー担当者に権限セットを手動で付与する運用では、付与漏れや、付与対象者の設定誤りのリスクがあります。そこで本勉強会では、商談チームに追加されたユーザーの役割を基に、自動で権限セットを付与する仕組みとして、レコードトリガーフローを作成します。※今回の内容は、フローによる権限セット自動付与の学習を目的としたサンプルです。※実際の業務では、権限セットの付与条件や剥奪条件、既に権限セットが付与されている場合の考慮なども検討する必要があります。《作成手順》⑤-1:設定から、クイック検索ボックスに「フロー」 と入力し、[フロー]を選択します。その後、[新規フロー]をクリックし、[レコードトリガーフロー]を選択します。⑤-2:[開始を設定]の設定をします。・オブジェクトを選択:[商談チームメンバー]・トリガーを設定:レコードが作成されたとき・エントリ条件を設定:条件の要件に一致 条件 項目「チーム内の役割」 演算子「次の文字列と一致する」 値「レビュー担当」・フローを最適化:アクションと関連レコード※商談チームにユーザーが追加され、かつ役割が「レビュー担当」の場合のみ、フローが起動するように設定します。⑤-3:開始要素の下にある[非同期パスを追加]をONにします。・パスの表示ラベル:「権限セット自動付与」・API参照名:「Async_AssignPermissionSet」※非同期パスを使用することで、商談チームメンバーのレコード作成後に、権限セット割り当てを作成できます。⑤-4:非同期パス上の[+]マークから[レコードを取得]を選択し、設定します。・表示ラベル:「権限セット取得」・API参照名:「Get_PermissionSet」・オブジェクト:権限セット・条件の要件:すべての条件に一致(AND) 条件: 項目「API参照名」 演算子「次の文字列と一致する」 値「OpportunityReviewer」・権限セットレコードの並び替え:並び替えなし・保存するレコード数:最初のレコードのみ・レコードデータの保存方法:すべての項目を自動的に保存⑤-5:非同期パス上の[+]マークから[レコードを作成]を選択し、権限セット割り当てを作成します。・表示ラベル:「権限セット割り当て作成」・API参照名:「Create_PermissionSetAssignment」・レコードの項目値の設定方法:「手動」・オブジェクト:権限セット割り当て・権限セットの割り当ての項目値を設定: 項目:「AssigneeId」 値:「トリガー 商談チームメンバー > ユーザーID」 項目:「PermissionSetId」 値:「権限セット取得 > ID」※権限セットの割り当て(PermissionSetAssignment)は、ユーザーに権限セットを割り当てるためのオブジェクトです。※割り当て先ID(AssigneeId)には権限セットを付与するユーザー、権限セットID(PermissionSetId)には付与する権限セットを設定します。※本フローでは、非同期パス内で権限セット割り当てレコードを作成することで、商談チームメンバーの作成処理とは別のタイミングで権限セットを付与します。[保存]をクリック後、[有効化]をクリックします。⑥動作確認を行う設定が完了したら、実際に商談を作成し、商談チームにユーザーを追加して動作確認を行います。⑥ー1:商談を作成します。⑥ー2:作成した商談の関連リストから、商談チームにユーザーを追加します。⑥ー3:[商談チームメンバーを追加]をクリックします。⑥ー4:以下を選択し[保存]をクリックします。・チーム内の役割:レビュー担当・ユーザー:高橋 一郎・商談のアクセス権:参照結果商談チームに高橋 一郎を「レビュー担当」として追加した場合、高橋 一郎にレビュー担当用の権限セットが自動付与される。商談チーム(役割:レビュー担当)追加後補足:権限セットとプロファイルの使い分けSalesforceでは、プロファイルでユーザーの基本的な権限を管理し、権限セットで追加の権限を付与することができます。今回の勉強会では、標準ユーザーには「承認済み」項目を参照のみ可能とし、レビュー担当者に対してのみ、権限セットを付与することで編集可能にしました。このように、基本権限はプロファイルで管理し、特定の業務や役割に応じた追加権限は権限セットで管理することで、柔軟な権限制御が可能になります。補足:権限の剥奪について今回のユースケースでは、権限の剥奪は考慮していません。そのため、一度「レビュー担当」として権限セットが付与されたユーザーは、商談チームから削除された場合や役割が変更された場合でも、権限セットは自動では削除されません。実際の業務で利用する場合は、以下のようなケースも検討する必要があります。・商談チームから削除された場合に、権限セットを剥奪するか・レビュー担当以外の役割に変更された場合に、権限セットを剥奪するか・すでに権限セットが付与されている場合に、重複作成を防ぐか本記事では、権限セット自動付与の基本的な仕組みを学ぶため、シンプルな構成としています。まとめ今回は、商談チームに「レビュー担当」として追加されたユーザーに対して、権限セットを自動で付与する仕組みを紹介しました。プロファイルだけで権限を管理しようとすると、ユーザーごとの細かい業務差分に対応しづらい場合があります。そのような場合に、権限セットを活用することで、必要なユーザーに必要な権限だけを柔軟に付与することができます。ぜひ皆さんの業務にも取り入れて、「必要な人に、必要な権限だけを付与できる仕組み」を作ってみてください!参考リンク・資料Salesforce公式ドキュメントTrailheadモジュールユーザーがアクセスできる情報の管理