GASの活用事例@コーポレートエンジニア（こぽエン）

この記事は<a herf="https://qiita.com/advent-calendar/2023/timetree">株式会社TimeTree Advent Calendar 2023の19日目</a>の記事です。

https://qiita.com/advent-calendar/2023/timetree

おはこぽー。コーポレートエンジニア（こぽエン）のKoalaです。
こぽエンとして外せないのはGAS😶‍🌫️ですよね！！
ということでリアルな**GASの活用事例**をご紹介します。
これからガスガスするぞーという方のネタの参考になりますように🐨


## 出社状況の可視化
へーしゃは現在リモート中心ですが、社内外の環境変化に伴い出社人数も変わっています。
[こちらの記事](https://zenn.dev/timetree/articles/0108afbcc013d6)の通り勤怠の打刻をKING OF TIME(KOT)と連携させたSlackで行っています。そこで、GASでそのチャンネルのメッセージを取得して出社人数を出しています。

<img width="45%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/920a0fe8-4fb3-8a0d-8613-4506abaf7fa1.png">　　<img width="45%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/6ccc1071-9ad0-6167-3a95-e9bce4dc5912.png">

:::note info
#### 作ってみて
何となく出社人数は増えていると感じていましたが、着実に増え続けていることが明確になりました。また、曜日による傾向も見えています。イベントは何曜日が良さそうか、全社定例時の社内NWは大丈夫そうか、座席や会議室に過不足はないかなど、今後も色々なことを考える土台にできそうです。

ちなみに気象庁の[気象データ](https://www.data.jma.go.jp/gmd/risk/obsdl/index.php)を用いて突合したところ、金曜日は雨だと明確に出社率が下がることもわかりました。まあ、私は雨だったらいつでも―――(笑)。
:::



## 交通費計算チェック支援
類似にはなりますが、労務用に誰がいつ出社したか、ボタン一つでパピっとスプシに出力するGASを作成しました。上述もそうなのですが、KOTを使われている方はAPIが使えます。へーしゃはKOTとSlackを連携させているオリジナルのmonicaというシステムがあり、ここではmonicaのAPIから取得しています。これによってKOTで設定できるAPIのIP制限を一元化させています。

![交通費チェック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/ee4933c9-01d3-d88e-fce0-753d8ff9f03f.png)




:::note info
#### 作ってみて
これまで労務は出社状況をSlackのチャンネルから遡り、手動でスプシに転記しながら交通費のチェックを行っていました。そこまでやるのは「出社したのに交通費が支払われていない」事態を**絶対に防ぐ**という強い意思があるからだと思っています。同時に、KOTの管理画面では月間データを一人ずつしか出力できないという事情もありました。

[交通費申請の自動化](https://zenn.dev/timetree/articles/0108afbcc013d6#%E4%BA%A4%E9%80%9A%E8%B2%BB%E7%94%B3%E8%AB%8B%E3%81%AE%E8%87%AA%E5%8B%95%E5%8C%96)の通り、出社記録をmonicaから従業員一人一人にDMで通知しています。今回作成したものは「同じデータを管理者側も一覧で見れるようにした」ということになります。最終的には本人がよく確認する必要はありますが、従業員も労務も双方で確認が楽になった状況です。

これは単なる工数削減や精度向上のみならず、すべての従業員と労務にとって、毎月期日に追われてしまう心の負担を多少なりとも減らせているのだ、と思っています。

ちなみにボタンの見た目が懐かしいのは私が元々Excelマクロが好きだった名残りです(笑)
:::




## 会議室利用状況の通知
へーしゃはGoogleカレンダーで会議室の予約をしていますが、一つ一つの会議室にチェックを入れて今の空き状況を確認するのは少々手間でわかりにくいです。そのため、一目で今の状況がわかるものをSlackに通知させてみました。
こちらは特定のチャンネルにて5分間隔で更新しています。現在の時刻に該当する予定は★マークをつけた上で太字にしています。★がついていなければ空いていることになります。

<img width=22.5%><img width="45%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/9d5561ba-b861-9f03-cb44-4db4a0b45ca2.png">

:::note info
#### 作ってみて
会議室を見やすく色分けするために[attachments](https://developers.google.com/apps-script/reference/calendar/visibility?hl=ja)を用いましたが、ブロックごとに5行目から表示が隠されてしまうことに気が付きました（状況は@takarakeさまの[こちらの記事](https://qiita.com/takarake/items/7ea4e6ec0dd3714070bb)が参考になります）。そこで、予定終了時刻から1時間を超えたものは表示から消すようにしました。また、非公開予定のタイトルがそのまま表示されないように[visibility](https://developers.google.com/apps-script/reference/calendar/visibility?hl=ja")を使ってタイトルを変換しています。

予約をしたのに使われてしまっていたとしてもなかなか声を掛けにくいと思いますし、そういうシーンを見るのも心が痛みます。そのため、少しでも予約がしやすくなって欲しい、リモートの人でも参加者の出社に気がついたら予約をする暖かさがあって欲しい、そんな気持ちを込めています。
:::


## 会議時間の可視化
へーしゃでも打合せの量が多くて大変だという声を耳にし始めた頃、10Xさまの会議室ビッグバンという記事がアップされていて、社内でも話題になっています。とても面白いのでまだ見ていない方は是非読んでみてくださいね。

https://product.10x.co.jp/entry/2023/10/26/193622

あまりにタイミングが良かったため、早速GASを用いてデータを取ってみました。
条件としては下記となります。
【除いたデータ】
・不在
・サイレントモード
・非公開
・参加者が一人の予定

![予定状況.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/e4528dba-77c3-8004-4070-6cfb128b72b5.png)



:::note info
#### 作ってみて
左の2023年の方が明らかに予定時間が増えています。具体的には週に1.5hくらいです。2021年のデータも取っていて、特定の月が多いという傾向も見え始めています。しかし、これは実際に会議に参加した時間ではなく複数人で予定を入れていた時間のため、あくまで参考値ではあります。

これらが何を表すのか、今後どうするのかはまだまだこれからです。いずれにしてもまずは可視化して状況を正しく知ることが第一歩だと思いますし、ここにGASの醍醐味もあると思っています😼
:::




## Paild利用の自動通知
へーしゃは3万円未満の経費利用なら事後報告で大丈夫です。

https://timetreeapp.com/intl/ja/newsroom/2021-08-17/radio-17

また、希望すれば誰でもクラウド型法人カードの<a herf="https://www.paild.io/">Paild</a>が利用できます。従業員が購入したものはSlackに全て報告することになっていますが、今回はPaildの利用を自動通知させるようにしました。仕組みは簡単で、Paildの管理者に飛ぶメール通知を管理用のアドレスに転送し、そこで受け取った内容をSlackにPostしているだけです。

![paild.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634393/90b79a8f-81ae-47f5-fc3a-2b2d10e84ea7.png)

但し、いくつか課題もあります。
まず転送する理由は、Paildからのメールの通知先が選べないためです。管理者権限をもつアカウントにメールが飛ぶ仕様のため、メーリングリストが使えません。かといって経理の方のアカウントでGASを作るわけにはいかないのでワンクッション置いています。
また、「特定のメールを受け取った時」というトリガーがGASになさそうなため（あったら教えてくださいm(__)m）、下記の条件で作っています。

・トリガーは1分毎
・最新の10件をチェック
・特定の件名
・未読

:::note info
#### 作ってみて
メールにはPaildに設定されている名前（へーしゃはニックネーム）が含まれているため、そのままメンションに使えることがポイントです💡作成が簡単にも関わらず、経理の方から「今までで1番効果がある」と言ってもらえました😎

【効果が出た課題】
・自分のお金じゃない(立替の必要がない)ためか報告や証憑漏れが多かった
・漏れに対してまず報告があったかSlackを遡ることが手間だった
・誤った私的利用に気づいてキャンセルしやすくなった(社内の返金処理を防げる)
・セキュリティ上の不正利用に気づき易くなった
:::

【補足】
通常、経費はシステムで管理することが多いと思いますが、Slackで報告を済ませられることは従業員の負担をかなり軽減できていると思っています。しかしそれは、経理の方の頑張りで支えていることに他なりません。今回、少ない労力で大きな効果を発揮できたことは個人的にも嬉しい限りですし、これぞGASの真骨頂と言えると思います。


## さいごに
今回記載したことはまだまだ進化できそうですし、GASに限らず自動化にはどんどんチャレンジしたいと思っています。そして、ただシステムを作るのではなく**あったけぇ**を広げて行きたいと思っています。

【あったけぇの由来と今後】
「やさしい」という意味に近いスタンプが押されたメッセージはリアク字を使って特定のチャンネルに集めるようにしました。中でも私は「あったけぇ」というスタンプが好きで、あったけぇこぽエンを目指そうと決めています。社内の皆さんから小さなことでも"煩わしい"を取り除きながら、誰もが今以上のパフォーマンスを発揮しやすい環境を提供していきたいと思っています。

TimeTreeが少しでも気になった方は下記もご覧くださいませ。
それでは、おつこぽー。

## TimeTreeの採用情報
TimeTreeのミッションに向かって一緒に挑戦してくれる仲間を探しています。TimeTreeで働くことに興味がある方はぜひ、Company Deck（会社紹介資料）や採用ページをご覧ください！

[Company Deck（会社紹介資料）](https://docs.google.com/presentation/d/e/2PACX-1vQ2kFTDgn_hu0jFBuMw8qjIyiMFImX-c38lDyaDhPwXQwCCnGvBQIemMmb_FgF7Gl7Ga3MFEJBwES-1/pub)
[TimeTree採用ページ](https://timetreeapp.com/intl/ja/corporate/careers)