ヴァル研究所 Advent Calendar 2017の9日目は、昨日の内容の応用編です。
##忙しい方向け今北産業
- 社内で日常的にSlackを利用しているため、このステータスをリアルタイムな状態と合わせたい
- ステータスの手動変更は忘れることもあるし面倒なので自動化したい
- カレンダーの予定に連動してirucaの更新ができるなら、Slackのステータスでもできるのではと考えやってみた
##背景とやりたい事
弊社では業務上のコミュニケーションツールとして日常的にSlackを利用しています。
Slackのステータスで在席や外出などの状況を表している社員も多いため、一声かける前にカレンダーかSlackのステータスを見るということがよくあります。
Slackのステータスを正として扱えればいいのですが、手動で変更していては忘れることもありますし、毎度変更するのも面倒です。そこで、カレンダーの予定の状態に連動して、Slackのステータスを以下のように変更させたいと思います。
- 社内や外出での打ち合わせ中は「取込中」に
- 社内の打ち合わせが終わったら「在席」に
- 外出移動中は「移動中」に
##仕組み
カレンダーから予定の状態を検知して、Slackのステータスを変更する仕組みは、ほぼAuto iruca Powered by RODEM Ver.2.0の流用で、IFTTT上で構築しています。
- 予定の開始は、Googleカレンダーの「Event from search starts(特定のキーワードを含む予定の開始時に反応)」トリガーを使用して、社内外の打ち合わせや移動の開始を検知します
- Which calendar? ``参照したいカレンダー(アカウント)の指定``
- Keyword or phrase ``どんなキーワードの入った予定に反応させたいか``
- Time before event starts ``イベント(予定)開始の何分前に通知を出したいか``
- 予定の終了は、Googleカレンダーの「New event from search ends(特定のキーワードを含む予定の終了時に反応)」トリガーを使用して、社内打ち合わせの終了を検知します - Which calendar? ``参照したいカレンダー(アカウント)の指定`` - Keyword or phrase ``どんなキーワードの入った予定に反応させたいか``
- Slackのステータス変更はwebhookトリガーを使用 - URL ``https://slack.com/api/users.profile.set`` - Method ``POST`` - Content Type ``application/x-www-form-urlencoded`` - Body ``token=トークン&profile={"status_text":"テキスト","status_emoji":":絵文字コード:"}`` - トークンは[こちら](https://api.slack.com/custom-integrations/legacy-tokens)でgenerateできます - 絵文字コードは[チートシート](https://www.webpagefx.com/tools/emoji-cheat-sheet/)からお好きなものを
- ステータスには絵文字も入れておくと、タイムライン上でもわかりやすいかと思います - 在席 `` "status_text":"在席","status_emoji":""`` - 取込中 `` "status_text":"取込中","status_emoji":""`` - 移動中 `` "status_text":"移動中","status_emoji":""``
##まとめ
・Slackのステータスもカレンダーの予定に連動するようになりました
・カレンダーに予定さえ入れていればステータスが自動変更されるので、変更し忘れを防いだり、手間を減らすこともできる
##参考にした記事
Slackのステータス変更APIの仕組みは下記を参考にさせていただきました
オフィスにいる間は、Slackのステータスを自動で会社の絵文字にする