業務自動化

従業員の有給休暇申請をZapierで自動化 — Slack申請をNotionに記録し、残日数を自動計算して経理に通知するレシピ

中小企業・スタートアップ の業務自動化レシピ
業種中小企業・スタートアップ
ツールZapier
難易度★★☆ 中
設定時間約 45 分

有給休暇の申請管理に、月10時間前後を費やしていませんか。Slackで受け取った申請をZapierでNotionへ自動記録し、残日数を確認して経理へ通知する仕組みなら、転記や集計の負担を抑えられます。本記事では、従業員5〜50名規模の中小企業向けに、約45分で始める手順と運用上の注意点を解説します。

想定読了時間: 約12分 | 導入にかかる時間: 約45分 | 難易度: 中級

この記事のポイント

編集長の見解: 有給休暇管理の自動化は、単なる工数削減にとどまりません。申請漏れや転記ミスを減らし、取得状況を確認しやすくします。ただし、最終確認と法令への対応は会社側に残るため、まずは少人数でテスト運用を始めるのが現実的です。

はじめに:有給休暇管理の課題

多くの中小企業では、有給休暇の申請を紙やExcelで管理しています。従業員が申請し、総務担当者が承認し、管理表へ転記する流れです。1件あたり約10〜15分かかることもあります。

従業員20名の企業で月40件の申請があれば、月間で約7〜10時間が管理作業に消える計算です。

手作業では、転記ミスや集計漏れも起こります。残日数を誤ると、従業員との認識違いにつながります。法定基準を満たしていない場合は、労務上の問題になる可能性もあります。

警告: 自動化は、申請管理の負担を減らす手段です。法定日数の付与、取得状況の確認、最終承認まで自動で任せられるわけではありません。

次のセクションでは、今回構築する仕組みと必要なツールを確認します。

本記事で構築する自動化の全体像

今回の仕組みでは、次の4つのツールを連携します。

処理の流れは次のとおりです。

  1. 従業員がSlackのフォームから申請する
  2. Zapierが申請データを受け取る
  3. Notionに申請内容を記録する
  4. 取得日数と残日数を確認する
  5. 条件に該当した場合、Gmailで経理へ通知する

この仕組みにより、総務担当者は自動転記ではなく、申請内容の最終確認に集中できます。月間の管理工数を約10時間削減できる見込みです。

編集部メモ: 実際の削減時間は、申請件数、承認方法、ツールの設定によって変わります。導入前後の作業時間を1か月ずつ記録すると、効果を判断しやすくなります。

次は、導入対象と費用の目安を確認しましょう。

想定読者と必要なスキル

この記事は、次の方を想定しています。

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のワークフロービルダーを使い、次の順で設定します。

  1. Slackの左サイドバーから「ワークフロービルダー」を開く
  2. 「新規ワークフローを作成」を選択する
  3. トリガーに「スラッシュコマンド」を設定する
  4. コマンド名を「/kyuka」にする
  5. 「フォームを表示」を追加する
  6. フォームの項目を設定する

フォームには、次の項目を用意します。

入力項目を設計する

必須項目は、従業員ID、従業員名、休暇開始日、休暇終了日に絞ります。休暇種別は選択式にすると、入力間違いを抑えられます。備考欄は任意にし、体調や家庭事情などの不要な情報を書かなくても申請できるようにします。

Zapierへデータを渡す

フォームを作成したら、送信内容をZapierへ渡します。

  1. ワークフローに「Webhookを送信」を追加する
  2. Zapierで作成したWebhookのURLを入力する
  3. フォーム項目とWebhookの項目を対応させる
  4. テスト送信を行う

Webhookは、サービス間でデータを受け渡す仕組みです。項目名は、次のように統一します。

警告: Webhookの項目名が一致しないと、Notionのデータが空になることがあります。Slack側とZapier側で、項目名と日付形式をそろえてください。

フォームのテスト送信ができたら、次はZapierでNotionへの記録を設定します。

ステップ2:ZapierでNotionへ自動記録する

ここでは、Slackから受け取った申請内容をNotionへ登録します。

Zapierのトリガーを設定する

Zapierで新しいZapを作成し、Webhookを受け取る設定を行います。

  1. Zapierにログインし、「Create Zap」を選択する
  2. トリガーアプリに「Webhooks」を指定する
  3. イベントに「Catch Hook」を指定する
  4. 表示されたWebhook URLをコピーする
  5. SlackのWebhook設定にURLを貼り付ける
  6. Slackからテスト送信し、Zapierで受信を確認する

「Test Trigger」を実行すると、Zapierがテストデータを読み込みます。各項目が正しく表示されるか確認してください。

Notionのデータベースを作る

Notionに申請記録用のデータベースを作成します。

フィールド名タイプ説明
従業員IDテキスト従業員を識別する番号
従業員名テキスト申請者の氏名
休暇開始日日付休暇の開始日
休暇終了日日付休暇の終了日
休暇種別セレクト休暇の種類
申請日日付申請を受け付けた日
ステータスセレクト申請中、承認済み、却下
備考テキスト任意の補足事項
取得日数数式休暇日数を計算する項目

「取得日数」には、次の数式を設定します。

dateBetween(end(prop("休暇終了日")), start(prop("休暇開始日")), "days") + 1

開始日と終了日の差に1を加えることで、両端の日を含む日数を計算できます。たとえば、5月1日から5月3日までは3日です。

Notionへの登録を設定する

ZapierのアクションにNotionを指定し、データをマッピングします。

  1. アクションアプリに「Notion」を指定する
  2. イベントに「Create Database Entry」を指定する
  3. Notionアカウントを接続する
  4. 申請記録用データベースを選択する
  5. Slackから受け取ったデータを各項目へ割り当てる
  6. テストを実行する
Notionの項目割り当てるデータ
従業員IDemployee_id
従業員名employee_name
休暇開始日start_date
休暇終了日end_date
休暇種別leave_type
申請日Zapierの実行日時
ステータス「申請中」
備考notes

日付が正しく表示されない場合は、Zapierの日時変換機能で「YYYY-MM-DD」形式に整えます。空欄がある場合は、SlackとZapierの項目名を確認してください。

ヒント: 有給休暇だけを記録したい場合は、ZapierのFilterステップで「休暇種別が有給休暇の場合」という条件を追加します。ほかの休暇も管理する場合は、Notionにすべて記録し、通知先だけを分ける方法もあります。

Notionへの記録が確認できたら、次は従業員ごとの残日数を管理します。

ステップ3:残日数を確認し、経理へ通知する

残日数の管理では、申請記録と従業員情報を分けて考えることが重要です。申請ごとの取得日数だけでは、従業員ごとの残日数を正しく算出できません。

従業員マスターを作る

Notionに「従業員マスター」データベースを作成し、次の項目を用意します。

申請記録データベースには、従業員マスターへつなぐ「従業員」リレーションを追加します。リレーションとは、別のデータベースの項目を関連付ける機能です。

残日数を計算する

従業員マスターと申請記録を関連付け、取得日数をロールアップで合計します。ロールアップは、関連するデータの合計や一覧を表示する機能です。

残日数は、次の考え方で計算します。

prop("付与日数") - prop("累計取得日数")

ただし、承認前の申請まで合計すると、残日数が実際より少なく表示されます。累計取得日数には、原則として「承認済み」の申請だけを含めてください。

経理への通知条件を設定する

残日数が3日以下になったときに、経理へ通知するZapを作成します。

  1. トリガーアプリに「Notion」を指定する
  2. 申請記録データベースを選択する
  3. Filterステップを追加する
  4. 「残日数が3以下」という条件を設定する
  5. アクションアプリに「Gmail」を指定する
  6. 「Send Email」で通知内容を設定する

警告: Notionの計算結果が更新されるタイミングによっては、Zapierが古い残日数を読み込むことがあります。テスト時は、申請の記録、承認、残日数の更新、通知の順に確認してください。

通知メールを作成する

メール本文には、業務上必要な情報だけを記載します。

件名: 【要確認】有給休暇の残日数が基準値以下になりました

本文:
{従業員名}さんの有給休暇の残日数が
{残日数}日となりました。

【申請内容】
・従業員名: {従業員名}
・休暇期間: {休暇開始日}〜{休暇終了日}
・休暇種別: {休暇種別}
・取得日数: {取得日数}日
・残日数: {残日数}日

取得計画について、該当する従業員とご確認ください。

送信先は、次のように限定します。

個人情報を含むため、全社チャンネルや不要な宛先へ送らないでください。

ここまで設定できたら、テスト申請で通知までの流れを確認します。

ステップ4:運用開始後の確認と改善

自動化は、設定して終わりではありません。最初の2週間は、手作業の管理表と並行して結果を確認します。

初期運用チェックリスト

従業員には、申請方法、申請期限、確認方法、問い合わせ先を伝えます。Slackを使えない場合の連絡方法も、あわせて案内してください。

よくあるトラブルと対処法

トラブル原因対処法
Webhookが届かないSlackの設定ミスURLとワークフローを確認する
Notionに記録されない項目の割り当てミスZapierのテスト結果を確認する
日付がずれる時刻設定の違い日本時間に統一する
残日数がマイナスになる付与日数の設定漏れ従業員マスターを確認する
重複記録が発生するWebhookの再送信重複防止の設定を確認する

月次レビューを行う

月に1回、次の項目を確認します。

  1. 申請件数とZapierのタスク使用量
  2. Zapierの実行履歴にあるエラー
  3. 従業員ごとの残日数
  4. 従業員からの問い合わせ
  5. 手作業で修正した申請

レビュー結果は、Notionに記録しておくと改善履歴を追いやすくなります。1か月目はフォームの項目、2か月目は通知条件、3か月目は他の休暇制度を見直すと、段階的に改善できます。

ヒント: 自動化前後の作業時間を記録すると、導入効果を社内で共有しやすくなります。削減時間だけでなく、エラー件数や確認漏れの数も比較しましょう。

運用が安定したら、法務・労務面と障害時の対応を確認します。

編集部の警告:導入時の3つの注意点

注意点1:法務・労務面を確認する

有給休暇の管理を自動化しても、会社の法的な責任は変わりません。次の項目を確認してください。

制度や保存期間の判断に迷う場合は、社会保険労務士などの専門家へ相談してください。

警告: 自動化は、法令に沿った運用を支援するものです。付与日数や取得状況の最終確認は、会社の担当者が行ってください。

注意点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つを準備します。

  1. Notionデータを週次でエクスポートする
  2. Slackが使えない場合のメール受付を用意する
  3. 自動化が止まった場合の手動処理手順を作る

復旧後は、手動で受け付けた申請をNotionへ登録し、重複がないか確認します。

Q6: 導入費用の目安はいくらですか?

無料プランだけで始める場合、初期費用は0円です。チームでNotionを使う場合や、Slackの履歴を長期保存する場合は、有料プランが必要になることがあります。

料金は契約時期や地域によって変わるため、各サービスの公式料金を確認してください。総額では、月額1万円以下で運用できるケースがほとんどです。

まとめ:有給休暇管理を月10時間削減する

今回の仕組みでは、Slackで申請を受け付け、ZapierでNotionへ記録し、残日数に応じて経理へ通知します。

効果は会社の申請件数や運用方法によって変わります。まずは少人数で1週間試し、記録と通知が正しく動くことを確認してください。

次のステップ

有給休暇管理が安定したら、次の業務にも応用できます。

基本の流れは、Slackで受付し、Zapierで連携し、Notionで記録する形です。1つの業務で運用を固めてから、対象を広げましょう。

編集長の見解: 最初からすべての機能を実装する必要はありません。まずは申請の受付と記録に絞り、運用後に通知や他制度への対応を追加するほうが、社内に定着しやすくなります。

今日から始める3つの行動

  1. Slackの申請フォームを作る(約15分)
  2. ZapierとNotionを連携する(約20分)
  3. テスト申請から通知まで確認する(約10分)

導入前後の作業時間とエラー件数を記録すると、効果を判断しやすくなります。月10時間前後の管理作業を見直し、従業員や顧客への対応に使える時間を増やしましょう。

Mira / AI経営ラボ 編集長