素人が翌日の勤務(シフト)を告げるLINEbotを作った話【11】
今回は、シフト変更への対応について書きます。
シフト変更機能の仕様を考える
仕事をしていて、勤務が変更になることって割とよくありますよね。体調不良で休んだり、休んだ人の穴埋めでシフトが変わったり、単純に予定が変わって変更になったり・・・。
今のところ、このシステムではスプレッドシートにシフト表があり、それを編集することでしかシフト表の変更ができません。毎日流れるシフト通知はスプレッドシートを参照するので、きちんと変更されなければ誤った情報が流れることになります。流れる情報が不正確なら、誰もそんなツールは使いたくないですよね。
勤務に関する情報が管理者(スプレッドシートにアクセスできる人)に一元的に集まり、そしてその管理者がリアルタイムに更新できるなら大した問題じゃないです。でも実際には管理者は本来業務の傍らでこうした編集作業をやるわけで、管理者自身も休んだり、時間の都合がつかないこともあるわけです。そう考えると、特定の人がシートを操作しての変更作業をするのは、このシステムにふさわしくないような気がします。
ここはやはり、ユーザーそれぞれにシートを編集してもらいましょう。編集してもらうといっても、シートを直接編集するわけではありません。シートにはたくさんのデータが集まっていますから、不特定多数の人が触るのはできるだけ避けたいのです。スプレッドシートを使わずにシートの内容を一部編集する。そんな機能を作りましょう。
それともう一つ。勤務が変わるときにあると地味に役立つのが、通知機能です。今回は勤務変更の手続きを行なうと、自動的に全員に変更内容の通知メッセージが回る仕組みにしました。私の会社では急な勤務変更があると関係部署に申し送る風習があるのですが、この面倒くさい悪習を断つための試みとして導入してみました。
また、通知することの隠れた目的としては、この勤務変更機能を悪意をもって使用する事を抑止する意図があります。この仕組みは良くも悪くもシートの編集を(一部ではありますが)ユーザーに委ねるのです。社内の仕組みに悪意を前提とした機能を搭載するのもどうなのかと思いますが、データを扱う以上は慎重を期したいところです。
以上の点を踏まえ、
ざっくりこんな仕様にしたいと思います。
どうやって編集するか
結論から言うと、「Googleフォーム」を使います。
①,②にある通りユーザー自身に編集してもらう機能ということで、単純で入力しやすい、インターフェースとして優れている、というのが1つ目の理由です。また当然ですがGASとの相性も良く、簡単にコードを書くことができます。
フォームには、設問を4つだけ用意します。必要最低限です
名前を入力する設問が2箇所あります。社内には、LINEの公式アカウントをフォローしている人もいれば、していない人、できない人がいることが想定されます。この機能を便利だと思ってフォローしている人、必要とせずフォローしない人、知っているけどなんとなく使いたくない人、そもそもこの機能についてまだ聞いていない人など、色々いると思います。問題は、フォローしていない人のシフト情報をどうするかということです。
上でも述べたように管理者が編集できるならそれでOKですが、私はやはり全員の勤務状況を把握するのが大変なので、ユーザーそれぞれに委ねることにしました。ユーザーの方々には、便利に使うためにはいかに自分たちで正確な情報を載せるかなので、自分に限らず使ってない人の勤務変更も気づく範囲でやってください、とお願いしました。
で結果どうだったかというと、最初から多くの社員がフォローしてくれたということもあって、概ね正確な情報が流れている印象です。ときどき漏れもありますが、それでトラブルがおきることもありません。
この仕組みはサービスでも無ければ業務でもない。要するに社員が自分たちの業務を少し楽にしたりわかりやすくするためのもの。自治の精神です。管理者はこの自治の精神だけは風化させないように説いて回った方が良いでしょう。
次回はフォーム作り
次回は、フォームの内容について書きます。設問の内容をスプレッドシートから自動的に取得し、管理者が度々書き換えなくても良い仕組にします。