ITを活用してシフト表の変更漏れを無くす試み

##スプレッドシートの更新をLINEに通知

皆様、こんにちは。元COBOL☆戦士のhousakoです。（詳しくはプロフィールをみてね。）
今回は、IFTTT（イフト）を使って出先でもGoogleスプレッドシートの更新を~~リアルタイム~~タイムリーにLINEの通知で知る仕組みを試作したので紹介します。
無料で作れる上に、Googleスプレッドシートを更新したら1分程度でスマホに通知されるんです。しかも、<font color = "blue">専門知識がなくても30分位で作れちゃいます<font color = "black">。この投稿を読んでくれたら誰でも作れますので、ぜひ試してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/976df842-2d10-f9fc-188b-6180fa9b0faf.png)


##労務管理上の困りごと
私が勤める会社では、1か月間の単位でシフト表（勤務計画）を作って、それを勤怠管理システムに登録しています。計画通りに勤務出来れば良いのですが、トラブル対応や体調不良者の代わりに出勤する等の計画変更はどうしても生じます。労務管理上、<font color ="blue">勤務計画の変更は**前日まで**に登録する必要があり、しかも管理者である上長しか変更権限を持ちません<font color ="black">。そのため、勤務計画の変更連絡はタイムリーに把握する必要があります。
現状、部署ごとに立てたTeamsのチーム内でメンションすることで<font color="blue">Outlookにも連携されるのですが、1日100件ものメールが届くため、埋もれてしまう<font color ="black">危険があります。そこで、<font color ="blue">より見落としにくいLINEに通知させる<font color ="black">べく、勤務計画の変更だけをGoogleスプレッドシートに登録する運用を試すことにしました。

##概要

全体の構成は図の通りです。
1.部内メンバが指定のGoogleスプレッドシートに勤務変更申請を入力
2.Googleスプレッドシートの更新を常時監視しているIFTTTのアプレットが更新を検知
3.登録したLINEアカウント（グループ）にGoogleスプレッドシートの更新を通知
4.勤務計画の変更をLINEグループで返し、管理者同士で完了したことを共有
といった流れで処理されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/580499b0-75b0-7ba8-be91-6c560d36a3a3.png)

##必要なもの

- googleアカウント（部内メンバ全員）
- LINEアカウント（通知を受ける方全員）
- IFTTTアカウント（開発者本人のみ）
  [IFTTT](https://ifttt.com/)

##作り方

<font color = "blue">※アカウントの準備が出来ている前提で解説します。

###1.Googleスプレッドシートで勤務計画の変更申請フォーマットを作る
IFTTTでGoogleスプレッドシートの更新を「行が追加されたこと」で判別することにしたので、「誰が」「いつ入力して」「どの日付の計画を」「どのように変更したいのか」だけがわかるようなフォーマットにしました。そのため、上書きを認めないルールを守る必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/93bea059-f516-b663-9978-2f4aa1e9627a.png)

###2.作成したGoogleスプレッドシートをメンバで共有する

部内メンバに勤務計画の変更希望を登録してもらうので、作成したGoogleスプレッドシートを編集権限で共有する必要があります。Googleスプレッドシートの画面右上にある「共有」から「リンクをコピー」をクリックして得られたURLを共有したい相手に送付すると簡単に設定できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/d1b71c68-d5b9-7e58-92c3-528f8a01a9b8.png)

###3.IFTTTでアプレットを作る

####①IFTTTにログインしたら、画面上部にある「Create」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/1f08e8bb-cee2-3a4d-6b47-a9190e255d7a.png)

####②If Thisをクリック
IFTTTで作成する自動処理の定義は「アプレット」と呼びます。そのアプレットが発動する契機（トリガ）をここで決めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/c215586c-9634-16fb-b020-a76d862f0dc3.png)

####③Googleスプレッドシートを選択
選択できるサービスが沢山表示されます。探すのが大変なので、検索窓にGoogleと入力して、一覧表示の中からGoogleSheetsを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/63487f47-b63b-1952-c55d-7938fc648654.png)

####④一覧の中から「New row Added to spredsheet」を選択
「指定したGoogleスプレッドシートに行が追加されたら」という契機となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/3bb27786-6e63-950d-10a1-b341998f3a63.png)

####⑤監視対象とするGoogleスプレッドシートを指定する
手順1.で作成したGoogleスプレッドシートのURLをコピーし、IFTTTの「Or copy and paste the spreadsheet URL」に貼り付けて、「Create Trigger」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/d56118f4-83c2-aa7f-859b-041b192d8f76.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/f74863dd-a793-e7b2-a66b-da1c84f3cf86.png)

####⑥Then Thatをクリック
手順3.⑤で契機まで登録できたので、ここから処理の対象を指定していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/df178bf2-0025-2994-96e8-8fe63f1275aa.png)

####⑦一覧の中から「LINE」を選択
こちらもサービスが沢山表示され探すのが大変なので、検索窓にLINEと入力して絞り込むと楽です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/1908616f-d557-eefa-ea48-043052b908c2.png)


<font color = "red">【追記】2022/02/05　ここから

ごめんなさい。。。
初めてLINEと連携するときは、以下の2手順を追加する必要があるのを忘れていました。（汗）

- LINE Notifyにログイン
- IFTTTとLINEを接続

[LINE Notifyにログイン](https://notify-bot.line.me/ja/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/bee7ac4b-b743-cfd0-50a5-9664abad245f.png)

<font color = "red">【追記】2022/02/05　ここまで

####⑧「Send Message」をクリック
今回は唯一の選択です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/79b53e4b-247c-922d-7ac0-14db13a17d0d.png)

####⑨宛先を指定してメッセージの内容を整える

宛先には専用のLINEグループ（例では「勤務計画」）を指定します。自分のほかに、勤務計画の権限者をグループに追加しておきます。LINE NotifyをLINEグループに追加するのを忘れないでください。
メッセージはひな形が用意された形で表示されますので、必要に応じて編集します。
ここまでの指定ができたら「Create Action」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/7e2fdc82-4973-52cf-f508-d7acd515f71f.png)

####⑩「Continue」をクリック
Then Thatの設定まで出来たら図のような画面になります。そのままContinueをクリックすればOKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/65fd7d41-cd6c-8f60-c6a1-e721f54363f5.png)

####⑪「Finish」をクリック
お好みで、アプレットの名称を変更してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/1973febe-ecde-c5fc-28bc-e4b2cb0e57fa.png)

####⑫この画面になったら完成です
このアプレットを停止させたいときは、赤枠部分をクリックすれば、スイッチが左にスライドしてOFFになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/13f5fd07-42c3-c637-0700-a9b941a0cc0e.png)

###4.試してみる
Googleスプレッドシートに入力してみると・・・おお、届いた！
・・・あれ？2つ目の通知は項目が全部含まれていないぞ？？？
Googleスプレッドシートは・・・ちゃんと全項目埋まってる。。。

・・・どうやら、入力し終えるまでに通知されたらしい。
どのみちGoogleスプレッドシートを確認するわけだけど、どうせなら確実に全項目を通知したいので、更に工夫してみます。

<font color = "red">【追記】2022/02/05　ここから
[改良版の記事はこちら](https://qiita.com/housako/items/b2d459215590cd8c236f)
<font color = "black">※全項目をテキストで通知することはできませんでした。しかし、全項目入力されたときだけ通知されるようになったので、通知されたら確実に内容確認できるというメリットはあります。
<font color = "red">【追記】2022/02/05　ここまで
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/4e78a63a-25b7-a1d6-c243-7e6eb9e9fade.png)

最後まで読んでいただき、ありがとうございました。これからも精進します。