ヴァル研究所 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(特定のキーワードを含む予定の開始時に反応)」トリガーを使用して、社内外の打ち合わせや移動の開始を検知します
![スクリーンショット_2017-12-05_19_25_11.jpg](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F152460%2F8b9f61e4-fec6-4f66-be8b-f2985b6a365c.jpeg?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=84cb93c61e491dd1c8b53e7a99c35203)
- Which calendar? ``参照したいカレンダー(アカウント)の指定``
- Keyword or phrase ``どんなキーワードの入った予定に反応させたいか``
- Time before event starts ``イベント(予定)開始の何分前に通知を出したいか``
- 予定の終了は、Googleカレンダーの「New event from search ends(特定のキーワードを含む予定の終了時に反応)」トリガーを使用して、社内打ち合わせの終了を検知します
![スクリーンショット_2017-12-07_20_08_30.jpg](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F152460%2Fd8dee996-eae5-0ee9-d468-c1cb1d21af9b.jpeg?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ea3160ee3f06b318e9919ce68817db57)
- Slackのステータス変更はwebhookトリガーを使用
![スクリーンショット_2017-12-04_17_49_49.jpg](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F152460%2F33412477-9f82-66f0-ff0b-bdc5e386cc90.jpeg?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=80d95f6223ce0d5115c083bcd19af074)
- ステータスには絵文字も入れておくと、タイムライン上でもわかりやすいかと思います - 在席
![:office: :office:](https://cdn.qiita.com/emoji/twemoji/unicode/1f3e2.png)
![:office: :office:](https://cdn.qiita.com/emoji/twemoji/unicode/1f3e2.png)
![:two_men_holding_hands: :two_men_holding_hands:](https://cdn.qiita.com/emoji/twemoji/unicode/1f46c.png)
![:two_men_holding_hands: :two_men_holding_hands:](https://cdn.qiita.com/emoji/twemoji/unicode/1f46c.png)
![:rocket: :rocket:](https://cdn.qiita.com/emoji/twemoji/unicode/1f680.png)
![:rocket: :rocket:](https://cdn.qiita.com/emoji/twemoji/unicode/1f680.png)
![スクリーンショット 2017-12-07 19.19.45.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F152460%2F28232fbd-cf1d-8848-2121-6344563a4476.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ed70a2627cdc7b773959b62e955f10da)
##まとめ
・Slackのステータスもカレンダーの予定に連動するようになりました
・カレンダーに予定さえ入れていればステータスが自動変更されるので、変更し忘れを防いだり、手間を減らすこともできる
##参考にした記事
Slackのステータス変更APIの仕組みは下記を参考にさせていただきました
オフィスにいる間は、Slackのステータスを自動で会社の絵文字にする