Slide 1

Slide 1 text

KoT APIでプチ社内業務改善を 試してみた 2024/11/05 開発部 池田尚仁

Slide 2

Slide 2 text

最近PM業が主になってきていて、 ほとんど実装もしていないのでネタがないということもあるし、 たまには作ってみた系のLTをやりたい! たまには作ってみた系のLTをやりたい KoT API でプチ社内業務改善

Slide 3

Slide 3 text

そんな時に発見したスレッド 勤怠の入力漏れを手動でリマインドしていたので、自動化したいよねというスレッド。 KoT API でプチ社内業務改善

Slide 4

Slide 4 text

LTついでに自動化したい BEFORE:勤怠の入力漏れを手動でリマインドしている AFTER:何かしらの方法でリマインド不要な状態を作る KoT API でプチ社内業務改善

Slide 5

Slide 5 text

現在のリマインドフローは? 1. KING OF TIME からのエラー通知をメールで受け取っている a. (が、Slackがメインの連絡ツールのため確認漏れが発生している) 2. 管理画面から入力漏れが発生している人を確認し、Asanaにチケット作成して担当者アサイン 3. 月末にも処理が完了していなければ、Slackでもリマインド ← 先ほどのスレッドはこれ KoT API でプチ社内業務改善

Slide 6

Slide 6 text

とりあえずリマインドの自動化を試してみる 自動化にはKoT API(KING OF TIME WebAPI)が使えそう。 勤怠データの作成とか書き換えとかはカジュアルにできなさそうなので、 GETの権限だけで実現できそうな方法を検討しました。 KoT API でプチ社内業務改善

Slide 7

Slide 7 text

雑に考えてみた実装方針 1. GASで定期実行するスクリプトを作る 2. 昨日分の打刻データを取得してくる(KoT API) 3. 出勤 & 退勤 が揃っていない人を抽出する 4. Asanaチケットを作成して 3 で抽出した人にアサイン(Asana API) KoT API でプチ社内業務改善

Slide 8

Slide 8 text

問題1:API側に許可するIPアドレスの登録が必要 KoT側の仕様として、 APIの利用を許可する IPアドレスを必須入力する必要があった。 GASは実行するたびに実行環境の IPアドレスが変わるので現実的ではない。 KoT API でプチ社内業務改善

Slide 9

Slide 9 text

問題2:Asana & KoTのユーザーID同士をマッピングしないといけない 社員の入れ替わりがないのであれば最初だけ頑張ってマッピング表を作ればいいが、 社員の入れ替わりの度にマッピング表の更新をするのは、漏れが発生しうるので現実的ではない。 「KoTとAsanaの登録名のフォーマットを揃える」などの解決方法はあるかもしれないが、 達成したいことに対してやらないといけないことがやや過剰。 KoT API でプチ社内業務改善

Slide 10

Slide 10 text

そもそも今回解決したい問題は? 「勤怠が漏れていた時のリマインドを自動化できてないこと」 ではなく 「毎日の勤怠が正確に残っていないこと」 KoT API でプチ社内業務改善

Slide 11

Slide 11 text

解決の方向性は大きく分けると2つ 1. 打刻を忘れにくい仕組みを作る 2. 打刻を忘れてしまった場合に、締め日までに打刻してくれる仕組みを作る KoT API でプチ社内業務改善

Slide 12

Slide 12 text

解決の方向性は大きく分けると2つ 1. 打刻を忘れにくい仕組みを作る 2. 打刻を忘れてしまった場合に、締め日までに打刻してくれる仕組みを作る KoT API でプチ社内業務改善

Slide 13

Slide 13 text

解決方針1:打刻を忘れにくい仕組みを作る KoT API でプチ社内業務改善 - Slackのカスタムコマンド・特定のスタンプをトリガーに打刻をできるようにする - PCの稼働履歴から自動で打刻できるようにする などが考えられる。 が、今回はAPI経由で打刻データを作成したくないのでやらない。

Slide 14

Slide 14 text

解決の方向性は大きく分けると2つ 1. 打刻を忘れにくい仕組みを作る 2. 打刻を忘れてしまった場合に、締め日までに打刻してくれる仕組みを作る KoT API でプチ社内業務改善

Slide 15

Slide 15 text

解決方針2:当月に打刻漏れがあったらKOT上に表示する KoT API でプチ社内業務改善 A. 自動でリマインド a. 最初に考えていたような GASの定期実行だと問題があった b. IPアドレスは何とかできるにしても、 IDのマッピング問題は社内のオペレーションを変えないといけないのでやめる B. 当月に打刻漏れがあったら KOT上に表示する a. 流石に一ヶ月に一回も会社で KOTを開かない人いないだろう、という前提 b. Chrome拡張みたいなもので提供する Bはできそう。

Slide 16

Slide 16 text

実装イメージ KoT API でプチ社内業務改善 1. 打刻画面から名前を取得する 2. 従業員一覧APIでデータ取得、名前の一致からログインユーザーの employeeKey (≒ユーザーID)を取得 3. 日別打刻一覧APIで employeeKeyとstartの絞り込みをする 4. その月で、出勤退勤が揃っていない日があれば画面に表示する

Slide 17

Slide 17 text

Pros - オフィスのIPアドレスだけ許可すれば、会社 & PCで打刻する際に打刻漏れに気がつける - データのGET権限だけでOK Cons - Chrome拡張のインストールがめんどい - スマホから打刻する際は気が付けない - フルリモートに人は自宅の IPアドレスを管理者側で許可しないといけない Pros & Cons KoT API でプチ社内業務改善

Slide 18

Slide 18 text

KOTの打刻画面からは api.kingtime.jp へのリクエストが許可されていないので諦めた。 self と *.salesforceliveagent.com のみ許可されている模様。 試してみた KoT API でプチ社内業務改善

Slide 19

Slide 19 text

「GmailとSlackを連携させる方法 |メールの転送や通知が可能に!」 https://yaritori.jp/mail-knowledge/5404/ > 「②特定の条件に合うメールを自動で Slackに転送する方法」 ↓ これでいいんじゃないか? KoTから各メンバー宛にメールは届いているし、 Slackならみんな毎日見るだろう。 作らずに解決できないか?いや…できる! KoT API でプチ社内業務改善

Slide 20

Slide 20 text

転送できた! KoT API でプチ社内業務改善

Slide 21

Slide 21 text

設定フローがやや面倒なのと、 送り主のメールアドレスとタイトルの文言一致で絞り込んでいるため、 KOT側がタイトルを変えたら全員設定変えないといけないなどの事情があり、 全員に導入するのはちょっとつらいかもしれない ...。 全社員に設定してもらうには少し面倒かも? KoT API でプチ社内業務改善

Slide 22

Slide 22 text

別案 SlackのAPIを使って 以下のようにすれば、メール →Slackの転送よりは少ないコストで導入可能そう。 1. KoTで打刻をしたらSlackに自動でスタンプなどのリアクションをする a. (以下の記事のように Chrome拡張をインストールしてもらう必要はあり) 2. Slackのリアクションを自動で集計 期日内に試すことができなかったため、 こちらも後日試してみたいと思います! KoT API でプチ社内業務改善

Slide 23

Slide 23 text

参考 「KING OF TIMEで打刻をしたらSlackで自動的にリアクションをする Chrome拡張を作ってみた」 https://dev.classmethod.jp/articles/chrome-extension-for-kot-and-slack/ 「GmailとSlackを連携させる方法 |メールの転送や通知が可能に!」 https://yaritori.jp/mail-knowledge/5404/ KING OF TIME Web API https://developer.kingoftime.jp/ KING OF TIME | API連携サービス以外に、直接 WebAPIを利用する方法 https://support.ta.kingoftime.jp/hc/ja/articles/360038857633-API連携サービス以外に -直接WebAPIを利用する方法 KoT API でプチ社内業務改善