GAS&LINEシフト管理システム:効率的なスタッフスケジュール作成と管理

GAS&LINEでシフト管理

小規模店舗でよくある案件です。
「シフト管理が大変・・💦💦」

・準備するものスプレッドシート
 #LINEを利用しない場合はこれだけでOK

管理者はこのシート(WeeklySchedule)にシフト予定を入力するだけ。#まぁーこれが大変なんだろうけど・・💦

すると日付毎のシートがWeeklyScheduleに従って自動で生成されます。
生成された後、以下のようなpdfが勤務時間前に管理者にメールされます。


基本的にその日のスケジュールは触らなくても自動生成してくれます。
#でも、これじゃー対して作業効率出来てるか?ってことで・・・。

最初に触れたWeeklyScheduleをスタッフに公開?して各自に・・・
ですが、管理者が調整をしたい。ということでWeeklyScheduleをLINEから登録してもらうことにしました。

「GAS LINE 連携」とかでググッてもらえれば記事はたくさんあるのでこれらを参考に。

LINE Developersの利用

①LINEアカウントにログイン
②開発者情報の登録
③プロバイダーを作成
④チャネルの作成
⑤チャネル管理画面の「MessageAPI設定」
⑥チャネルアクセストークンを発行

Webhook用Scriptの作成

ここではLINEから受信したメッセージに従い、WeeklyScheduleに書込みを行うscriptを作成します。
LINEメッセージでは上記で作成したチャネルに参加したユーザー(スタッフかな?)がシフト予定を入力できるフォーマットを決めます。

・スタッフ名
・日付(YYYY/MM/DD)
・出勤時間(HH:mm)
・退勤時間(HH:mm)

上記フォーマットに従ってLINEにメッセージ送信すると、WeeklyScheduleの該当スタッフの日付・出勤・退勤時間に書込みが行われます。書き込まれたシフト希望に従って後で管理者が調整することを前程としています。
フォーマットに従っていないメッセージは「フォーマット違うよ」と返信します。
※もちろん、スタッフ名・日付・出勤/退勤時間のどこが違うのか?を添えて返信します。

Configシートの役割

シートにはconfigシートを用意しています。

このシートはスタッフ名・メールアドレス・時間設定A・シフト受付日があり(上記表では他にも色々ありますが・・)以下のような設定情報になっています。

スタッフ名:現在、存在するスタッフ名。新しく入店するスタッフ、辞めたスタッフを管理します。
 辞めたスタッフが歯抜けになっても日々スタッフ名と番号を保持しているので辞めたスタッフ番号のところに
 新しいスタッフを追加してもDAYScheduleにオーバーライトするようにしています。
 ※但し、番号・スタッフ名が全く同じ(辞めた人と入店する人)場合は「異なる人」とは認識しません・・・

メールアドレス:PDF送信されるメールアドレスです。ML等の場合は複数人に送信されます。

時間設定A:WeeklyScheduleの時間に表示される時間です。(リスト形式でconfigから取得しています)

シフト受付日:LINEで送信されるメッセージ日付の期限です。受付日が5の場合、本日から5日以降のシフト予定から受付可能とします。

~続きはまた・・・~