non-programmers salesforce 小ネタブログ

Apexやvisualforceなどプログラミングの力を使わずにどこまでやれるか小ネタを投稿します。

ユーザ登録後に自動的に公開グループに登録する方法【salesforce】

もともとの始まりはパートナーコミュニティにおいて、ユーザ管理権限を持たないユーザがパートナーアカウントの登録を行った際に、自動的にグループに登録して欲しい、という要望を実現するために作ったものです。

ユーザ登録後に手動で公開グループへ登録するのは手間ですし、忘れてしまいがちな行動なので、できるなら自動化したいものです。

 

今回はあらかじめ作っておいたグループ名とユーザの部署が同一だった場合に、そのグループへユーザを自動的に追加する想定で作ってみました。

f:id:non-prog-sf:20160901123520p:plain

 

これもフローとプロセスビルダーで解決します。

まずレコードの検索を行います。今回は部署名でグループ名を検索しますので、Nameに対して、部署名が入る変数(DepartmentName)と一致させます。

更にここが重要ですが、TypeでRegularを選びまず。Regularが公開グループのことで、これを選ばないと同一のキューがあった場合にそっちに紐付いてしまう可能性があります。公開グループもキューもどちらもGroupなのです。

f:id:non-prog-sf:20160901123816p:plain

DepartmentNameの変数はテキスト型、入力のみです。

f:id:non-prog-sf:20160901124232p:plain

 

 

「レコードの項目に変数を割り当ててフローで参照します。」では、IdをGroupIdとして格納します。一応レコードが検出されない場合、Null値を変数に割り当てます。にチェックを入れてください。次の判定で使います。

f:id:non-prog-sf:20160901124138p:plain

 

GroupIdの変数はテキスト型、非公開です。

f:id:non-prog-sf:20160901124309p:plain

 

次にGroupがあったかどうかを判定させます。GroupIdが見つかった(Nullではない)場合、次のステップに進めるようにします。Nullの場合はここで終了です。

f:id:non-prog-sf:20160901130114p:plain

 

次にレコードの作成を作ります。対象のオブジェクトは「GroupMember」です。GroupIdは先程の変数GroupIdを、UserOrGroupIdはユーザIDを格納する変数UserIdを割り当てます。

f:id:non-prog-sf:20160901124445p:plain

UserIdはテキスト型、入力のみです。

f:id:non-prog-sf:20160901124557p:plain

 

あとはつないで、レコードの検索を開始要素として設定します。

f:id:non-prog-sf:20160901130221p:plain

 

次にプロセスビルダーです。

アクショングループの条件は部署がヌルでないこと(False)で設定します。安易ですが。

f:id:non-prog-sf:20160901144458p:plain

 

そしてルール適用時のアクションとして先ほど作ったフローを起動します。それぞれの変数にはユーザの部署やIDを付与してください。

最後にプロセスビルダーを有効化すると完成します。

f:id:non-prog-sf:20160901144601p:plain

 

非常にシンプルではあるのですが、これだけで自動的にグループに追加されるようになります。もちろんメンテナンス(削除や変更など)を追加すると手順はかなり変わるのですが、この方法でユーザにユーザ編集権がなかったとしてもグループへの追加が可能になります。