従業員の有給休暇申請をZapierで自動化 — Slack申請をNotionに記録し、残日数を自動計算して経理に通知するレシピ
有給休暇の申請管理に、月10時間前後を費やしていませんか。Slackで受け取った申請をZapierでNotionへ自動記録し、残日数を確認して経理へ通知する仕組みなら、転記や集計の負担を抑えられます。本記事では、従業員5〜50名規模の中小企業向けに、約45分で始める手順と運用上の注意点を解説します。
この記事のポイント
- Slackのフォームで、有給休暇の申請を受け付ける方法
- Zapierで、申請内容をNotionへ自動記録する手順
- Notionで、取得日数と残日数を管理する考え方
- 残日数が少ない場合に、経理へ通知する設定
- 導入後の確認項目、障害時の代替手段、法務・労務上の注意点
編集長の見解: 有給休暇管理の自動化は、単なる工数削減にとどまりません。申請漏れや転記ミスを減らし、取得状況を確認しやすくします。ただし、最終確認と法令への対応は会社側に残るため、まずは少人数でテスト運用を始めるのが現実的です。
はじめに:有給休暇管理の課題
多くの中小企業では、有給休暇の申請を紙やExcelで管理しています。従業員が申請し、総務担当者が承認し、管理表へ転記する流れです。1件あたり約10〜15分かかることもあります。
従業員20名の企業で月40件の申請があれば、月間で約7〜10時間が管理作業に消える計算です。
手作業では、転記ミスや集計漏れも起こります。残日数を誤ると、従業員との認識違いにつながります。法定基準を満たしていない場合は、労務上の問題になる可能性もあります。
警告: 自動化は、申請管理の負担を減らす手段です。法定日数の付与、取得状況の確認、最終承認まで自動で任せられるわけではありません。
次のセクションでは、今回構築する仕組みと必要なツールを確認します。
本記事で構築する自動化の全体像
今回の仕組みでは、次の4つのツールを連携します。
- Slack: 従業員が申請する受付窓口
- Zapier: Slack、Notion、Gmailをつなぐ連携サービス
- Notion: 申請内容と残日数を管理するデータベース
- Gmail: 経理部門へ通知メールを送るサービス
処理の流れは次のとおりです。
- 従業員がSlackのフォームから申請する
- Zapierが申請データを受け取る
- Notionに申請内容を記録する
- 取得日数と残日数を確認する
- 条件に該当した場合、Gmailで経理へ通知する
この仕組みにより、総務担当者は自動転記ではなく、申請内容の最終確認に集中できます。月間の管理工数を約10時間削減できる見込みです。
編集部メモ: 実際の削減時間は、申請件数、承認方法、ツールの設定によって変わります。導入前後の作業時間を1か月ずつ記録すると、効果を判断しやすくなります。
次は、導入対象と費用の目安を確認しましょう。
想定読者と必要なスキル
この記事は、次の方を想定しています。
- 従業員5〜50名規模の中小企業の経営者や総務担当者
- SlackとNotionを業務で利用している方
- プログラミングを使わずに業務を自動化したい方
- ITの知識が中程度の方
Zapierの基本操作に慣れていなくても、手順に沿って設定できます。経営者が導入を判断し、総務担当者が設定を進める運用も可能です。
使用ツールと費用の目安
| ツール | 役割 | 無料プランの制限 | 月額費用の目安 |
|---|---|---|---|
| Slack | 申請フォームの設置 | メッセージ履歴は90日間 | 無料〜¥850/ユーザー |
| Zapier | ツール間の自動連携 | 月100タスクまで | 無料〜$19.99/月 |
| Notion | 申請記録と日数管理 | 個人利用は無料 | 無料〜$10/ユーザー |
| Gmail | 通知メールの送信 | 無料プランあり | 無料〜 |
Zapierの無料プランは月100タスクまでです。月40件程度の申請なら、1件あたりの処理数を確認したうえで利用できます。ほかの自動化も動かす場合は、使用量を確認してください。
無料プランから始める場合
| ツール | 無料で試せる範囲 | 有料プランを検討する目安 |
|---|---|---|
| Slack | フォームの受付 | 履歴を長期保存したい場合 |
| Zapier | 月100タスクまで | タスク数が上限を超える場合 |
| Notion | 個人利用 | チーム利用や権限管理が必要な場合 |
| Gmail | 通知メール | Google Workspaceを使う場合 |
ヒント: 最初は無料プランで1週間テストし、申請件数と処理数を確認しましょう。料金は、全員を有料プランにする前に、必要な機能と利用者を整理して見積もります。
次のステップでは、従業員が迷わず使える申請フォームを作ります。
ステップ1:Slackで申請フォームを作る
自動化の第一歩は、Slack上に申請フォームを作ることです。入力項目を絞ると、従業員が申請しやすくなります。
フォームを作成する
Slackのワークフロービルダーを使い、次の順で設定します。
- Slackの左サイドバーから「ワークフロービルダー」を開く
- 「新規ワークフローを作成」を選択する
- トリガーに「スラッシュコマンド」を設定する
- コマンド名を「/kyuka」にする
- 「フォームを表示」を追加する
- フォームの項目を設定する
フォームには、次の項目を用意します。
- 従業員ID: 従業員を識別する番号
- 従業員名: 申請者の氏名
- 休暇開始日: 日付入力
- 休暇終了日: 日付入力
- 休暇種別: 有給休暇、慶弔休暇、特別休暇など
- 備考: 任意入力
入力項目を設計する
必須項目は、従業員ID、従業員名、休暇開始日、休暇終了日に絞ります。休暇種別は選択式にすると、入力間違いを抑えられます。備考欄は任意にし、体調や家庭事情などの不要な情報を書かなくても申請できるようにします。
Zapierへデータを渡す
フォームを作成したら、送信内容をZapierへ渡します。
- ワークフローに「Webhookを送信」を追加する
- Zapierで作成したWebhookのURLを入力する
- フォーム項目とWebhookの項目を対応させる
- テスト送信を行う
Webhookは、サービス間でデータを受け渡す仕組みです。項目名は、次のように統一します。
employee_idemployee_namestart_dateend_dateleave_typenotes
警告: Webhookの項目名が一致しないと、Notionのデータが空になることがあります。Slack側とZapier側で、項目名と日付形式をそろえてください。
フォームのテスト送信ができたら、次はZapierでNotionへの記録を設定します。
ステップ2:ZapierでNotionへ自動記録する
ここでは、Slackから受け取った申請内容をNotionへ登録します。
Zapierのトリガーを設定する
Zapierで新しいZapを作成し、Webhookを受け取る設定を行います。
- Zapierにログインし、「Create Zap」を選択する
- トリガーアプリに「Webhooks」を指定する
- イベントに「Catch Hook」を指定する
- 表示されたWebhook URLをコピーする
- SlackのWebhook設定にURLを貼り付ける
- Slackからテスト送信し、Zapierで受信を確認する
「Test Trigger」を実行すると、Zapierがテストデータを読み込みます。各項目が正しく表示されるか確認してください。
Notionのデータベースを作る
Notionに申請記録用のデータベースを作成します。
| フィールド名 | タイプ | 説明 |
|---|---|---|
| 従業員ID | テキスト | 従業員を識別する番号 |
| 従業員名 | テキスト | 申請者の氏名 |
| 休暇開始日 | 日付 | 休暇の開始日 |
| 休暇終了日 | 日付 | 休暇の終了日 |
| 休暇種別 | セレクト | 休暇の種類 |
| 申請日 | 日付 | 申請を受け付けた日 |
| ステータス | セレクト | 申請中、承認済み、却下 |
| 備考 | テキスト | 任意の補足事項 |
| 取得日数 | 数式 | 休暇日数を計算する項目 |
「取得日数」には、次の数式を設定します。
dateBetween(end(prop("休暇終了日")), start(prop("休暇開始日")), "days") + 1
開始日と終了日の差に1を加えることで、両端の日を含む日数を計算できます。たとえば、5月1日から5月3日までは3日です。
Notionへの登録を設定する
ZapierのアクションにNotionを指定し、データをマッピングします。
- アクションアプリに「Notion」を指定する
- イベントに「Create Database Entry」を指定する
- Notionアカウントを接続する
- 申請記録用データベースを選択する
- Slackから受け取ったデータを各項目へ割り当てる
- テストを実行する
| Notionの項目 | 割り当てるデータ |
|---|---|
| 従業員ID | employee_id |
| 従業員名 | employee_name |
| 休暇開始日 | start_date |
| 休暇終了日 | end_date |
| 休暇種別 | leave_type |
| 申請日 | Zapierの実行日時 |
| ステータス | 「申請中」 |
| 備考 | notes |
日付が正しく表示されない場合は、Zapierの日時変換機能で「YYYY-MM-DD」形式に整えます。空欄がある場合は、SlackとZapierの項目名を確認してください。
ヒント: 有給休暇だけを記録したい場合は、ZapierのFilterステップで「休暇種別が有給休暇の場合」という条件を追加します。ほかの休暇も管理する場合は、Notionにすべて記録し、通知先だけを分ける方法もあります。
Notionへの記録が確認できたら、次は従業員ごとの残日数を管理します。
ステップ3:残日数を確認し、経理へ通知する
残日数の管理では、申請記録と従業員情報を分けて考えることが重要です。申請ごとの取得日数だけでは、従業員ごとの残日数を正しく算出できません。
従業員マスターを作る
Notionに「従業員マスター」データベースを作成し、次の項目を用意します。
- 従業員ID
- 氏名
- 付与日数
- 累計取得日数
- 残日数
- 在籍状況
申請記録データベースには、従業員マスターへつなぐ「従業員」リレーションを追加します。リレーションとは、別のデータベースの項目を関連付ける機能です。
残日数を計算する
従業員マスターと申請記録を関連付け、取得日数をロールアップで合計します。ロールアップは、関連するデータの合計や一覧を表示する機能です。
残日数は、次の考え方で計算します。
prop("付与日数") - prop("累計取得日数")
ただし、承認前の申請まで合計すると、残日数が実際より少なく表示されます。累計取得日数には、原則として「承認済み」の申請だけを含めてください。
経理への通知条件を設定する
残日数が3日以下になったときに、経理へ通知するZapを作成します。
- トリガーアプリに「Notion」を指定する
- 申請記録データベースを選択する
- Filterステップを追加する
- 「残日数が3以下」という条件を設定する
- アクションアプリに「Gmail」を指定する
- 「Send Email」で通知内容を設定する
警告: Notionの計算結果が更新されるタイミングによっては、Zapierが古い残日数を読み込むことがあります。テスト時は、申請の記録、承認、残日数の更新、通知の順に確認してください。
通知メールを作成する
メール本文には、業務上必要な情報だけを記載します。
件名: 【要確認】有給休暇の残日数が基準値以下になりました
本文:
{従業員名}さんの有給休暇の残日数が
{残日数}日となりました。
【申請内容】
・従業員名: {従業員名}
・休暇期間: {休暇開始日}〜{休暇終了日}
・休暇種別: {休暇種別}
・取得日数: {取得日数}日
・残日数: {残日数}日
取得計画について、該当する従業員とご確認ください。
送信先は、次のように限定します。
- To: 経理部門の共有アドレス
- CC: 必要な場合のみ総務担当者
- Reply-To: 申請者のアドレス
個人情報を含むため、全社チャンネルや不要な宛先へ送らないでください。
ここまで設定できたら、テスト申請で通知までの流れを確認します。
ステップ4:運用開始後の確認と改善
自動化は、設定して終わりではありません。最初の2週間は、手作業の管理表と並行して結果を確認します。
初期運用チェックリスト
- Slackのフォームから申請できる
- ZapierがWebhookを受信している
- Notionに申請内容が登録されている
- 取得日数が正しく計算されている
- 承認前の申請が残日数に含まれていない
- 残日数が基準値以下の場合に通知される
- 従業員へ申請方法を周知している
- 不備がある申請の対応方法を決めている
従業員には、申請方法、申請期限、確認方法、問い合わせ先を伝えます。Slackを使えない場合の連絡方法も、あわせて案内してください。
よくあるトラブルと対処法
| トラブル | 原因 | 対処法 |
|---|---|---|
| Webhookが届かない | Slackの設定ミス | URLとワークフローを確認する |
| Notionに記録されない | 項目の割り当てミス | Zapierのテスト結果を確認する |
| 日付がずれる | 時刻設定の違い | 日本時間に統一する |
| 残日数がマイナスになる | 付与日数の設定漏れ | 従業員マスターを確認する |
| 重複記録が発生する | Webhookの再送信 | 重複防止の設定を確認する |
月次レビューを行う
月に1回、次の項目を確認します。
- 申請件数とZapierのタスク使用量
- Zapierの実行履歴にあるエラー
- 従業員ごとの残日数
- 従業員からの問い合わせ
- 手作業で修正した申請
レビュー結果は、Notionに記録しておくと改善履歴を追いやすくなります。1か月目はフォームの項目、2か月目は通知条件、3か月目は他の休暇制度を見直すと、段階的に改善できます。
ヒント: 自動化前後の作業時間を記録すると、導入効果を社内で共有しやすくなります。削減時間だけでなく、エラー件数や確認漏れの数も比較しましょう。
運用が安定したら、法務・労務面と障害時の対応を確認します。
編集部の警告:導入時の3つの注意点
注意点1:法務・労務面を確認する
有給休暇の管理を自動化しても、会社の法的な責任は変わりません。次の項目を確認してください。
- 有給休暇の付与日数が法定基準を満たしている
- 勤続6か月で10日、その後は勤続年数に応じて付与日数が増える
- 時季指定権など、従業員の権利を妨げていない
- 就業規則に申請手続きが記載されている
- 申請方法の変更を従業員へ周知している
制度や保存期間の判断に迷う場合は、社会保険労務士などの専門家へ相談してください。
警告: 自動化は、法令に沿った運用を支援するものです。付与日数や取得状況の最終確認は、会社の担当者が行ってください。
注意点2:障害時の代替手段を用意する
Slack、Zapier、Notionのいずれかが停止すると、申請の受付や記録が止まる可能性があります。
| 事態 | 代替手段 | 復旧後の対応 |
|---|---|---|
| Slackが使えない | 指定アドレスでメール受付 | Notionへ手動登録 |
| Zapierが止まった | 申請内容を一時保管 | 実行履歴と未処理分を確認 |
| Notionが使えない | 共有の一時表へ記録 | 復旧後に正式登録 |
| 通知が届かない | 経理へ電話や別メールで連絡 | 送信履歴を確認 |
Notionのデータは週次でエクスポートし、アクセス権を限定したクラウドストレージへ保存します。手動処理の手順も、総務担当者と共有してください。
注意点3:ITの習熟度に配慮する
Slackのフォーム操作に慣れていない従業員もいます。特に、ITツールの利用経験には個人差があります。
- メールや紙での申請も一定期間は受け付ける
- 総務担当者による代理入力を用意する
- 画面例付きの操作手順を配布する
- 短時間の説明会を開く
- 操作に関する問い合わせ先を明示する
代替手段で受け付けた申請も、総務担当者がSlackフォームへ代理入力すれば、記録の流れをそろえられます。
編集長の見解: 自動化の目的は、人を減らすことではなく、確認や転記の負担を減らすことです。誰でも申請できる代替手段を用意することが、長く使える仕組みにつながります。
次は、導入前に確認しておきたい質問に答えます。
よくある質問
Q1: Zapierの無料プランで足りますか?
従業員20名規模で、月40件程度の申請なら、月100タスクの無料プランを使える可能性があります。ただし、1件の申請で複数の処理が発生する場合があります。
Notionへの記録とメール通知を行う場合は、1件あたり2〜3タスクが目安です。ほかのZapも使う場合は、実際の使用量を確認してください。
Q2: 従業員が残日数を確認するにはどうすればよいですか?
Notionで従業員ごとの閲覧範囲を設定する方法があります。ただし、共有設定を誤ると、他の従業員の情報が見えるおそれがあります。
まずは総務担当者が残日数を伝える運用から始め、必要性を確認してから、従業員向けの画面を整備すると安全です。
Q3: 他の休暇制度にも使えますか?
使えます。Notionの「休暇種別」に、慶弔休暇や特別休暇などを追加します。Zapierの条件設定を使えば、休暇種別ごとに通知先を分けることも可能です。
Q4: 従業員が退職した場合、データはどう扱いますか?
退職者の申請記録は、法令や社内規程に応じた期間、保存します。労働基準法では5年間の保存義務があります。
データは削除せず、退職者用のビューやデータベースへアーカイブします。閲覧権限を見直し、現役従業員が不要な情報を見られない状態にしてください。
Q5: 障害に備えて何を準備すべきですか?
次の3つを準備します。
- Notionデータを週次でエクスポートする
- Slackが使えない場合のメール受付を用意する
- 自動化が止まった場合の手動処理手順を作る
復旧後は、手動で受け付けた申請をNotionへ登録し、重複がないか確認します。
Q6: 導入費用の目安はいくらですか?
無料プランだけで始める場合、初期費用は0円です。チームでNotionを使う場合や、Slackの履歴を長期保存する場合は、有料プランが必要になることがあります。
料金は契約時期や地域によって変わるため、各サービスの公式料金を確認してください。総額では、月額1万円以下で運用できるケースがほとんどです。
まとめ:有給休暇管理を月10時間削減する
今回の仕組みでは、Slackで申請を受け付け、ZapierでNotionへ記録し、残日数に応じて経理へ通知します。
- 管理工数の削減: 転記や集計の時間を抑えられる
- 記録漏れの抑制: 申請内容を自動でデータベースへ登録できる
- 残日数の確認: 従業員マスターと申請記録を関連付けて管理できる
- 情報共有の迅速化: 条件に該当した場合に担当者へ通知できる
効果は会社の申請件数や運用方法によって変わります。まずは少人数で1週間試し、記録と通知が正しく動くことを確認してください。
次のステップ
有給休暇管理が安定したら、次の業務にも応用できます。
- 勤怠データの記録
- 経費申請の受付
- 稟議の承認状況の管理
基本の流れは、Slackで受付し、Zapierで連携し、Notionで記録する形です。1つの業務で運用を固めてから、対象を広げましょう。
編集長の見解: 最初からすべての機能を実装する必要はありません。まずは申請の受付と記録に絞り、運用後に通知や他制度への対応を追加するほうが、社内に定着しやすくなります。
今日から始める3つの行動
- Slackの申請フォームを作る(約15分)
- ZapierとNotionを連携する(約20分)
- テスト申請から通知まで確認する(約10分)
導入前後の作業時間とエラー件数を記録すると、効果を判断しやすくなります。月10時間前後の管理作業を見直し、従業員や顧客への対応に使える時間を増やしましょう。
Mira / AI経営ラボ 編集長