Agenda
承認申請の標準機能そのままでは申請者に通知が出来ない
久しぶりのIT関係の投稿となります。
今回は、今更感がすごいのですが、Salesforceの承認プロセスを使って、承認が完了した時の通知を申請者へ送付する方法をご案内したいと思います。
Salesforceの承認プロセスを 使用して社内の各種承認申請や稟議などを管理しようと考えている方向けです。
受信者種別に承認の申請者という項目はない
ちなみに、「え、そんなの当たり前に標準機能でできるんじゃないの?」と思う方へ。実はそうじゃないんですねぇ・・・証拠は以下のキャプチャをご覧下さい。
こちらは取引先オブジェクトに対して設定している承認プロセスのメールアラートの設定画面です。メールを送付する相手を受信者種別という欄で指定できるのですが、選べる対象には申請者という言葉はありません。
「関連ユーザを選択すればいいんじゃないの?」と思われる方もいるかと思いますが、関連ユーザを指定して候補として選択できるのは、以下キャプチャの通り最終更新者のみ。
最終更新者はほぼほぼ申請者に近いですが、仮に承認申請中に承認者自身がシステム管理者としての権限でオブジェクトに対して変更を行えば、その時点で 最終更新者=承認者になります。つまり、承認を行ったときに「承認完了したよー」という承認完了通知メールが承認者に届くという意味不明な事態になります。
ちなみに、これは項目自動更新を承認ステップ完了時のアクションに入れておいた場合においても起こるので、項目自動更新を入れておいた承認ステップの割当先=最終更新者となってしまいます。承認者としては、自分自身では更新したつもりでなくても、最終更新者になっているということも起こるのです。
かくいうしばやんは、当初「最終更新者に通知すればいいっしょ」と安易に考え本番稼働させていたのですが、細かいことを全く気にしない同僚社員皆様のおかげで約2か月間、通知メールが全然申請者に届いていないことにそもそも気づきませんでした。
しばやんの場合は承認申請をレポートで一覧化して管理していたので発覚が遅れたという背景もありますが、これから承認プロセスを導入する方はどうかお気を付けください。
承認完了通知メールを申請者へ送る方法【やることは3つ】
さて、それではどうしたら承認申請を行った申請者へ、承認完了時の通知メールを送ることができるのか、その方法をご案内します。やることは3つです。
- 承認申請の対象オブジェクトにメールアドレスを格納する項目を追加する
- 承認申請起動時に対象オブジェクトのメールアドレス項目を更新する自動更新をアクションとして追加
- 承認完了時の通知メールで、受信者種別:メールの項目を選択する
これを行うと、以下のような流れで承認申請を行った申請者に対して、承認完了時のメール通知を行うことが出来るようになります。
【概要】承認完了通知メールが申請者に届くようになる流れ
まず、あらかじめ承認申請の対象オブジェクトに申請者のメールアドレスを格納するためのカスタム項目(データ型:メール)を作成しておきます。
次に、承認申請を行ったとき(図表①)に、あらかじめ作っておいた承認申請の対象オブジェクトのカスタム項目に、申請を行ったユーザーのメールアドレスをコピーを行うよう、項目自動更新を承認プロセスに起動時のアクションとして設定 (図表②の設定) します。
そして、承認完了時のメールアラートの受信者種別としてメールの項目を選択し、承認申請の対象オブジェクトが持つデータ型:メールの項目がメールアラートの受信者であるという設定(図表③の設定)を行います。
こうすることで、承認申請の完了時のメールアラートが、承認申請を行った人に届くようになります。さて、それでは、具体的な設定方法をご紹介しましょう。
【詳細】承認申請の対象オブジェクトにメールアドレスを格納する項目を追加する
今回は、例として取引先を扱いますが、まずは承認申請の対象オブジェクトを何でもいいので開き、「設定」⇒「オブジェクトを編集」とクリックします。そうすると、オブジェクトマネージャが開くので、項目とリレーションを選択し、「新規」をクリックします。
次に、データ型として「メール」を選択し、「次へ」をクリックします。後は割愛しますが、新規に作成する項目の名称などを入力するだけです。
【詳細】 承認申請起動時に対象オブジェクトのメールアドレス項目を更新する自動更新をアクションとして追加する
承認申請を行う対象のオブジェクトに関する承認プロセスを開き、申請時のアクションとして「新規アクションの追加」をクリックします。この時、「項目自動更新」を選択してください。
名前は適切なものを付けて、更新する項目として、あらかじめ作成しておいた、メールアドレスを格納するためのカスタム項目を選択します。
数式を使用して新しい値を設定するを選択し、数式の値を入力します。数式の入力の際、「項目の挿入」をクリックします。
今回は、申請を行っているユーザーのメールアドレスを使用したいので、$User>⇒ メール とクリックし、「挿入」をクリックします。これで、カスタム項目に、申請を行ったユーザーのメールアドレスが格納されることになりました。
【発展】代理申請を行いたいとき
私の所属する会社では、代理申請を行うケースが多々あるので、申請を行ったユーザーのメールアドレスをそのまま取るということはしていません。もしそうすると、代理申請を行った人宛に、承認完了時のメールが届き、代理申請をお願いしたもともとの申請者には承認完了の通知メールが届かないからです。
そこで、私は代理申請を行うときのことを考え、以下のように設定を行っています。テキストだけで恐縮ですが、ご参考になれば幸いです。
- 承認申請の対象オブジェクトにもともとの申請者が誰なのかを入力する項目をカスタム項目(参照関係:ユーザ)として追加する(項目A)
- 承認申請の対象オブジェクトに承認申請者メールアドレスという項目をカスタム項目(メール)として追加する (項目B)
- 承認申請を代理申請するときは代理申請者にもともとの申請者を入力してもらう(項目Aを入力してもらう)
- 承認申請の起動時のアクションとして以下の項目自動更新を作成
- 項目Aが入力されている場合は項目Aのユーザのメールアドレスを項目Bにコピーする
- 項目Aが空欄の時は申請しているユーザーのメールアドレスを項目Bにコピーする
- メールアラートの受信者種別をメールの項目にし、項目Bを使用する
- 承認申請の完了時・却下時・取消時のアクションとして項目Aを空欄にするアクションを追加する
【詳細】 承認完了時の通知メールで、受信者種別:メールの項目を選択する
さぁ、これで最後です。承認プロセスの画面で、承認ステップの欄で各アクションにメールアラートのアクションを追加します。
初めて作成するときは、「新規アクションの追加」をクリックして、メールアラートを選択します。一度作ってしまえば、「既存アクションの追加」で他のステップにも同様にアクションを割り当てることが出来ます
メールアラートを作成する画面では、名前を付け、既に作成している、承認完了時に送りたいメールテンプレートを選択します。メールテンプレートの作成方法は過去に扱っていますのでどうぞこちらをご確認ください。
受信者種別で、メールの項目を選択し、選択可能なメール受信者に表示される、あらかじめ作成しておいたカスタム項目を選択し、▷をクリックして、右側の選択済みメール受信者の欄に移動させれば、これでこの項目に入力されているメールアドレスへ、承認完了時のメールアラートを送ることが出来ます。
おわりに
いかがでしたでしょうか。承認申請の対象とするオブジェクトが増えると、これと同じことを何度も行う必要があり、結構大変です。
私の場合は、Salesforce標準の商談、取引先、そしてSoarizeの品目・サービスマスタ、発注、見積と承認プロセスを使用しているので、同じような設定を5回行いました。(代理申請も発生するので、さらに多くの設定が必要でした)
今はメール通知をSlackで置き換えることはできないだろうかと方法を検討しているところです。SalesforceとSlack間の連携は結構多いですし、簡単に探してみただけでも技術的なHelp情報は多く見つかるので、もし実装出来たらご紹介したいと思います。
以上、ご参考になれば幸いです。