勤怠入力漏れをTeams・Power Automateで自動催促する作成方法
皆様の貴重な時間を有効に使い、勤怠管理の精度を格段に上げるために、なぜ自動化が必要なのか、その具体的な利点を見ていきましょう。
手間のかかる確認作業がなくなる
毎日の勤怠状況を手作業で確認し、誰が入力漏れを起こしているかを見つけ出すのは、想像以上に手間と時間がかかる作業です。特に、多くの従業員を抱える企業様では、この作業だけでかなりの負担になっているのではないでしょうか。Power Automateを使うことで、この一連の確認作業をシステムが自動でやってくれます。これで、担当者の方は、もっと大切な仕事に集中できるようになるでしょう。
連絡の漏れや遅れがなくなる
忙しい日々の中で、勤怠入力漏れの催促をうっかり忘れてしまったり、連絡が遅れてしまったりすることは、誰にでも起こりうることです。しかし、このような小さなミスが、結果として給与計算の不正確さにつながり、大きな問題を引き起こす可能性もあります。自動化されたシステムは、設定した通りに正確に催促を行うので、連絡の漏れや遅れのリスクが大幅に減ります。
従業員が自主的に入力するようになる
システムから定期的に自動で催促が届くようになると、従業員の皆さんは、自分の勤怠入力にもっと気を配るようになるものです。人からの直接的な催促よりも、システムからの自動通知の方が、心理的な抵抗が少なく、自然と入力意識が高まる効果が期待できます。結果として、勤怠入力が習慣化され、入力漏れ自体が減っていくはずです。
リアルタイムで状況を把握できる
手作業での確認では、情報にどうしてもタイムラグが生じてしまいます。しかし、自動化システムがあれば、Power Automateが設定された時間ごとに勤怠データをチェックし、入力漏れがあればすぐに知らせてくれます。これにより、勤怠管理の担当者は常に最新の状況を把握でき、何か問題が起きた時も素早く対応できるようになります。
勤怠データを取り込む場所を選ぶ
自動で催促するためには、まず従業員の勤怠データがどこにあるのかを知る必要があります。データをどこから持ってくるかが、このシステムを作る上での最初の、そして最も大事なステップです。
Excelファイルを活用する方法
多くの会社で勤怠管理に使われているExcelファイルは、Power Automateと連携しやすいデータの置き場所の一つです。もし日々の勤怠データをExcelファイルに入れているなら、Power Automateの「Excel Online (Business)」機能を使って、そのデータを取り込めます。OneDriveやSharePointといったクラウドサービスにExcelファイルを置いておけば、もっとスムーズに連携できるでしょう。
SharePointリストを使うやり方
SharePointリストは、きれいに整理されたデータを管理するのにとても便利なツールです。従業員のID、名前、日付、出勤時間、退勤時間といった項目を持つ勤怠管理用のリストを作り、そこに毎日データを入力していく使い方が考えられます。Power AutomateはSharePointリストとの連携が非常に得意で、特定の条件に合うデータ(勤怠情報)を簡単に選び出すことが可能です。
勤怠管理システムと連携する方法
もし、すでに会社で専用の勤怠管理システムを使っているなら、そのシステムがAPIというデータ連携の仕組みを提供していれば、Power Automateを通じて直接データを取ってこられるかもしれません。ただし、これはシステムの種類や作った会社によってできるかどうかが変わるので、事前に確認が必要です。もしAPI連携が難しくても、システムからCSVファイルなどを定期的に出力して、それをExcelやSharePointリストに取り込んでからPower Automateで処理するという方法もあります。
その他のサービスも利用する
Microsoftの製品だけでなく、Google Workspaceを使っている会社であれば、Google Sheetsを勤怠データの置き場所として使うこともできます。Power AutomateにはGoogle Sheetsと連携する機能もあるので、同じようなやり方で勤怠データを取ってきて、自動催促の仕組みを作れます。皆さんの会社で使っているITの環境に合わせて、一番良いデータの置き場所を選びましょう。
作成例: Excelファイルから勤怠データを取得するPower Automateフロー
ここでは、SharePoint Onlineの特定のフォルダに保存されたExcelファイルから、勤怠データを取得するPower Automateフローの具体的な例を紹介します。
コード スニペット
-- Power Automate フローの基本設定 - Excelからのデータ取得
**フロー名**: 勤怠入力漏れ確認フロー(Excel連携)
---
**トリガー**:
- **スケジュールされたクラウド フロー (Recurrence)**
- 間隔: 1 (毎日実行)
- 頻度: 日
- タイムゾーン: UTC+9:00 (大阪、札幌、東京)
- 指定時刻: 18:00 (例: 毎日、就業時間後の午後6時に実行)
- (※就業時間が終わった後に確認できるよう、適切な時間を設定してください)
---
**アクション1**: **ファイルのコンテンツの取得 (Get file content)** - SharePoint
- **サイトのアドレス**: [勤怠Excelファイルが保存されているSharePointサイトのURLを入力してください]
- **ファイル識別子**: [勤怠Excelファイルの具体的なパスを入力してください(例: '/Shared Documents/勤怠管理/勤怠データ_2025.xlsx')]
---
**アクション2**: **テーブル行のリスト (List rows present in a table)** - Excel Online (Business)
- **場所**: [アクション1で取得した動的なコンテンツ「サイトのアドレス」を選択]
- **ドキュメント ライブラリ**: [アクション1で取得した動的なコンテンツ「ドキュメント ライブラリ」を選択(例: Shared Documents)]
- **ファイル**: [アクション1で取得した動的なコンテンツ「ファイル名」を選択(Excelファイル名)]
- **テーブル**: [Excelファイル内の勤怠データが入力されているテーブル名を入力してください(例: Table1)]
- (※Excelファイル内のデータが「テーブル」として整形されている必要があります。Excelの「テーブルとして書式設定」機能を使うと便利です。)
---
**アクション3**: **現在の時刻 (Get current time)** - データ操作
- (※今日の日付を取得し、勤怠データの日付と比較するために使います。)
---
**アクション4**: **繰り返し (Apply to each)**
- **以前の手順からの出力の選択**: [アクション2から動的なコンテンツ「value」(テーブルの各行)を選択]
- (※Excelの各行、つまり各従業員の勤怠データを一つずつ処理していきます。)
**アクション4.1**: **条件 (Condition)**
- **条件**: 次の2つの条件が両方とも正しい場合
- [現在の反復項目から「日付」列] が [アクション3で取得した「現在の時刻」のYYYY-MM-DD形式に変換したもの] と同じ
- **かつ**
- ([現在の反復項目から「出勤時間」列] が空 **または** [現在の反復項目から「退勤時間」列] が空)
- (※「日付」、「出勤時間」、「退勤時間」といった列の名前は、皆さんのExcelファイルの列名に合わせてください。)
- (※日付の比較を正確に行うために、`formatDateTime()`関数などを使って日付の形式を統一することをおすすめします。)
**→ はいの場合 (勤怠入力漏れがある場合)**
- (※ここに、催促メッセージを送るためのアクションを後で追加します。例えばTeamsへの投稿やメール送信などです。)
**→ いいえの場合 (勤怠入力漏れがない場合)**
- (※この場合は特に何もしません。必要であれば、ログを残すなどのアクションを追加することも可能です。)
Power Automateで催促の仕組みを作る
勤怠データへのアクセス方法が決まったら、いよいよPower Automateを使って、自動で催促を行う仕組みを具体的に作っていきます。
毎日確認する時間の設定
勤怠入力の漏れは、毎日確認してすぐに催促するのが一般的です。Power Automateのスケジュールされたクラウド フロー (Recurrence) トリガーを使えば、毎日決まった時間にこの仕組みを自動で動かせます。仕事が終わった後の夕方や、次の日の朝など、皆さんの会社での運用に合わせて、ちょうど良い実行時間を決めましょう。
勤怠漏れを見つけ出す方法
ここが、自動催促の仕組みで一番大事な部分です。取り込んだ勤怠データの中から、入力漏れがある従業員をどうやって見つけるか、そのルールを設定します。具体的には、「特定の日付の出勤時間か退勤時間が空白である」といった条件を決め、この条件に当てはまる従業員をリストアップします。
- Excelの場合: Excelのテーブルの各行を順番に見ていき、特定の列(例: 出勤時間、退勤時間)が空になっているかどうかを条件で判断します。
- SharePointリストの場合: SharePointリストの「アイテムの取得」アクションを使う時に、フィルターをかけるための特別な言葉(フィルタークエリ)を使って、未入力のデータを直接選び出すこともできます。
漏れがあったらTeamsで知らせる
入力漏れが見つかった従業員には、Teamsを通じて自動で催促のメッセージを送ります。Teamsと連携する「チャットまたはチャネルにメッセージを投稿する (Post message in a chat or channel)」アクションを使います。メッセージには、誰が、いつの勤怠入力を忘れているのかを具体的に書き、勤怠入力フォームへのリンクも含めておくと、従業員がスムーズに入力できるようになります。
個人宛に催促メッセージを送る
Teamsのチーム全体に知らせるだけでなく、入力漏れがある従業員一人ひとりに、Teamsのチャットで直接メッセージを送ることも効果的です。Teamsの同じアクションで、「投稿先」を「Flow botとのチャット」に設定し、「受信者」に該当従業員のメールアドレスを指定すれば、個人宛のチャットで催促できます。こうすることで、他の従業員に情報が見えることなく、個人のプライバシーにも配慮できます。
作成例: 勤怠漏れ確認とTeams催促のPower Automateフロー(続き)
「アクション4.1: 条件」の「はいの場合 (勤怠入力漏れがある場合)」の中に、以下の催促アクションを追加します。
コード スニペット
-- Power Automate フローの催促部分
---
**アクション4.1.1**: **チャットまたはチャネルにメッセージを投稿する (Post message in a chat or channel)** - Teams(個別チャット)
- **投稿元**: Flow bot (または、皆さんの会社のPower Automateを使うユーザー名を選択)
- **投稿先**: Chat with Flow bot
- **受信者**: [現在の反復項目から「従業員メールアドレス」列を選択] (※Excelファイルにメールアドレスの列があることを前提としています)
- **メッセージ**:
```
お疲れ様です。Flow botからの自動通知です。
[現在の反復項目から「従業員名」列]さん、[アクション3で取得した「現在の時刻」をYYYY年MM月DD日形式に変換したもの] の勤怠入力が確認できません。
お手数ですが、ご確認の上、早めにご入力をお願いいたします。
勤怠入力はこちらから: [勤怠入力システムのURL、またはExcelファイルへの直接リンクなどを入力してください]
```
---
**アクション4.1.2**: **チャネルにメッセージを投稿する (Post message in a chat or channel)** - Teams(管理職や勤怠担当者向け)
- **投稿元**: Flow bot (または、皆さんの会社のPower Automateを使うユーザー名を選択)
- **投稿先**: チャネル
- **チーム**: [勤怠管理に関する通知を送りたいTeamsチームを選択]
- **チャネル**: [勤怠管理の通知専用に設定したTeamsチャネルを選択]
- **メッセージ**:
```
【勤怠入力漏れ検出】
本日、以下の従業員様の勤怠入力がまだ終わっていません。
氏名: [現在の反復項目から「従業員名」列]
対象日: [アクション3で取得した「現在の時刻」をYYYY年MM月DD日形式に変換したもの]
ご確認をお願いいたします。
```
催促メールも自動で送る設定
Teamsでの通知に加えて、催促のメールも自動で送るようにすれば、従業員の方々に確実に情報が届きやすくなります。
Outlookで自動メール送信を設定する
Power AutomateのOutlook連携機能にある「メールの送信 (Send an email)」アクションを使えば、勤怠入力漏れがある従業員に対して、自動で催促のメールを送ることができます。これは、Teamsの通知を見落としがちな従業員や、メールでの連絡を好む従業員にとって、とても有効な方法です。
メールの件名と本文を工夫する
自動で送られるメールでも、件名と本文は非常に重要です。件名には「【重要】勤怠入力漏れのご連絡」や「【要確認】〇月〇日 勤怠未入力」など、急ぎの連絡だとわかるように具体的に書きましょう。本文には、どの日の、どの項目が未入力なのか、勤怠入力フォームへのリンク、そして問い合わせ先などをはっきりと記載します。丁寧な言葉遣いを心がけつつも、入力の必要性をきちんと伝える内容にしてください。
上司にも同時に知らせる
従業員本人だけでなく、その上司にも同時に催促メールを送ることで、上司からの声かけを促すことができます。これにより、入力漏れがよりスムーズに解消されるでしょう。Power Automateのフローで、従業員の所属部署や上司の情報を参照し、メールの宛先を自動で設定する仕組みを作ることが可能です。
催促メールの送る回数を調整する
一度の催促で入力されない場合を考えて、数日後に再度催促メールを送るなど、段階的なアプローチを検討するのも良いでしょう。例えば、最初はTeamsチャットで通知、次の日にはメールで通知、さらにその次の日には上司にもCCでメールを送る、といった形で、催促の強さを上げていく運用が考えられます。Power Automateの「遅延 (Delay)」アクションと「条件 (Condition)」アクションを組み合わせることで、こうした段階的な催促を実現できます。
作成例: 催促メール送信のPower Automateフロー(続き)
「アクション4.1: 条件」の「はいの場合 (勤怠入力漏れがある場合)」の中に、以下のメール送信アクションを追加します。
コード スニペット
-- Power Automate フローのメール送信部分
---
**アクション4.1.3**: **メールを送信する (Send an email)** - Outlook
- **宛先**: [現在の反復項目から「従業員メールアドレス」列を選択]
- **件名**: `concat('【重要】勤怠入力漏れのご連絡(', [現在の反復項目から「従業員名」列], '様)')`
- **本文**:
```html
<p>[現在の反復項目から「従業員名」列]様</p>
<p>いつもお疲れ様です。</p>
<p>〇月〇日 ([アクション3で取得した「現在の時刻」をYYYY年MM月DD日形式に変換したもの]) の勤怠入力が確認できませんでした。</p>
<p>お手数をおかけいたしますが、下記よりご確認いただき、早めにご入力をお願いいたします。</p>
<ul>
<li><strong>対象日:</strong> [アクション3で取得した「現在の時刻」をYYYY年MM月DD日形式に変換したもの]</li>
<li><strong>入力確認箇所:</strong> [例: 出勤時間、退勤時間など、具体的に未入力の項目を記載]</li>
<li><strong>勤怠入力システム:</strong> <a href="[勤怠入力システムのURLまたはExcelファイルへのリンクなどを入力]">こちらから入力</a></li>
</ul>
<p>ご不明な点がございましたら、〇〇部 〇〇までご連絡ください。</p>
<p>よろしくお願いいたします。</p>
```
- **CC (任意)**: [現在の反復項目から「上長メールアドレス」列を選択] (※Excelファイルに上長メールアドレスの列がある場合に設定)
応用的な設定とトラブルへの対処法
ここからは、さらに進んだ設定や、実際にシステムを運用する中で起こりうる問題にどう対応するかについて説明します。
特定の部署や個人を催促から外す
全ての従業員に一律で催促するのではなく、育児休業中の従業員や特定のプロジェクトで勤怠管理のルールが異なる従業員など、催促の対象から外したい場合があります。
- 条件アクションの追加: フローの中に「条件」アクションを加えて、部署名や従業員の状況に応じて催促をスキップするルールを設定します。
- 除外リストの活用: SharePointリストやExcelファイルで「勤怠催促除外リスト」を作り、フローの中でそのリストをチェックして、催促しない従業員を判断する方法も有効です。
段階的に催促を強くする
一度の通知で勤怠入力が進まない場合に備えて、時間が経つごとに催促の強さを上げていく(例: 最初の催促はTeamsチャット、24時間後にメール、48時間後に上司にも通知)ことができます。
- 遅延 (Delay) アクション: 指定した時間だけフローの実行を一時的に止めることができます。
- カウンター変数の使用: 催促の回数を数えるための「変数」を用意し、その回数によって送るメッセージや宛先を条件で変えることで、段階的な催促を実現できます。
勤怠締め日直前の最終催促
毎月の勤怠締め日が近づいてきて、まだ入力が終わっていない従業員がいる場合、より緊急性の高い最終催促を行う必要があります。
- 別のフローを作る: 勤怠締め日の近くに動く、別のPower Automateフローを作ります。
- 日付の比較: フローの中で今日の日付と勤怠締め日を比べて、締め日までの残り日数によって、異なるメッセージや連絡方法(例: 電話での催促を促す通知)を送るように設定します。
エラーが起きた時の通知と記録の管理
自動で動くフローは、予期せぬエラーで止まってしまうこともあります。そんな時のために、適切なエラー対応の設定をしておくことは非常に重要です。
- スコープアクションと実行後設定: 関連するアクションを「スコープ」アクションでグループ化し、スコープの「実行後 (Configure run after)」設定で、「失敗した場合」にも特定の通知アクションが動くように設定します。これにより、エラーが起きた時に管理者に自動で通知が送られるようになります。
- 記録を残す: Power Automateの実行履歴は自動で残りますが、もっと詳しい情報が必要な場合は、「データ操作」コネクタの「作成 (Compose)」アクションを使って、途中の変数の内容などを記録しておくと、後から問題の原因を特定しやすくなります。また、SharePointリストにエラー記録専用のリストを作り、フローの中でエラー情報をそこに書き込むように設定すれば、エラーの状況を一ヶ所で管理できます。
作成例: 応用的な設定(段階的な催促とエラーハンドリング)
先ほどのフローに、段階的な催促とエラーハンドリングの要素を追加します。ここでは、シンプルにするため、最初の催促から24時間後に再度催促する例を示します。
コード スニペット
-- Power Automate フローの応用例(段階的な催促とエラーハンドリング)
**フロー名**: 勤怠入力漏れ確認フロー(Excel連携_強化版)
---
**トリガー**:
- **スケジュールされたクラウド フロー (Recurrence)**
- (上記の「勤怠入力漏れ確認フロー(Excel連携)」と同じ設定)
---
**アクション1**: **ファイルのコンテンツの取得 (Get file content)** - SharePoint
- (上記と同じ設定)
---
**アクション2**: **テーブル行のリスト (List rows present in a table)** - Excel Online (Business)
- (上記と同じ設定)
---
**アクション3**: **現在の時刻 (Get current time)** - データ操作
- (上記と同じ設定)
---
**アクション4**: **繰り返し (Apply to each)**
- **以前の手順からの出力の選択**: [アクション2から動的なコンテンツ「value」(テーブルの行)を選択]
**スコープ**: **勤怠漏れチェックと初回催促** (このスコープ内に、勤怠のチェックと最初の催促アクションをまとめます)
- **アクション4.1**: **条件 (Condition)**
- 条件: [現在の反復項目から「日付」列] が [アクション3の出力「現在の時刻」のYYYY-MM-DD形式] と同じ **かつ** ([現在の反復項目から「出勤時間」列] が空 **または** [現在の反復項目から「退勤時間」列] が空)
**→ はいの場合 (勤怠入力漏れがある場合)**
- **アクション4.1.1**: **チャットまたはチャネルにメッセージを投稿する (Post message in a chat or channel)** - Teams(個別チャット)
- (上記の初回催促設定と同じ)
- **アクション4.1.2**: **メールを送信する (Send an email)** - Outlook
- (上記の初回メール催促設定と同じ)
- **アクション4.1.3**: **アイテムの作成 (Create item)** - SharePoint(未入力情報を記録)
- **サイトのアドレス**: [皆さんのSharePointサイトのURL]
- **リスト名**: 勤怠未入力リスト (※新たに作成した、未入力情報を管理するリスト名)
- **列への入力**: 従業員名、メールアドレス、対象日、催促回数(`1`)、初回催促日時(`utcNow()`など)などを設定
- (※このリストの情報を使って、2回目以降の催促を行います。)
**→ いいえの場合**
- (何もしません)
- **スコープの実行後 (Configure run after) 設定**:
- 上流アクション: **アクション4.1**
- 次の場合に実行: **成功しました (is successful)** (このスコープが問題なく終わった場合のみ次に進みます。エラーは別のスコープで捕まえます。)
**スコープ**: **エラー通知** (このスコープは、上記の「勤怠漏れチェックと初回催促」スコープが失敗した場合に実行されるように設定します)
- **このスコープの実行後 (Configure run after) 設定**:
- 上流アクション: **勤怠漏れチェックと初回催促** (上記のスコープ名)
- 次の場合に実行: **失敗しました (has failed)**
- **アクション4.X**: **チャネルにメッセージを投稿する (Post message in a chat or channel)** - Teams(エラー通知)
- **投稿元**: Flow bot
- **投稿先**: チャネル
- **チーム**: [システム管理者向けのTeamsチームを選択]
- **チャネル**: [エラー通知用のチャネルを選択]
- **メッセージ**:
```
【Power Automateエラー通知】勤怠入力漏れ確認フロー
処理中にエラーが発生しました。
詳細を確認してください。
フロー実行URL: [動的なコンテンツ「フローのURL」(式: workflow()['links']['webUrl'])]
```
---
**2回目以降の催促フロー(別途作成)**
上記の初回催促とは別に、以下のようなフローを構築することで、段階的な催促が実現できます。
```powerapps-formula
-- Power Automate フローの基本設定 - 2回目以降の催促フロー
**フロー名**: 勤怠入力漏れ再催促フロー
---
**トリガー**:
- **スケジュールされたクラウド フロー (Recurrence)**
- 間隔: 1
- 頻度: 日
- 指定時刻: 翌日の同じ時刻 (例: 18:00)
- (※初回催促から24時間後に実行するように設定)
---
**アクション1**: **アイテムの取得 (Get items)** - SharePoint(未入力リストから)
- **サイトのアドレス**: [皆さんのSharePointサイトのURL]
- **リスト名**: 勤怠未入力リスト
- **フィルタークエリ**: `初回催促日時 lt '[現在時刻-24時間]' and 催促回数 eq 1`
- (※`lt`は「より小さい」、`eq`は「等しい」を意味します。例: 初回催促日時が24時間より前で、かつ催促回数が1回のアイテムを抽出)
- (※[現在時刻-24時間]の部分は、`addDays(utcNow(), -1)` のように式で表現します。)
---
**アクション2**: **繰り返し (Apply to each)**
- **以前の手順からの出力の選択**: [アクション1から動的なコンテンツ「value」(SharePointリストのアイテム)を選択]
**アクション2.1**: **メールを送信する (Send an email)** - Outlook(再催促メール)
- **宛先**: [現在の反復項目から「メールアドレス」列を選択]
- **件名**: `concat('【再送・重要】勤怠入力漏れのご連絡(', [現在の反復項目から「従業員名」列], '様)')`
- **本文**: (上記のメール本文とほぼ同じですが、「再送」であることを強調するなど内容を調整してください。)
- **CC**: [現在の反復項目から「上長メールアドレス」列を選択]
**アクション2.2**: **アイテムの更新 (Update item)** - SharePoint(未入力リストの更新)
- **サイトのアドレス**: [皆さんのSharePointサイトのURL]
- **リスト名**: 勤怠未入力リスト
- **ID**: [現在の反復項目から「ID」列を選択]
- **列への入力**: 催促回数(`2`に更新)
- (※これで何回催促したかを管理できるようになります。)
勤怠漏れがないか確認できる仕組み
自動催促システムは、漏れがあった場合の対応だけでなく、勤怠入力がきちんと行われているかを確認できる仕組みも大切です。
勤怠入力状況のダッシュボードを作る
Power BIやTeamsのカスタムタブを使って、従業員ごとの勤怠入力状況がパッと見てわかるダッシュボードを作ることができます。これにより、勤怠管理の担当者は全体の状況を一目で把握でき、必要であれば個別の状況を詳しく確認することもできます。Power AutomateでExcelやSharePointリストに集められたデータを、Power BIでグラフや表にして見やすくするのが一般的な方法です。
定期的なレポートをTeamsで知らせる
毎日や毎週、勤怠入力が完了した人のリストや、まだ入力していない人のリストを、Teamsのチャネルに自動で投稿するように設定します。これによって、従業員は自分の入力状況を確認できますし、管理職の方は部下の状況を把握し、必要に応じて声をかけるきっかけにもなります。
勤怠入力完了を自動で確認する
従業員が勤怠入力を終えたことを、システムが自動的に確認し、未入力のリストからその従業員の情報を消す仕組みを作ります。例えば、勤怠データが更新されたことをきっかけに、該当従業員の勤怠が埋まっているかもう一度確認し、もし埋まっていれば未入力リストから削除するといったルールです。これにより、すでに入力が終わった従業員に、必要のない催促が届くのを防ぎます。
勤怠入力が終わった人へ感謝のメッセージ
勤怠入力が決められた期限までに完了した従業員に対して、Teamsのチャットで自動的に感謝のメッセージを送ることもできます。これは、強制力のある催促とは違い、従業員が「きちんと入力しよう」という前向きな気持ちになるのを促す効果が期待できます。Power Automateの「条件」アクションを使って、勤怠入力が完了している従業員を選び出し、メッセージを送るように設定します。
作成例: 勤怠入力完了確認と感謝メッセージのPower Automateフロー
このフローは、勤怠データが更新されたことをきっかけに、入力が完了したかを確認し、感謝のメッセージを送ります。
コード スニペット
-- Power Automate フローの基本設定 - 勤怠入力完了確認
**フロー名**: 勤怠入力完了確認と感謝メッセージフロー
---
**トリガー**:
- **項目が作成または変更されたとき (When an item is created or modified)** - SharePoint
- **サイトのアドレス**: [勤怠データが保存されているSharePointリストのURL]
- **リスト名**: [勤怠データリスト名]
- (※または、Excelファイルを更新した場合、Excel Online (Business) の「テーブルの行が変更されたとき」などのトリガーも検討してください。)
---
**アクション1**: **条件 (Condition)**
- **条件**: 次の2つの条件が両方とも正しい場合
- [トリガーから動的なコンテンツ「出勤時間」列] が空ではない
- **かつ**
- [トリガーから動的なコンテンツ「退勤時間」列] が空ではない
- (※これで、勤怠入力が完了したかどうかの判断をします。)
**→ はいの場合 (勤怠入力が完了した場合)**
- **アクション1.1**: **チャットまたはチャネルにメッセージを投稿する (Post message in a chat or channel)** - Teams(個別チャット)
- **投稿元**: Flow bot
- **投稿先**: Chat with Flow bot
- **受信者**: [トリガーから動的なコンテンツ「従業員メールアドレス」列を選択]
- **メッセージ**:
```
[トリガーから動的なコンテンツ「従業員名」列]さん、勤怠入力ありがとうございます!
〇月〇日 ([トリガーから動的なコンテンツ「日付」列をYYYY年MM月DD日形式に変換したもの]) の勤怠入力が確認できました。
いつも入力にご協力いただき、ありがとうございます。
```
- **アクション1.2**: **アイテムの削除または更新 (Delete item / Update item)** - SharePoint
- **サイトのアドレス**: [皆さんのSharePointサイトのURL]
- **リスト名**: 勤怠未入力リスト
- **ID**: [トリガーから動的なコンテンツ「従業員ID」と日付を使って未入力リストから該当アイテムを検索し、そのIDを選択]
- (※未入力リストから該当従業員の記録を削除するか、例えば「催促状況」という列を「完了」に更新するなどしてください。)
**→ いいえの場合 (まだ未入力の項目がある場合)**
- (何もしません。または、エラーがあった場合にログを残すこともできます。)
勤怠システムとの連携方法を考える
もっと高度な自動化を目指すなら、今使っている勤怠システムとPower Automateをつなげることが非常に大切です。
API連携の可能性を探る
もし皆さんの会社で使っている勤怠システムがAPI(Application Programming Interface)というデータ連携の仕組みを提供していれば、Power Automateから直接そのシステムにアクセスして、勤怠データを取ってきたり、登録したりできます。これは最も効率的で、リアルタイムに情報が連携できる方法ですが、APIの詳しい説明書を確認して、Power Automateで実現できるか技術的な検討が必要です。場合によっては、Power Automateで使えるようにする特別なコネクタ(カスタムコネクタ)を作る必要があるかもしれません。
Webスクレイピングで情報を取る
API連携が難しい場合でも、勤怠システムのWebサイトの画面から情報を読み取る「Webスクレイピング」という方法も考えられます。Power Automate Desktop(RPAという自動化機能)を使えば、指定したWebサイトに自動でアクセスし、必要な情報を抜き取ることができます。ただし、Webサイトのデザインが変わると動かなくなる可能性があったり、システムに負担をかけたり、利用規約に反しないかなど、注意すべき点もいくつかあります。
CSVやExcelファイルで自動的に連携する
多くの勤怠システムでは、毎日や毎月、勤怠データをCSVファイルやExcelファイルとして出力する機能があります。このファイルを定期的に自動でクラウド上の保存場所(SharePointなど)にアップロードする仕組みを作れれば、Power Automateがそのファイルをきっかけにデータを読み込み、処理を始められます。この方法はAPI連携ほどリアルタイムではありませんが、比較的簡単に作れて、安定して動きやすいという利点があります。
データベースと直接つなげる
もし勤怠データがデータベース(SQL Serverなど)に保存されている場合、Power AutomateのSQL Server連携機能などを使って、直接データベースからデータを取ってくることも可能です。この方法は、たくさんのデータを効率よく処理するのに向いていて、リアルタイム性も高いですが、データベースへのアクセス権限やセキュリティの設定には十分な注意が必要です。
Pythonなどのスクリプト連携
Power Automateだけでは難しい、もっと複雑なデータ処理や、特定のシステムとの連携が必要な場合、PythonのプログラムをPower Automateから動かす方法も非常に有効です。
- Azure Functionsと連携: Pythonで書いたプログラムを「Azure Functions」というクラウドサービスに置いておき、Power Automateからインターネットを通じてそのFunctionsを呼び出します。Functionsは複雑なデータ処理を実行し、その結果をPower Automateに返すことができます。
- Power Automate Desktopと連携: 皆さんのパソコン上でPythonのプログラムを実行し、その結果をPower Automate Desktopを通じてクラウド上のPower Automateフローに渡すこともできます。これは、Webスクレイピングやパソコンのファイル操作など、デスクトップ環境での処理が必要な場合に特に有効です。
継続的な改善と日々の手入れ
一度、勤怠催促のシステムを作ったらそれで終わりではありません。もっと効果的に使い続けるためには、定期的に見直し、適切な手入れをしていくことがとても大切です。
フローの動きをいつも見ておく
Power Automateの管理画面で、作ったフローがどのように動いているか、その履歴を定期的に確認しましょう。正常に動いているか、エラーが出ていないか、予定より遅れていないかなどを確認することで、システムが安定して動き続けるようにできます。もしエラーが出たら、何が原因かを突き止めて、素早く対応することが求められます。
従業員からの意見を集める
自動催促のメッセージを実際に受け取った従業員からの意見は、システムを良くしていくための貴重な情報源です。催促のメッセージが分かりやすいか、送られるタイミングは適切か、勤怠入力フォームへのリンクはちゃんと機能しているかなど、使う人の視点からの意見を積極的に集めましょう。アンケートを行ったり、Teamsの特定のチャネルで意見を募ったりする方法が考えられます。
法律や社内ルールの変更に対応する
勤怠管理に関する法律が変わったり、皆さんの会社で勤怠に関するルールが変わったりした場合、それに合わせてフローもきちんと修正する必要があります。例えば、残業時間の上限が変わったり、新しい休暇の制度が導入されたりするなどが挙げられます。常に新しい情報をキャッチアップして、フローが現在のルールに合っているかを確認しましょう。
システムの動きを速くする
フローが複雑になったり、処理するデータの量が増えたりすると、動きが遅くなったり、効率が悪くなったりすることがあります。
- データの絞り込みを工夫する: SharePointリストやデータベースからデータを取ってくる時、必要のないデータまで取ってこないように、フィルターをかける方法を工夫しましょう。
- 並列処理を活用する: 「繰り返し (Apply to each)」アクションの中の処理を、同時に複数実行できるように設定することで、たくさんのデータを処理する時間を短くできる場合があります。
- アクションをシンプルにする: 必要のないアクションを削除したり、もっと効率的なアクションに置き換えたりすることで、フロー全体の動きを良くすることができます。
よくある疑問と困った時の解決策
実際にシステムを動かす中でよくある質問や、もし問題が起きた時にどうすれば良いかについてまとめました。
催促が届かない、または遅れて届く場合
- Power Automateの実行履歴を確認する: まず、Power Automateの管理画面で、作ったフローがちゃんと動いているか、エラーが出ていないかなどを確認しましょう。
- 動かすタイミングの設定を確認する: 毎日決まった時間に動くように設定した間隔や時刻が正しいかを確認します。
- データの置き場所を確認する: ExcelファイルやSharePointリストが正しく更新されているか、勤怠データがきちんと入力されているかを確認します。
- メールアドレスを確認する: 催促を送る従業員のメールアドレスが正しいか、メールの送受信設定に問題がないかを確認しましょう。
- Teamsの通知設定: 従業員側のTeamsの通知設定がオフになっていないか、確認してもらうように促してみましょう。
間違って催促が届いてしまう場合
- 勤怠データの正確性: 一番多い原因は、勤怠データ自体が古かったり、間違って入力されていたりするケースです。データの正確さをしっかりと保つことが大切です。
- 条件の設定を確認する: Power Automateフローの中にある「条件」アクションで、勤怠入力漏れを判断するルールが正確に作られているかを確認します。特に日付や時間の比較、空白かどうかを判断するルールをもう一度見直しましょう。
- 除外設定の確認: 催促の対象から外すべき従業員が、正しく除外リストに登録されていて、フローの中でそのルールが機能しているかを確認します。
従業員から質問が来た時の対応
- 問い合わせ先をはっきりさせる: 自動催促のメッセージに、質問や不明点があった時にどこに聞けば良いか(担当部署、連絡先など)をはっきりと書いておくことで、従業員が困った時に迷わないようにしましょう。
- よくある質問と回答を準備する: よく聞かれる質問とその回答をまとめたもの(FAQ)を準備し、Teamsのチャネルや社内のウェブサイトなどで公開することで、質問への対応を効率化できます。
- 自動で答える仕組みを考える: Teamsのボット機能などを活用して、簡単な質問には自動で答えられる仕組みを導入することも、今後を考えた選択肢として検討できます。
個人情報の保護とセキュリティに関する注意点
勤怠情報は個人情報に関わるため、セキュリティとプライバシーの保護には特に注意が必要です。
- アクセスできる人を最小限にする: Power Automateフローが勤怠データのある場所(Excel、SharePointリスト、勤怠システム)にアクセスできる人は、必要最小限にしましょう。また、フローそのものを編集したり動かしたりできる権限も、限られた担当者だけに与えるべきです。
- データの暗号化: クラウドに保存されるデータは、Microsoft 365が提供する暗号化機能によって守られていますが、特に重要な情報はさらに慎重に扱う必要があります。
- 利用規約を守る: 勤怠システムのAPI連携やWebスクレイピングを行う際は、それぞれのシステムの利用規約を必ず確認し、違反がないことを確かめてください。
まとめ
Microsoft TeamsとPower Automateを組み合わせることで、勤怠入力漏れの自動催促システムは、皆さんの会社の勤怠管理業務を大きく効率化し、担当者の負担を減らす強力な道具になります。手作業での確認や催促の煩わしさから解放され、もっと正確でスムーズな勤怠管理が実現できるでしょう。

