公開情報を使って社内のプチめんどくさいことを解決しよう
いや〜社内のちょっとめんどくさいことってありますよね。
小さいことなのだけど、申請をしたりで数分時間がかかるな〜みたいな。
もちろん、制度設計をする中でベストを考えてくれている人には大感謝という前提ありつつ、エンジニアだったらもっと便利にするぞ!というのがこの記事で扱う話です。
何やった
今回の記事では、社内の出張手当で◯◯km以上だと申請をというのが扱う話です。
以前は以下のサイトにアクセスして、出張先の住所をいれて距離をだして、申請時に結果URLを貼るというようなものでした。
https://www.kyori.jp/
結果として、slack botでスラッシュコマンドで /直線 住所
とすると出張かわかり、どのくらい離れているかがわかるようになりました。(例は国会議事堂)
かつ、画像は切れて見れていないですが、URLを発行し画像のようなページが表示されます。
お客様先に行く際には、コマンドで出張判定がされて、出張であれば発行されたURLを貼るだけというシンプルなフローに変わりました。
これは人事ともフローを固めて、これならOKということで正式採用もらいました。
どうやった
社内でn8nというサービスをcloudrun上で立てて運用しています。(といっても、ほぼ個人利用レベルなのですが)
実装など詳しくはこの記事で
その中で以下のようなワークフローを組んでいます。
webhookでslackのリクエストを受け付け、情報を集めたうえでレスポンスをするというものです。
発行するURLについては、slackのリクエスト時のtrigger idを利用してユニークなidとして利用して、情報・idをNotionに保存 -> URLのクエリパラメータでNotionの情報へアクセスしwebページとして第三者が見えるようにしてます。(細かいので以下で解説深くしないです)
どう距離を測ったか
step1: 住所から緯度経度を取得する
以下のURLにあるとおり、無料でAPI公開してくださっている方がいます。ありがたや
クエリに住所をいれると、XML形式で返却されます。
step2: 緯度経度をオフィスの地点を結んで距離をだす
実は国土地理院がAPIを出してくれています。
zennの記事でも使用例については記載あるので、ぜひそちらを!
+α: webページをつくる
今はとっても便利でv0.devに命令したら大抵のシンプルなページは秒で作ってくれますね!
この程度でよさそうというのが見つかれば、それを叩きにいじればよしです。
ちなみに、緯度経度で地図表示として、以下のように緯度経度をクエリに埋めてiframeに突っ込めばgoogle mapは提供されます。
https://maps.google.com/maps?output=embed&q=35.671782,139.741836&ll=35.671782,139.741836&t=m&hl=ja&z=18
どう動いた
プロトタイプを作った後に、人事の方に「作ったんですけど、どうでしょ?」という話をもっていき、「え。めっちゃいいじゃん!」という感触をもらいました。
(よく何か作っての会話はしている仲というのもあり)
ただし、制度上確認プロセスとして
- 第三者が確認できるようにしてほしい
- slackのbotの反応でより判定がわかりやすいようにしてほしい
というようなFBをもらいました。
それに対して
- URLを発行してページを提供する
- よりわかりやすいslackの反応にする
- +αでhelpコマンドを作成
というようなことをしました。
それをすることで制度としても記載をいただき、ちょこちょこ社内で使ってもらっている状態です。
モチベ話
普段、プロダクトを作っている中で、それ以外の仕事をするの。。みたいな話もあると思いますが、会社の中でちょびっと気になることに個人でやってみることでの発見はすごく多いです。
例えば今回だと
- 制度設計
- 何を人事として気にしたいのか
- どういう作りだと喜ばれるのか
- 情報を無料で取得するためのソースはあるか
というようなものがあります。
これって、普段のプロダクト開発だけの視点だと意外と得られないのではないかなと思っています。
小さいことではあるかもしれないけど、小さい変化を社内・コミュニティで作っていけると自分にとっても良い環境を作っていけることに繋がります。
まとめ
今回は公開情報であるAPIを利用して、社内の制度を決めている人との対話も含めて記事として書いてみました。
具体的な技術の話はさっぱりめですが、読んでくれた方が2025年に何かアクションしてみようにつながるといいなと思っています!
Discussion