毎日送っているメールをLINEでワンプッシュにしてみたら世界が57秒縮んだ件



こんにちは。
アミューズメント系ユーザー企業で社内SEやっています。
今回は毎日の定例業務を時短するためのツールをサクッと作ってみました。

## 問題：2,880,000秒←これ、何の時間でしょう？

![メール2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2471853/5d8cd6ed-dc8c-8153-d093-41cc27682a7e.png)

勘が鋭い人は画像でお気づきになったかと思いますが、
<b>年間で弊社社員が出退勤のメール作成にかけている時間（試算）です。</b>

同じタイトルのメールが在宅勤務をしている社員から<b>毎朝送られています。</b>
各々、効率化はしているものの、<b>全て手作業です。</b>

ざっと、弊社在宅勤務メンバー全員の工数で計上してみると
<b>60秒（メール1通作る時間）×2（始業と就業）×100人（在宅人数）×240日（年間の営業日）
=2,880,000秒=800時間=100人日<font color="Red"> = 出退勤メールで年間 5人月も使っている計算になります。</font>

会社への出勤時は静脈認証で<b>10秒くらいで処理ができていた</b>のに、在宅勤務では、「出勤した」「退勤した」事実を通知するために、<b>全社員が朝晩約6倍の時間をかけている。</b>
ルールとか手段とかいろいろと課題はありますが、<b>結果として工数増えているのが大変微妙です。</b>

と、いうわけで、本日はこのメール送信を<b> LINE でワンタッチ</b>で行えるようにしてみたいと思います。
この作業が1回あたり、<b>5秒くらい</b>になると、<b>4人月位は削減できそうです！</b>
これはなかなか削減効果が高いんじゃないでしょうか？

## 今回はスピード開発で行きます！

### 使ったもの。

<b>・Integromat</b>
今回は、ベースのツールをIntegromatを利用しています。
このツールは、既に利用できるAPIライブラリが豊富にあるかつモジュールを関連付けさせるだけで簡単にアプリを開発することができます。

<b>・LINE Messaging API</b>
Integromat にトリガーを渡すAPIとして、Line Messaging APIを利用します。
出勤・退勤および登録ユーザーの情報を渡しています。
出勤・退勤とわざわざ入力するのも手間なので、前回の開発でお世話になった<b>リッチメニューで入力操作を省力化</b>しています。
尚、今回は弊社のキャラクターララちゃんにお手伝いしてもらっています。

Integromat で接続する際設定が若干謎仕様あったりしました。
詳しいつなぎ方は以下を参考に設定してみてください。

[IntegromatでLINEBot連携](https://zenn.dev/inoue2002/articles/3067c574b3a605)

<b>・Google Cloud Platform （Gmailの連携 と Google スプレッドシート）</b>
データの出力のインターフェースとして、<b>メール送信用に Gmail</b> を、<b>出退勤ログの記録用に Google スプレッドシート</b>を利用しています。
Gmail の利用には AOuth 認証が必要なので、少しハードル高いです。
尚、送信元アドレスを各個人アカウントにしようとすると、全員の Gmail で OAuth 認証の設定を行う必要がでてきますので、<b>送信用に Gmail アカウントを1つ払い出す形が望ましい</b>と思います。
尚、スプレッドシートはそのまま上司に閲覧権限共有しています。
※Gmail は Gmailが正式なサービス名称らしいです。
※Google Cloud Platform の利用は基本有償です。今回は無償の評価期間で試しています。

***
### 約3時間でとりあえず完成！
こんな感じの動作をします。
これまでの開発は実装部分の開発に時間が掛かってしまっていたため、
ユーザーインターフェース周りが手抜きでしたが、今回は一切の妥協なく仕上げました。

<iframe width="1280" height="720" src="https://www.youtube.com/embed/sB_ON-7Pqj4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

実際にLINE開いてから出勤ボタン押すまでの操作時間は…
<font color="Red"><b>なななんと…約3秒！圧倒的速さ！圧倒的スピード感！
57秒も世界を縮めてしまったァ… </font>
※一応、出勤押すとおはようメッセージが返ってくる遊び心仕様はありますが、
　メール作成・送信に当たる操作は、「出勤」ボタン押すところで完了しているので考慮外にしています。
　それでも十分早いですが…（笑）

<b>動画は速すぎたので、静止画で画面仕様を説明します。</b>
![動作キャプチャ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2471853/1368c310-dd57-0bb5-91fb-c5ec74176588.png)

<b>Integromat はこんな感じになっています。</b>
![Integromat画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2471853/b2dce644-eb74-d171-db62-b4fbf6c87ea4.png)
メール送信部分が、利用者ごとにモジュール作らなきゃならない仕様になっているので、
スプレッドシート上にユーザーデータシート作って、必要なデータ読み込む仕様にしたいです。

***
### 周りの人に早速使ってもらってみた。
今回は仕様の都合で自部署所属の4名に使ってもらいました。

<b>Q：使ってみた感じどーですか？使えそうですか？</b>
・かわいい！！（情シスパートナーTさん）
・早くてめっちゃ便利！！（情シスパートナーYさん）
・喋ってくれる（リプライ）からボタン押すのが楽しみ！<b>(メール送信を)忘れなそう！</b> （情シスパートナーNさん）
・テンション上がる！！（情シス正社員Uさん）

<b>Q：何か追加してほしい仕様ありますか？</b>
・退勤のイラストは別のキャラクターとかの方が分かりやすいですね。
　ウララちゃんとかいいと思います。（情シスパートナーTさん）
・ララちゃんのメッセージ変えれますか？（情シスパートナーYさん）
・「ちこく」も入れてください！
　交通機関が遅延してしまった時にLINEから連絡できたらとても便利です。
　電車の中で電話はしづらいですし、
　<b>特に社用スマホを持っていない人の連絡手段としてうれしいです。</b>（情シスパートナーTさん）

<b>…改善要望がほぼインターフェースの詳細仕様です。
まぁ、既存業務は完全に踏襲できてしまっているので仕方ない気もします。</b>
***
### 人事の人に使えそうかどうかコメント貰ってみた。
<b>Q：みた感じどーですか？</b>
（人事部正社員Tさん）：すごい！かわいい！

<b>Q：何かこうしてほしいとかありますか？使えそうですか？</b>
（人事部正社員Tさん）：フリーメッセージとか投稿できますか？
　　　　　　　　　　　 <b>遅刻とか突発休みなどにも使えると嬉しいです。</b>
（人事部正社員Tさん）：ITはメールでやってるんですね、部門によってはGoogleChatで
　　　　　　　　　　　 やり取りしている人もいるので、<b>Google Chatにメッセージ送れないですか？</b>

<b>…視点が違うな人事。~~というかもうこれが最終開発でいいんじゃないだろうか…~~</b>
　　　　　　　　　　　
## 今回の総括：全体的な削減効果が絶対の指標であるということ。
### 1．全員が毎日やっていることにメスを入れると効果が高い。
こういった<b>全員が何気なく毎日やっている作業を効率化できると、全社的な削減効果は高くなります。</b>
1人がやっている6時間かかる作業を頑張って改善しても、6時間の効果しか生まれません。
全員が毎日やっている、10秒の作業を9秒にするだけで、全体で約7時間の効果が生まれます。
こういった<b>小さな改善を超スピードで回す</b>ことがプロトタイプ開発の真価じゃないかなぁと思います。

ただ、デリバリーと運用の部分に工数がかかってしまうと本末転倒なので、基本手が掛からないように運用まわりの仕様を検討しなければなりません。

### 2．使ってもらうためには品質や見た目も重要。
システム化で実現できることって、必ずも業務の効率化だけではないと思っています。
品質向上や満足度向上といった、<b>付加価値</b>もシステム化の大切な役割だと思いました。
今回のLINEで実装したように、リプライをしてくれる何者かがいると、在宅勤務も少し楽しくなるようです。
弊社はアミューズメントの会社なので、いかなる時もこういった<b>あそびごごろは持ち続けてもらいたい</b>ですね。

### 3．運用面を考えるとまだまだ未完成。
今回は実装上の課題もいろいろあったので、盛りだくさんです。

<b>・コード/モジュールの最適化（難易度：★★★☆☆）</b>
現在の仕様では、Link の条件で、利用IDごとにルートを分けている為、利用者ごとにルートを作る必要があります。
この仕様だと大規模ユーザーの利用には耐えられないので、ユーザー情報（LINE  ID/氏名/送付先メールアドレス）をリスト化し、リストにユーザー登録する仕組みと、Webhookから受信したLINEIDからリストの情報を参照して、氏名とメールアドレスを引っ張ってくる仕様にしたいです。

<b>・~~見た目をもっとかわいくする（難易度：★☆☆☆☆）~~ →達成！</b>
退勤は別のキャラクターにした方がいいのでは？との声がありました。
→ その後の改修でララちゃんのライバル？キャラのウララちゃんを退勤のイラストにしました。
　 ※資料中の動画や画像は改修後のものを利用しています。

<b>・メニュー増やす（難易度：★★★☆☆）</b>
個人LINEから動かすことができるので、突発休みや遅刻などもこれから連絡できるようにしたいです。
メッセージはそのまま取得できるので、条件さえ指定できればそう難しくは無さそうです。

<b>・出力インターフェース変更（難易度：★★★★☆）</b>
おそらくGASでGoogleChatも繋げられると思われるので、接続してメッセージ飛ばせるようにしたいです。
上記のユーザー登録の仕組みで送信先を設定できるといいですね。

<b>・人事を説得して標準ルール化させる（難易度：★★★★☆）</b>
対応工数/ログ取得と現状よりかなり業務改善がされると思うので、<b>人事を説得して標準化したいと思います。</b>
ただ、個人のLINEを使うことが前提なので、ある程度の抵抗はありそうです。

<b>・経理を説得して会社カード発行してもらう（難易度：★★★★★）</b>
このシステムの最大の問題点として、<b>GCPの利用にクレジットカード登録が必須</b>になります。（現在は試用期間）
今は個人のカードを使っているので、これを会社カードで登録したいです…！

<b>やっぱり一番の障壁は社内調整だなー。</b>