飲食店のアルバイトから届くシフト交代の依頼を、日時・時間帯・理由をそろえた交代依頼の表にし、代わりに入れる人への連絡文を下書きする
アルバイトが書いたシフト交代の依頼の文面から、日付・時間帯・持ち場・理由を抜き出して交代依頼の表に1行ずつそろえます。シフト表から入れそうな候補を絞り、その人たちに送る連絡文を下書きして店長に渡します。
- 生成AI
- ChatGPT/Claude
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 宿泊/小売/飲食
- 対象部門
- 人事
- 対象業務
- データ入力・転記/書類作成
- 主な課題
- 人手が足りない/入力作業が多い/期限・対応漏れが起きる
- AIで行う処理
- 抽出
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- アルバイトが店長の個人宛てのチャットで交代を頼む
- 店長が文面を読み、日付と時間帯と持ち場を確かめる。分からなければ聞き返す
- シフト表を開き、その日にまだ入っていない人を探す
- その時間帯とその持ち場に入れる人を、記憶と出勤できる曜日の一覧から絞る
- 深夜にかかる時間帯なら、高校生を外す
- 候補に1人ずつチャットで声をかける
- 代わりが決まったらシフト表を書き換え、依頼した人に伝える
- 人アルバイトが、店舗のグループチャットに置いた交代依頼のフォームに書いて送る
- 自動送信をきっかけに Zap が動き、従業員の一覧から本人と店舗を引く
- 自動AI が文面から、日付・開始と終了の時刻・持ち場・理由の区分・本人が当てをつけた相手を抜き出す
- 自動日付と時刻を、送信日時を基準に確定した形に直す。直せないものは印を付ける
- 自動交代依頼の表に1行書き込む。表の関数が、規則に合う候補を絞る
- 自動候補の一覧を読み、候補へ送る連絡文の下書きを作る
- 自動店長にメールで知らせる。確かめが要るものは先頭に印を付ける
- 人店長が候補と下書きを確かめ、声をかける相手を選んで送る
- 人代わりが決まったら、店長が交代依頼の表とシフト表に記録する
各工程の詳しい説明を読む
- アルバイトが店長の個人宛てのチャットで交代を頼む
- 店長が文面を読み、日付と時間帯と持ち場を確かめる。分からなければ聞き返す
- シフト表を開き、その日にまだ入っていない人を探す
- その時間帯とその持ち場に入れる人を、記憶と出勤できる曜日の一覧から絞る
- 深夜にかかる時間帯なら、高校生を外す
- 候補に1人ずつチャットで声をかける
- 代わりが決まったらシフト表を書き換え、依頼した人に伝える
(a)営業中に読んで、営業中に探す。 2番から6番は、店長がピークの合間に行います。読んだまま忘れ、閉店後に気づく依頼が出ます。翌日のシフトなら、そこから探しても間に合いません。
(b)日付と時間帯の書き方がばらばら。 「明日」がいつ書かれたものか、「夕方」が何時からかは、チャットの送信日時とシフト表を見比べないと決まりません。 聞き返すうちに、半日が過ぎます。
(c)深夜の時間帯に高校生を誘ってしまう。 居酒屋の店舗では、遅番が午後11時まで続きます。急いで声をかけると、18歳未満のアルバイトに遅番の交代を頼んでしまうことがあります。断られて済めばよいのですが、本人が引き受けてしまうこともあります。
(d)記録が残らない。 交代はチャットの中で決まり、シフト表は書き換わっても誰が誰と代わったかの記録は残りません。 同じ人に交代が偏っていることに、月末まで誰も気づきません。
- 【人】 アルバイトが、店舗のグループチャットに置いた交代依頼のフォームに書いて送る
- 【自動】 送信をきっかけに Zap が動き、従業員の一覧から本人と店舗を引く
- 【自動】 AI が文面から、日付・開始と終了の時刻・持ち場・理由の区分・本人が当てをつけた相手を抜き出す
- 【自動】 日付と時刻を、送信日時を基準に確定した形に直す。直せないものは印を付ける
- 【自動】 交代依頼の表に1行書き込む。表の関数が、規則に合う候補を絞る
- 【自動】 候補の一覧を読み、候補へ送る連絡文の下書きを作る
- 【自動】 店長にメールで知らせる。確かめが要るものは先頭に印を付ける
- 【人】 店長が候補と下書きを確かめ、声をかける相手を選んで送る
- 【人】 代わりが決まったら、店長が交代依頼の表とシフト表に記録する
5番目が、この設計の分かれ目です。候補を絞るのは AI ではありません。 シフト表の関数が、同じ店舗・同じ持ち場・その日は未出勤・時間帯に出勤できる、の条件で絞り、深夜にかかる時間帯なら18歳未満を外します。 規則で決めることにしているのは、一度でも誤れば労働基準法に触れるからです。
8番目で店長が選ぶのも意図してのことです。 候補が5人出ても、そのうち誰に声をかけるかは、今月の入り方や本人の事情で変わります。
02今回想定するシステム構成
アルバイトが交代依頼のフォームに書いて送る(店舗・名前・依頼の文面) │ ▼【トリガー】Google Forms:New Form Response Zapier の Zap ├──▶ Google Sheets:Lookup Spreadsheet Row(従業員の一覧で本人を引く) ├──▶ AI by Zapier(Analyze and Return Data) │ 日付・時刻・持ち場・理由の区分・当てをつけた相手を抜き出す ├──▶ Formatter:日付と時刻を送信日時を基準に確定する ├──▶ Paths:確定できた/確かめが要る に分ける ├──▶ Google Sheets:交代依頼の表に1行追加(関数が候補を絞る) ├──▶ Google Sheets:Lookup Spreadsheet Row(候補の列を読む) ├──▶ AI by Zapier:候補へ送る連絡文の下書き └──▶ Gmail:店長へ知らせる ▼【人】店長が候補を選び、連絡文を送る → 決まったら記録
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Zapier(Google Forms、Google Sheets、Formatter、Paths、Gmail) | Make、Power Automate、n8n |
| 生成AI | AI by Zapier(Analyze and Return Data) | ChatGPT(OpenAI)、Claude |
| 保管 | Google スプレッドシート(従業員の一覧、シフト表、交代依頼の表) | Airtable |
| 通知 | Gmail(店長の店舗アドレス) | 店舗のグループチャット |
新しく足すのは、交代依頼のフォームと Zap と交代依頼の表です。 店舗ごとに Zap を分けず、1つの Zap で店舗の設問を見て分けます。 シフト表と従業員の一覧はいまのものを使います。シフト表そのものには、この構成から書き込みません。 交代が決まって書き換えるのは店長です。
トリガーは Google Forms の New Form Response です。 新しい回答を受け取ったときに動く即時のトリガーで、回答は Google スプレッドシートに保存されている必要があります。 フォームはグループチャットに URL を置き、アルバイトはスマートフォンから開きます。
AI の処理は AI by Zapier の Analyze and Return Data で行います。 返してほしい項目を、名前・型・説明・必須かどうかで定義すると、その形で値を返します。代替候補に Gemini を挙げていないのは、高校生のアルバイトが書いた文面を扱うためです。 Gemini API の規約は、18歳未満が使う、または使う見込みのあるサービスでの利用を認めていません。
03どうやって実装するのか
処理の起点を決める
フォームの回答が送信されたことを起点にします。 交代の依頼は翌日や当日のものが多く、1時間待つだけで、声をかけられる候補が減ります。 即時に動くトリガーを使うのはそのためです。
チャットのメッセージを直接拾う形にはしません。 店長の個人宛てのチャットには、交代の依頼のほかに、遅刻の連絡や私的なやり取りが混ざります。交代の依頼だけをフォームに分けることで、扱う文面の範囲がはっきりします。 フォームの設問は少なくします。
| 設問 | 形式 | 理由 |
|---|---|---|
| 店舗 | 選択式 | 従業員の一覧を引く鍵 |
| 名前 | 選択式(店舗ごとの一覧) | 表記ゆれを防ぐ |
| 依頼の内容 | 自由記述 | チャットに書くのと同じ書き方でよい |
日付と時間帯を選択式にしないのは、意図してのことです。 選択式にすると、アルバイトがチャットで頼むのをやめてくれません。いつもの書き方のまま送れることを優先し、読み取りを AI に任せます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| フォームの回答 | 店舗、名前、依頼の文面、送信日時 | Google フォーム |
| 従業員の一覧 | 従業員ID、店舗、持ち場(ホール・キッチン)、18歳未満かどうか、出勤できる曜日と時間帯 | 従業員の一覧(スプレッドシート) |
| シフト表 | 日付ごと・人ごとの出勤の時間帯と持ち場 | シフト表(スプレッドシート) |
| 店舗の営業時間 | 時間帯の名前(早番・中番・遅番)と、それぞれの開始と終了の時刻 | 店舗の一覧 |
質を決めるのは、従業員の一覧の「18歳未満かどうか」の列です。 生年月日から関数で出し、誕生日を迎えた日に自動で切り替わるようにします。手で付けると、外し忘れと付け忘れが残ります。
店舗の時間帯の名前も要ります。 「遅番」と書かれた依頼の時刻は、店舗の取り決めを見ないと決まりません。カフェの遅番と居酒屋の遅番は、終わる時刻が違います。
データの取得方法を決める
| 取るもの | どこから | どう引くか |
|---|---|---|
| 依頼した本人 | 従業員の一覧 | Lookup Spreadsheet Row で名前を検索し、補助の検索列に店舗を指定する |
| 時間帯の取り決め | 店舗の一覧 | Lookup Spreadsheet Row で店舗を検索する |
| 本人のその日のシフト | シフト表 | 交代依頼の表の関数で引く |
| 候補 | 交代依頼の表の候補の列 | 行を書き込んだ後に Lookup Spreadsheet Row で読む |
名前だけで引かないでください。 同じ名字のアルバイトは店舗をまたいでいます。補助の検索列と値を指定すると、両方に一致する行だけを探せます。
候補の絞り込みは、交代依頼の表の関数に置きます。 行を追加すると、その行の日付・時間帯・持ち場・店舗から、シフト表と従業員の一覧を引いて候補を並べる関数が動きます。Zap は、その結果の列を読むだけです。 規則がスプレッドシートの上に見えるので、店長も人事も同じ規則を確かめられます。
関数に持たせる条件は、次の5つです。
| 条件 | 見る列 | 外れる人 |
|---|---|---|
| 同じ店舗 | 従業員の一覧の店舗 | 他店舗の人(応援は店長が別に頼む) |
| 同じ持ち場ができる | 従業員の一覧の持ち場 | キッチンの枠に、ホールだけの人 |
| その日にまだ入っていない | シフト表のその日の列 | すでに出勤が決まっている人 |
| その時間帯に出勤できる | 出勤できる曜日と時間帯 | 平日の昼に入れない学生など |
| 深夜にかかるなら18歳以上 | 18歳未満の列と生年月日 | 18歳未満の人と、生年月日が空の人 |
5つ目の条件だけは、外す側に倒します。 生年月日が空なら18歳以上とみなさず、候補から外します。判定できないものを候補に残すと、規則で止めた意味がなくなります。
AIへ渡す前に整形する
- 送信日時を基準日にする … 「明日」「来週の土曜」を確定するために、フォームの送信日時を AI に渡します
- 店舗の時間帯の取り決めを添える … 「遅番」「ラスト」がその店舗で何時から何時かを渡します
- 本人のその日のシフトを添える … 文面に時刻が無くても、本人がその日に入っている時間帯が1つなら、それが交代したい枠です
- 文面を短くそろえる … 前後の空白と絵文字を落とします(Formatter)
- 重複の検知 … 同じ人・同じ日付の依頼が直近にあれば、二重送信として印を付けます
- 日付と時刻の形をそろえる … AI が返した日付と時刻を Formatter で
YYYY-MM-DDとHH:MMに直し、形が合わないものはunknownに落とします。表の関数は形がそろっていないと候補を絞れません
3番目が、聞き返しを減らします。 「明日入れなくなりました」とだけ書かれた依頼でも、シフト表で本人の明日の枠が1つに決まれば、日付と時間帯と持ち場がそろいます。 AI には「文面にない時刻を補ってよいのは、本人のシフトが1つに決まるときだけ」と指示します。
AIに処理させる
させるのは2つです。依頼の文面から項目を抜き出すことと、候補へ送る連絡文を下書きすることです。
| 抜き出す項目 | 値 | 決められないときの扱い |
|---|---|---|
| 日付 | 送信日時を基準に確定した日付 | 候補が2つ以上なら ambiguous |
| 時間帯 | 開始と終了の時刻。店舗の取り決めの名前でもよい | 本人のシフトで決まらなければ unknown |
| 持ち場 | ホール/キッチン/どちらでも | 書かれていなければ本人のシフトの持ち場 |
| 理由の区分 | 学業/体調/家庭の事情/その他/書かれていない | 書かれていなければ not_stated |
| 当てをつけた相手 | 「○○さんに聞いてみます」など、本人が書いた名前 | 無ければ空 |
| 一部だけの交代か | 「19時まではいけます」など | 書かれていれば開始と終了を分けて返す |
右端の列が、この構成でいちばん大事な扱いです。 「明日」としか書かれていなくても、本人の明日のシフトが2つあれば ambiguous です。どちらかに決めて候補に声をかけると、違う枠の交代を頼むことになります。
理由の区分は、交代の記録のために取ります。 本文は表に残しません。体調や家庭の事情の詳しい中身は、店長が知っていれば足りることです。
| させないこと | 理由 |
|---|---|
| 候補を選ぶ・並べる | 規則で決める。年少者の深夜の制限が関わる |
| 交代を認めるかの判断 | 店長の判断 |
| 理由の中身の要約を表に残す | 体調や家庭の事情は必要以上に残さない |
| 連絡文に依頼した人の理由を書く | 本人の事情を候補に知らせない |
| 連絡文を送る | 下書きまで。送るのは店長 |
1行目を AI にさせない理由は、もう一つあります。 AI は文面に名前が出てきた人を候補に挙げがちで、シフト表を見ていない以上、その人がその日に入っているかを知りません。 候補の判断に要る情報は、表の側にしかありません。
4行目は、指示に明記しないと必ず起きます。 「○○さんが体調不良で入れなくなったので」と書いた方が、頼みやすい文になるからです。理由は依頼した人と店長のあいだのことです。
指示内容を固定する
あなたは飲食店の店長の補助として、アルバイトから届いたシフト交代の依頼を読む立場です。
依頼の文面と、添えた情報だけを見て、項目を抜き出してください。
書かれていないことを推測で埋めないでください。
【抜き出す項目】
1. date:交代したい日付(YYYY-MM-DD)。送信日時を基準に「明日」などを確定する
2. start・end:交代したい時間帯の開始と終了(HH:MM)
3. position:hall / kitchen / either
4. reason_type:study / health / family / other / not_stated
5. partner_hint:本人が当てをつけた相手の名前。無ければ空
6. partial:一部だけの交代なら true。そのときは start・end に交代したい部分だけを入れる
7. status:fixed / ambiguous / unknown
8. evidence:判定の根拠にした文面をそのまま写す
【日付と時刻の決め方】
- 文面に日付や時刻が無いとき、補ってよいのは
【本人のシフト】でその日の枠が1つに決まるときだけです。
- 枠が2つ以上あって決められなければ status を ambiguous にしてください。
- 「遅番」などの名前は【店舗の時間帯】で時刻に直してください。
一覧に無い名前なら status を unknown にしてください。
【厳守事項】
- 候補になる人を選んだり、名前を挙げたりしないでください。
- 理由は区分だけを返し、詳しい中身を書き写さないでください。
- 交代を認めるべきかどうかは書かないでください。
【送信日時】{submitted_at}
【店舗の時間帯】{store_slots}
【本人のシフト】{own_shifts}
【依頼の文面】{request_text}
「候補を選ばない」を書いているのは、AI が気を利かせるからです。 文面に「○○さんならいけるかも」とあれば、その人を候補として返します。本人が当てをつけた相手は partner_hint に分けて記録し、候補の判定は表の規則で行います。 当てをつけた相手が18歳未満で、時間帯が深夜にかかることもあるからです。
連絡文の下書きは、2つ目のステップで別に作らせます。 渡すのは日付・時間帯・持ち場・店舗だけで、依頼した人の名前と理由は渡しません。 渡さなければ書きようがありません。
出力形式を固定する
Analyze and Return Data の出力項目を定義し、次の形で受け取ります。
{
"date": "2026-10-10",
"start": "17:00",
"end": "23:00",
"position": "hall | kitchen | either",
"reason_type": "study | health | family | other | not_stated",
"partner_hint": "",
"partial": false,
"status": "fixed | ambiguous | unknown",
"evidence": ""
}
1つ目の理由は、status で Paths を分けられることです。 fixed なら交代依頼の表に書いて候補を絞り、ambiguous と unknown なら表に書くだけで候補を絞らず、店長に確かめを頼みます。 決まっていない日付で候補を絞っても、意味のない候補が並ぶだけです。
2つ目は、start と end が時刻の形でそろうことです。 表の関数は、終了の時刻が午後10時を超えるかで深夜にかかるかを判定します。自由文の「夜まで」では、この判定が書けません。
交代依頼の表の1行は、次の列を持ちます。
| 列 | 中身 |
|---|---|
| 依頼ID・受付日時 | Zap が付ける |
| 店舗・依頼した人 | 従業員の一覧から |
| 日付・開始・終了・持ち場 | AI の出力 |
| 深夜にかかるか | 終了が22:00を超えるかを関数で判定 |
| 候補 | 関数が絞った候補の名前の一覧 |
| 状態 | 受付/声かけ中/決定/見送り |
| 代わった人・決定日時 | 店長が入力 |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Google フォーム | Zapier のトリガー(New Form Response) | 依頼の送信を検知する |
| 従業員の一覧・店舗の一覧 | Google Sheets の検索 | 本人・持ち場・時間帯の取り決めを引く |
| 交代依頼の表 | Google Sheets の行の追加と検索 | 依頼を書き込み、関数が絞った候補を読む |
| AI by Zapier | Zap のステップ | 項目の抜き出しと、連絡文の下書き |
| Gmail | Send Email | 店長の店舗アドレスへ知らせる |
Gmail で送るのは、店長への社内の知らせだけです。 候補への連絡文は、店長がグループチャットか個別のチャットに貼って送ります。アルバイトの個人の連絡先へ Zap から直接送る経路は作りません。
シフト表には書き込みません。 交代が決まったら、店長がシフト表を書き換え、交代依頼の表の「代わった人」と「決定日時」を埋めます。
人が確認する
- 印の付いたものから見る …
ambiguousとunknownは、依頼した人に聞き返します - 候補を確かめる … 関数が絞った候補の中から、声をかける相手を選びます
- 深夜にかかる交代を見る … 「深夜にかかるか」が付いた行は、候補に18歳未満が入っていないことを目で確かめます
- 連絡文を直して送る … 送るのは店長です
- 決まったら記録する … 代わった人と決定日時を表に入れ、シフト表を書き換えます
3番目は、関数で外していても省きません。 従業員の一覧の生年月日が空の人は、関数では判定できず、18歳以上として扱われてしまうからです。生年月日が空の人は候補から外す関数にしたうえで、念のため目でも見ます。
候補が多いときは、交代で入った回数の少ない人から声をかけます。 交代依頼の表に人ごとの回数が残るので、同じ人に頼みごとが続いていないかを、その場で確かめられます。
労働時間の確かめも店長の仕事です。 交代で入る人が、その週に長く入りすぎていないか、6時間を超える勤務なら少なくとも45分、8時間を超えるなら少なくとも1時間の休憩を取れるかは、シフト表を見て確かめます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 日付が2つ以上考えられる | ambiguous。候補を絞らず、店長が聞き返す |
| 店舗の取り決めに無い時間帯の名前 | unknown。店長が確かめ、取り決めの一覧に足す |
| 本人がその日にシフトに入っていない | 依頼の日付の誤りか、交代でなく追加の相談。店長へ回す |
| 候補が0人 | 店長へ知らせる。店舗をまたいだ応援を頼むかは店長が決める |
| 生年月日が空の人がいる | 候補から外し、人事に一覧を直してもらう |
| 当日の数時間前の依頼 | 急ぎの印を付け、店長の電話で知らせる運用を併せて決める |
| AI の応答が返らない | 依頼を「未処理」として表に書き、店長へ文面のまま知らせる |
| 同じ依頼が二度送られる | 同じ人・同じ日付なら、2件目は印だけ付ける |
| 依頼の取り下げ(「やっぱり入れます」) | フォームに取り下げの設問を置かず、店長が表の状態を「見送り」にする |
| 店長が休みの日 | 知らせの宛先を店舗アドレスにし、副店長も同じ一覧を見る |
4行目は、AI では解決しません。 候補がいないのはシフトの組み方の問題です。交代依頼の表に候補0人の件数が残るので、人事が月ごとに店舗の人の足りなさを見る材料になります。
Paths は、規則に合う枝が複数動きうるとされています。fixed/ambiguous/unknown の3つの枝の条件を重ならないように書き、どれにも当たらないものは Fallback の枝で店長に回します。
記録を残す
- フォームの回答の全文と、送信日時
- AI の出力(項目、
status、evidence) - 交代依頼の表の各行と、そのとき関数が出した候補の一覧
- 店長が声をかけた相手と、決まった人、決定日時
- 候補が0人だった依頼の件数(店舗ごと・時間帯ごと)
- 交代で入った回数(人ごと)
3つ目で「そのときの候補」を残すのは、従業員の一覧が後から変わるためです。 誕生日で18歳未満の印が外れたり、持ち場が増えたりすると、同じ依頼でも候補が変わります。 当時の候補が残っていないと、誤って誘っていないかを後から確かめられません。
最後の行は、交代の偏りを見るためのものです。 同じ人ばかりが代わっているなら、その人に負担が寄っています。 店長が声をかける相手を選ぶときの材料にします。
04実装レベルの3段階
本記事の想定は半自動化です。 1件10分のうち、読み取り・候補探し・文を書く作業が自動になり、店長に残るのは候補の選択と送信と記録です。 半自動化から始めるのは、候補の絞り込みの関数を先に確かめたいからです。 1か月回すと、候補0人になりやすい時間帯や、生年月日が空で外れている人が見えてきます。従業員の一覧の穴を埋めてから返事の受け取りを足すほうが、誤った確定が起きません。 本格構成で足すのは、候補の返事の受け取りです。 返事用のフォームを足せば、引き受けた人を表に書けます。ただし、シフト表を書き換えるのは店長の承認の後に限ります。 先着で決まる形にすると、店長が確かめる前に年少者の深夜の勤務が確定しうるからです。
05工数削減シミュレーション
導入後 360件 × 3分 ÷ 60 = 18 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- アルバイト・パートが多く、シフトの交代の依頼が店長に毎日のように届く飲食店・小売店・宿泊施設のチェーン。依頼がチャットや口頭でばらばらに届き、店長が営業中に読み、シフト表を見て代わりの人を探している場合。高校生のアルバイトがいて、深夜の時間帯に入れない人を確かめる必要がある場合。シフト表と出勤できる曜日の一覧を Google スプレッドシートで持てる場合。
- 1店舗で従業員が数名しかおらず、交代を口頭で決めて足りる場合。シフト管理のサービスに交代の申請と承認の機能があり、すでにそこで回っている場合。交代の可否を本人どうしで決めて事後に報告するだけの運用の場合。なお、交代を認めるかの判断、労働時間と年少者の就業の制限を守っているかの最終確認は、この構成では代替できません。
07最小構成で試す方法
- 店長のチャットから、先月の交代の依頼を30件集める(日付や時刻が曖昧だったものを必ず入れる)
- その30件について、当時決まった日付・時間帯・持ち場をシフト表から書き出す
- 依頼の文面と送信日時を、手元のAIサービスの画面に1件ずつ貼り付ける
- 「送信日時を基準に、交代したい日付・開始と終了の時刻・持ち場を抜き出してください。決められないときは決められないと書いてください。理由は区分だけにしてください」と指示する
- 出てきた値を、当時決まった内容と突き合わせる
30件は必ずやってください。 Zap を組む前に、「アルバイトの書き方で日付と時刻が決まるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の内容と同じ日付と時刻が出た | Zap の組み立てに進む |
| 曖昧な依頼で日付を決めつけた | 指示の書き方で直る。本人のシフトを添えると多くは決まる |
| 時間帯の名前が読めない | 店舗の時間帯の取り決めを一覧にするのが先 |
2行目が出ることはよくあります。 「明日」「この前の土曜と同じ時間」のように、文面だけでは決まらない書き方が多いからです。本人のその日のシフトを貼り付けに添えて、同じ依頼をもう一度試してください。 それで決まるなら、前処理の3番目が効くということです。
候補の絞り込みは、この段階では試しません。 関数で行うものなので、AI の試しとは別に、シフト表の上で作ります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「明日」を Zap が動いた日を基準に読む | 送信日時を基準日として渡す |
| 曖昧な日付を決めつける | 本人のシフトが1つに決まるときだけ補うと指示する |
| AI が候補を挙げてしまう | 候補を選ばないと明記する。 当てをつけた相手は別の項目に |
| 連絡文に依頼した人の理由が入る | 下書きのステップに理由と名前を渡さない |
| 生年月日が空の人が深夜の候補に出る | 空の人は候補から外す関数にする |
| 18歳の誕生日で印が切り替わらない | 生年月日から関数で出す。手で付けない |
| 時間帯の名前が店舗で違う | 店舗ごとの取り決めを一覧にして渡す |
| 名前で従業員が引けない | フォームの名前を選択式にし、補助の検索列に店舗を使う |
| Paths の枝が2つ同時に動く | 枝の条件を重ならないように書く |
| 先着で交代が確定してしまう | シフト表の書き換えは店長の承認の後に限る |
| 交代が同じ人に偏る | 人ごとの交代の回数を表で数える |
| アルバイトがフォームを使わずチャットで頼み続ける | 店長がチャットで受けた依頼もフォームに転記する。入口を1つにしないと記録が欠ける |
上の2行と5行目が、この構成の失敗のほとんどです。 どれも「日付と時刻と年齢」という、規則で決められるものを曖昧なまま進めたときに起きます。読み取りは AI に、決める規則は表に、という分け方を崩さないでください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: アルバイトの名前、店舗、勤務の日時、交代の理由(体調・家庭の事情を含みうる)、そして従業員の一覧にある生年月日と18歳未満かどうかです。
- AI に渡す範囲を絞る … 抜き出しのステップに渡すのは、依頼の文面・送信日時・店舗の時間帯・本人のシフトだけです。生年月日や連絡先は渡しません。 年齢の判定は表の関数で行います
- 理由の中身を残さない … 表に残すのは区分だけです。体調や家庭の事情を一覧に書き写すと、店長以外の目に触れます
- 年少者の就業の制限を、AI の判断に任せない … 労働基準法は、18歳未満の者を午後10時から午前5時までの間に使用してはならないと定めています(交替制の満16歳以上の男性などの例外があります)。また、時間外労働の協定の規定は18歳未満には適用されません。候補の絞り込みは表の規則で行い、深夜にかかる交代は店長が目で確かめます
- 使う AI のモデルと規約を確かめる … 高校生が書いた文面を扱います。Gemini API の規約は、18歳未満が使う、または使う見込みのあるサービスでの利用を認めていません。 AI by Zapier で自前のキーを使うなら、Gemini 以外を選びます
- 連絡を自動で送らない … 下書きまでにし、候補に送るのは店長です。誤った日付や、誘ってはいけない人への連絡を防ぎます
誤りが起きた場合のリスクは、違う枠の交代を頼むことと、深夜に入れない人を誘うことの2つです。 前者は日付の決めつけから、後者は年齢の扱いから起きます。前者は ambiguous で止め、後者は表の規則と店長の目の二重で止めます。
10まず何から始めるか
1週目:従業員の一覧と時間帯の取り決めを整える
従業員の一覧に、生年月日から出す18歳未満の列、持ち場の列、出勤できる曜日と時間帯の列を足します。店舗ごとの早番・中番・遅番の時刻を一覧にします。人事が雛形を作り、店長が埋めます。
2週目:30件で試す
先月の依頼を30件集め、手元のAIサービスに送信日時とともに貼り付けて、日付・時刻・持ち場を抜き出させます。曖昧な依頼で日付を決めつけていないかを最優先で見ます。
3週目:交代依頼の表と関数を作る
交代依頼の表を作り、日付・時間帯・持ち場・店舗から候補を絞る関数を入れます。深夜にかかる時間帯で18歳未満と生年月日が空の人が外れることを、手で入れた行で確かめます。
4週目:1店舗で Zap をつなぐ
フォームを1店舗のグループチャットに置き、New Form Response から抜き出し、表への書き込み、店長への知らせまでをつなぎます。この時点では連絡文の下書きを作らず、候補の一覧だけを見ます。
2か月目: 連絡文の下書きを足し、3店舗に広げます。ambiguous の件数と、店長が候補を直した件数を毎週数えます。3か月目以降: 全店舗に広げ、1件10分が何分になったかを実測します。候補0人の件数と交代の偏りを人事が月ごとに見る形になった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Google Forms のトリガー New Form Response が新しい回答で動く即時のトリガーであること。回答が Google スプレッドシートに保存されている必要があること | Zapier Help: Google Forms | 2026-10-08 |
| Analyze and Return Data で出力の項目を名前・型・説明・必須で定義できること。Standard(1タスク)・Advanced(3倍)・Premium(5倍)のモデルがあること。自前のキーを使えること | Zapier Help: Use AI by Zapier to analyze and return data | 2026-10-08 |
| Paths の枝が左から順に確かめられ、条件を重ならないように書くことが勧められていること。Fallback の枝があること | Zapier Help: Add branching logic to Zap workflows with Paths | 2026-10-08 |
| Lookup Spreadsheet Row で補助の検索列と値を指定し、両方に一致する行だけを探せること | Zapier Help: Find and update spreadsheet rows in Google Sheets | 2026-10-08 |
| 労働基準法第61条(満18才に満たない者を午後10時から午前5時までの間において使用してはならないこと、交替制の満16才以上の男性の例外)、第60条(第36条などの規定が満18才に満たない者に適用されないこと)、第34条(6時間を超える場合は少なくとも45分、8時間を超える場合は少なくとも1時間の休憩)(法令APIで条文の原文を取得して確認) | e-Gov 法令API: 労働基準法 | 2026-10-08 |
| Gemini API を18歳未満が使う、または使う見込みのあるサービスの一部として使ってはならないこと | Gemini API Additional Terms of Service | 2026-10-08 |
交代を認めるかの基準と、年少者の就業の扱いは、自社の就業規則と社会保険労務士の助言に沿って決めてください。 本記事は上記の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1002)についてのご相談はこちらから。
