チームスピリットデベロッパーブログ

チームスピリット開発者のブログ

Lightning プロセスビルダーで通知を考える

今年も 技術系アドベントカレンダーの季節がやってまいりました。皆さま元気にお過ごしでしょうか?

日本では、もうすぐ1年に1度の Salesforce World Tour Tokyo 2018 が 12月5日に迫ってきています。 イベントを楽しみにして待っている方、登壇のため資料などの準備に追われている方などさまざまでしょう。

クリスマスまで25日ですので、今日から毎日投稿されるアドベントカレンダーの記事を読んで楽しみながら過ごしてもらえればと思います。

はじめに

Salesforceでの通知といえば、これまではワークフロールールを利用して、メールアラートを送信するが主流だったのではないかと思い込んでいます。

もう一つの手段としてはChatter での通知なども考えられますが、Chatter 投稿を自動化できるようになったのも比較的最近であるため、まだ使い始められていない方も多いのではないでしょうか?

この Chatter 投稿を自動化するためには、Lightning プロセスビルダーを利用します。Chatter 投稿以外にもいろいろとできるので、Lightning プロセスビルダーを活用すると、どういった通知が自動化できるか考えてみたいと思います。

考えてみた

プロセスビルダーで自動化できるものは数限りなくありますが、ここでは「通知」に絞って考えることとします。

プロセスビルダーで「通知」に関連してくる機能として、メールアラート、Chatter、レコード追加・更新の3つに分けて取り上げていきたいと思います。 その他にも何かあれば教えてもらえると嬉しいです。

メールアラート

まずは、メールアラート。これまではワークフロールールを利用して、メールアラートを送信してきました。

ご存知のかたも多いと思いますが、プロセスビルダーからもメールアラートを起動できるようになっています。設定できる項目についてもワークフロールールも同じですね(詳しく差分を取っていないので、差分があれば教えてください)。

f:id:a-kura:20181201012027p:plain
図:メールアラート

Chatter

次に、Chatter投稿。

「Chatter」に投稿する場合は、ユーザー、Chatter グループ、レコードを選択できます。Chatterでの通知となるため Salesforce モバイルアプリでも通知して受信することができます。通知としては、自分のタイムラインに投稿が表示されてしまうところは良くない点なので、Chatter メッセージ(自分宛てだけに)で送信できるようになるとよいですね。

ところで、Chatter メッセージは Lightning Experience で対応される気配が…(げふんげふん)。

f:id:a-kura:20181201014113p:plain
図:Chatterに投稿

レコードを作成

最後に、レコード関係。こちらはいろいろな応用が考えられます。

プロセスビルダーでは、アクションとしてレコードを作成できるようになっています。レコードを作成・更新できると Sales Cloud や Service Cloud などの機能をかなり自動化できるので、かなり強力な機能となります。

それに加えて、Salesforce ではレコードを作成・更新で起動する Apex トリガーを仕込むことで外部サービスとの連携を含めてさまざまなことができるようになります。

ここでは、「通知」という観点で関連しそうなものを挙げていきます。

ToDo

ToDoは、いわゆるタスク管理ツールのタスクにあたります。ToDoはタスクとしての意味合いがあるので通知より強制力があり、完了させる(通知を消す)ためには本人が明示的に操作する必要があります。

f:id:a-kura:20181201012808p:plain
図:レコードを作成(ToDo)

行動

「行動」は開始日時、終了日時を登録できるので、予定として登録したい場合に非常に有効になります。また、クイックアクションでも登録できますが、いろいろな方法で登録できるのは少し謎なところがあり、どの手段が一番よいのか気になるところです。

行動を「レコードを作成」で作成する

f:id:a-kura:20181201124510p:plain
図:レコードを作成(行動)

行動を「クイックアクション」で作成する

f:id:a-kura:20181201013505p:plain
図:クイックアクション(行動)

Slack

少し前からメールに集約していた通知を、Slack などのチャットツールに集約していく流れがあります。 これは日常的なやりとりに使っているツールがメールからチャットツールに変遷していることに関連しています。

ここでは、Salesforce から Slack に通知する方法について2015年の Advent Calendar にやり方を書いた記事がありますので紹介しておきます。

Salesforce App Cloud Advent Calendar 2015 (23日目) - Salesforce→Slack通知をオープンソースで公開しました

TeamSpirit

最後に、私が携わっているプロダクト「TeamSpirit」と絡めて小技をご紹介します。

「TeamSpirit」は勤怠管理、経費精算、工数管理、カレンダーを一体にした働き方改革プラットフォームです。もう少し知りたい、という方はこちら

TeamSpirit の勤務表を開くと、お知らせが表示されることがあります。このお知らせ機能はカスタムオブジェクトでデータを管理しています。そのため、今回のプロセスビルダーでレコードを作成するように設定してあげることで、勤務表に任意のお知らせを表示できるようになります。

ここからは、少し具体的に設定方法について解説していきたいと思います。

今回設定するお知らせは、「36協定残業時間(法定休日労働を含む)」が40時間を越えたときに通知する、というものです。

新規プロセス

まず、プロセスビルダーを起動して、新規のプロセスを作成します。下記のように新規プロセスを設定します。

f:id:a-kura:20181201135418p:plain
図:新規プロセス

  • プロセス名:残業通知(任意)
  • API 参照名:OvertimeNotification(任意)
  • 説明:(任意)
  • プロセスを回位するタイミング:レコードが変更されたとき

オブジェクトを選択

次に、プロセスビルダーの画面で対象となるオブジェクトを選択します。

下記のようにオブジェクトを選択してプロセスを開始するタイミングを指定します。

f:id:a-kura:20181201135913p:plain
図:オブジェクトを選択

  • オブジェクト:勤怠月次
  • プロセスを開始:レコードを作成または編集したとき

条件を追加

そして、下記のように条件を追加します。

f:id:a-kura:20181201130319p:plain
図:条件を追加

  • 条件名:36協定対象残業時間(法定休日労働を含む)>40時間
  • アクションの実行条件:条件を満たしている
条件を設定
項目 演算子 種別
teamspirit__AtkEmpMonth__c > 36協定残業時間(法定休日労働を含む) 番号 2,400

※ 値は分単位で設定します(例:40時間×60分のため、2,400分を設定しています)

詳細
  • レコードに指定の変更が行われた場合にのみアクションを実行しますか? :オン

ルール適用時のアクション

下記のように、上記で設定した条件を満たす場合のルール適用時のアクションを設定します。

f:id:a-kura:20181201133603p:plain
図:アクションを選択して定義

  • アクション種別:レコードを作成
  • アクション名:勤怠お知らせを作成(適宜、わかりやすい名前をつけてください)
  • レコードタイプ:勤怠お知らせ
項目値を設定
項目 種別
勤怠お知らせ名 文字列 teamspirit__AtkEmpMonth__c > 社員ID > 社員名
メッセージ 文字列 36協定残業時間(法定休日労働を含む)が40時間を越えました
社員 ID 項目の参照 teamspirit__AtkEmpMonth__c > 社員ID > カスタムオブジェクトID
所有者 ID 項目の参照 teamspirit__AtkEmpMonth__c > 社員ID > 所有者ID

任意の残業時間でお知らせを表示するためのプロセス

以上で主だった設定は終わりになります。下記のようなプロセスが作成できていると思います。

f:id:a-kura:20181201134914p:plain
図:プロセス - 残業通知

プロセス有効化

最後に、忘れずプロセスを有効化しましょう。

テスト

実際に、今回設定した条件を満たすように勤務表から出退社時刻を入力していってみましょう。

条件を満たすところまで入力した後に画面を再表示すると、下記のようにお知らせが表示されました(パチパチパチ)。

f:id:a-kura:20181201151123p:plain
図:お知らせが勤務表に表示される

このように設定することで、かなり柔軟な条件でお知らせを表示できますので、ご参考にしていただければ幸いです。

まとめ

ここで紹介した通知の方法についてメリット、デメリットを独自判断でまとめておきます。書いてみて参考にならなさそうですが、ご参考まで。

通知方法 メリット デメリット
メールアラート これまでと同様、メールによる通知でわかりやすい 通知を受け取る手段としてメールのみになる
Chatter投稿 Salesforce モバイルアプリで通知として受信できる タイムラインに通知のための投稿が表示されてしまう
ToDo 強制力のあるやり方で、本人が明示的に完了させることができる 余計なToDoが作成されてしまう
行動 日時を指定して知らせることができる 余計な行動が作成されてしまう
Slack Slackに通知を集約する運用ができる 設定の難易度が高い
TeamSpirit TeamSpiritのお知らせをある程度自由に拡張できる TeamSpiritを利用していないと使えない

おわりに

今回は、Lightning プロセスビルダーを通じて、Salesforce における通知について考えてみました。皆さまはどういった通知を作成していますでしょうか?

通知を一つとっても実際の運用を考慮するとなかなか奥が深いところがあり、いろんな方の知見を伺いたいと思いました。

最後になりましたが、この投稿は チームスピリット Advent Calendar 2018 - AdventarSalesforce Platform Advent Calendar 2018 - Qiita 第1日目の投稿になります。