素人が翌日の勤務(シフト)を告げるLINEbotを作った話【3】


大まかな仕様

仕様

 上記の通り、スプレッドシートに勤務のデータを入れておき、それをもとにプログラムが動く仕組みになっています。データさえ入っていれば自動で動くようになっていますが、このデータを入力する作業だけは毎月手動で行わなければいけません。 

 筆者の所属する会社では、シフト表をExcelで作成しています。Excelからスプレッドシートへはコピー&ペーストできるので、手間はほとんどかかりません。別のソフトで作成している場合は少し面倒ですが、csv出力機能などがあるとやはりコピペできて便利ですね。いっそのことスプレッドシート上で作るのも良いかもしれません。

 実行する時間は、前日の19~20時ごろが一番邪魔に感じない時間帯と考え、そのように設定しています(トリガーの設定は後述)

 それと地味に重要なのが、「休みの日の分は送信しない」ということです。例えば土日休みのお仕事の場合、送信するのは日~木曜日で、翌日が休みの金・土曜日は送信する必要がありません。むしろ不要なメッセージはウザいだけで受け入れられないと思いますので、この点はしっかり考慮しなければいけません。

シートの準備

 コードを書いていく前に、データベースとなるスプレッドシート側の準備をします。

①シートの作成

当面3つのシートが必要になりますので、以下の名前でシートを作成してください

「勤務表」「ログ」「ユーザー」

②勤務表シート

勤務表の書式はこのようになっています。

行Aの2列目から下に向かって社員の名前(今回は仮名)を書いていきます。理屈の上では100人でも1000人でも大丈夫です(LINEのメッセージが尋常じゃない長さになりますが)

1行目、B列から右に向かって日付を入力します。日付は必ず「MM/dd」形式になるようにしてください(B1の10/01のように)。

無題

 あとは勤務を記入していきます。今回は例として早番、日勤、遅番、夜勤、夜勤明け、公休、有休の勤務帯があると仮定して、それぞれ最初の1文字をとって記入しています。これがいちばん見やすいと思いますが、それぞれの会社の実態に合わせてここの文字は変えてもらってOKです。ただし、のちほどコードを書くときに面倒なので、簡潔な方が良いことは確かです。

③ユーザーシート

 ユーザーシートは、公式アカウントに登録した人のデータが載るシートです。以下のように書いておき、あとでコードを記述することで自動的にユーザーの情報が追加されていきます。

 ユーザーシートに登録しておくと、誰が情報を見ているのか把握できるという点と、いずれユーザー一人ひとりに合わせた情報を発信するようなときに必要となるデータとなります。

無題

④ログシート

ログシートは、文字通り、ログを残すシートです。

 すぐには使わないのですが、いずれユーザーの入力内容に反応する機能を搭載する予定です。そのときに、どのユーザーがどのような内容を入力しているかモニターすることでユーザビリティを計るツールとして使うことができます。(一部の人しか使ってなかったり、入力内容がこちらの意図したものと違ったりするケース場合に、改修するかなど検討する根拠になる)

無題

スプレッドシート側の設定がこれで終わりました。

次回からコードを記述していきます。

この記事が気に入ったらサポートをしてみませんか?