くらめその情シス:受付のスマート化 RECEPTIONIST+Zapier で通知のフォローをしてみた
はじめに
こんにちは。上越オフィスの徳道です。前回はオフィス受付をスマート化という記事を書きました。
前回の記事はコチラ:https://dev.classmethod.jp/etc/smart-reception/
ご覧いただいた方の中で
ん?要件の「2.メンションされた社員が気づかない場合は総務メンバーでフォロー」ってどうするんだろ?
と思われたあなた!鋭い!
実は結構気づかない…
RECEPTIONISTで通知されるのは検索された社員や受付コードを発行した社員 「個人」なんですね。そのため、その方がお休みだったり会議中だったり移動中だったりで気づかないこともあり得るわけです。あんまりお待たせしちゃうともしかしたら帰っちゃうかも!それでは大変です。
なんとか気づかないときにフォローできないものか、ということが導入直後すぐに出てきた課題でした。通知先の社員が気づかない時、どうやって総務社員がフォローをすればいいのか…またマネジメント向けに訪問される場合はできるだけ本人に通知がちゃんと届く必要がありますよね。
ちゃんと通知が届く、気づかないときは総務がフォローできる、そんな仕組みは標準では「HELP」ボタンだけなのです。だからといって通知チャンネルに張り付いていたのでは疲れてしまいますね。
ならばZapierで転送すればどうだろ
チャットに投稿されたメッセージは一定時間OKもHELPも押されないと再通知が出ます。これを条件にして総務に知らせたり、別の方法で通知できれば…。
幸いSlackにはZapierのアプリがあることがわかりました。そして弊社ではZapierを利用できるプランがありました。
Zapierとは操作やメッセージをトリガーに処理を自動化することができるサービスです。Zapierの紹介は弊社ブログも合わせてご覧ください。
https://dev.classmethod.jp/tool/github/gmail-zapier-github/
これを使えば、再通知メッセージをトリガーにして総務グループにメンションをしたり、Twllioなどのサービスと連携してSMSや電話でスマホなどに通知することができます。
【注意】フリー版のZapierでは、2ステップまでしか作成できません。本記事の動作には有償版が必要になります。
メッセージを転送設定してみた
再通知の間隔は30秒にしていますから2回目くらいでフォローしないと訪問者をかなりお待たせしてしまいます。そのため、2回目の再通知以降は同時に総務グループへ別チャンネルでメンションするようにしてみました。
Slack側の準備
事前準備としてSlack側で以下の設定が必要です。
- SlackのワークスペースにZapierアプリのインストールしておく
- Slackの通知先チャンネルにアプリ連携するSlackアカウントのユーザーを参加させておく
- RECEPTIONISTの再通知メッセージをサンプル用として一度出しておく
Zapierのインストール方法は公式サイトをご覧ください。
https://slack.com/intl/ja-jp/help/articles/360002074228-Slack-%E5%AF%BE%E5%BF%9C-Zapier
Zapを作ってみる
Zapierは3ステップで処理が可能です。
- 通知先チャンネルのNew Message Postを受け取る
- メッセージをフィルタして再通知2回目以降であれば次のステップを実行する
- メッセージを別のチャンネルに転送し、メンション先を総務グループにする
それでは Let's MAKE A ZAP!
通知先チャンネルのNew Message Postを受け取る
まず1つ目のステップはSlackでZapierにメッセージを受け取るための設定です。
Choose App & Event
- Choose App:Slack
- トリガーイベント:「New Message Posted to Channel」を選択します。
Choose Account
- ZapierアプリをインストールしたSlackアカウントを指定しましょう。可能ならシステム用アカウントを用意したほうが良いでしょう。
Customize Message Posted
- Channel:通知先チャンネルを指定します。通知先がプライベートチャンネルの場合はSlackアカウントが参加している必要があります。
- Trigger For Bot Messages?:Yes とします(RECEPTIONISTの通知はBotです)。
Find Data
- 再通知されたサンプルメッセージを選択しておきます。次のフィルターステップで必要な情報です。
メッセージをフィルタして再通知2回目以降であれば次のステップを実行する
2つ目のステップでは再通知が2回目以降であることのメッセージフィルタをします。再通知メッセージには回数が出ているので以下のAND条件が成立します。
- ユーザー名にRECEPTIONISTの文字列を含む
- 1回目の通知メッセージ特有の文字列「再通知(1)」を含まない
- 「再通知」の文字列を含む
Choose App & Event
- Choose App:Filter by Zapier
Filter Setup & Testing
- Only Continue if
User Name | (Text) Contains | RECEPTIONIST |
Text | (Text) Does not contain | 再通知(1) |
Text | (Text) Contains | 再通知 |
メッセージを別のチャンネルに転送し、メンション先を総務グループにする
3つ目のステップでは再通知メッセージを別のチャンネルに転送&メンションします。
Choose App & Event
- Choose App:Slack
- トリガーイベント:「Send Channel Message」または「Send Private Channel Message(プライベートチャンネルへ通知する場合)」を選択します。
Choose Account
- ZapierアプリをインストールしたSlackアカウントを指定します。
Customize Private Channet Message
- Channel:メッセージを転送するチャンネルを指定します
- Message Text:任意のテキストメッセージに加え、Slackのメンション用文字列を設定します(詳しくは後述)。
- Send As A Bot?:Yes
- BotName:RECEPTIONIST(任意の名前を指定します)。
- Bot Icon:インターネット上の画像ファイルのURLを指定可能です。
- Auto-Expand Links?:Yes
- Link Usernames And Channel Names?:Yes
設定がたくさんあるので、上記以外はデフォルトのままにしています。
Message Textの指定では、任意のメッセージの他に1つ目のステップで引用されたメッセージを挿入することができるので入れています。Auto-Expand Links?:Yes とすることでリンク先が自動展開され、元のメッセージが表示されるのでリンクを開く手間が省けます。
Slackでユーザーグループをメンションするにはひと工夫必要で、<!subteam^グループID|グループ名> の指定が必要です。
SlackでのユーザーグループIDの調べ方はこちらの記事を参考にさせていただきました(感謝!)。
https://dev.classmethod.jp/etc/201909-describe-channels-and-usergroups-from-slack/
https://qiita.com/kumanizm/items/b3492e5b582b0a1ed879
この作業はちょっと難しいですね。こうした総務向けの再通知専用チャンネルを作り、そのチャンネルへの投稿は全てメンションされるように運用で回避することもできると思います。
これでZapの作成は完了です。各ステップの作成時にはテスト動作もできるのでSlackとの動作連携ができることを確認しておきましょう。また新規作成されたり編集されたりしたZapは自動的にOFFになっていますのでONにしておくことも忘れずに。
再通知が転送されました!
それではテストしてみましょう!iPadで呼び出しテストをしてSlack側で注視(いや、メンションされるから。。。)。
OKボタンを押したくなる気持ちを抑えつつ、1分待ちます。
2回目で別チャンネルでの転送通知が表示されました!ちゃんとメンションもユーザーグループ宛に出ていますね。 この後も3回、4回…延々と再通知が止まるまで転送も続きます。。。
まとめ
今回はRECEPTIONISTの通知先にSlackを使っているのでZapierによって無応答のフォローができました。このような動きができてこそのスマート化かな、と思います。
通知先システムによってはこうした仕組みを構築できないものもあると思いますが、訪問者の方を如何に待たせずにお出迎えできるかどうかが会社の顔としてのユーザーエクスペリエンスに直結してくるだけに、気を付けたいところだと思います。
スマート受付を検討、利用されている方への気づきに繋がればいいなーと思いつつ、今回はこれにて。