SharePointの期限切れ・未完了タスクを毎朝メールで確認する
期限日時を過ぎた未完了タスクだけを毎朝確認し、管理者へメールします。空欄・同時刻の分岐例と、100件を超えたときの取得漏れの確認手順を説明します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。
実行前に確認
- 毎日、取得時点で未完了かつ期限切れの項目を再通知する設計です。1回だけの通知ではありません。手動再実行・再試行でも重複し得るため、「必ず1日1通」は保証しません。1回限りにする運用では通知済み管理と失敗時の扱いを別途設計します。
- 「複数の項目の取得」の既定の取得件数は100件です。Top Countとページネーションのしきい値は別の設定です。下の101件の検証手順で取得漏れを確認し、設定したしきい値以上の件数が返った場合は打ち切りの可能性を疑います。この入門例を大量データへそのまま適用しないでください。
- 日付のみの期限では当日0時に期限切れになるなど、終日扱いとのずれが起きます。この例は日付と時刻列専用です。UTCの保存値を比較し、メールだけ日本時間へ変換します。実行時刻は遅延する場合があり、厳密に9時ちょうどの通知を保証しません。
- 取得後に人が完了へ変更した場合、その回は通知される可能性があります。メールは確認を促すものであり、最新状態はリンク先で確認します。本文に機密情報を含めず、宛先にリストの閲覧権限があることも確認してください。
- 標準コネクタを使いますが、すべての契約で追加費用なしとは限りません。接続の失効や組織ポリシーによる停止を含め、実行履歴を確認する運用担当者が必要です。
1使うトリガーとアクション
- トリガーとアクション繰り返し → 作成毎朝9時。RunAtに判定基準のUTC日時を1回だけ保存
- アクション複数の項目の取得SharePoint:Done eq 0で未完了だけ取得
- アクションそれぞれに適用する名前:EachTask。取得結果のvalueを1件ずつ処理
- アクション条件DueAtが空なら作成で記録。空でない側だけ日時を比較
- アクション条件 → メールの送信 (V2)DueAt < RunAtのはい側だけ。宛先は管理者の固定アドレス
図で見る処理のイメージ
概念図10月7日9時(日本時間)を基準に、5件の練習タスクを振り分けます。
基準を保存
RunAt=2026-10-07T00:00:00Z。全項目で同じ時刻を使用
未完了を取得
A・B・D・Eを取得。完了済みCは除外
空欄を確認
Dは期限未入力として記録。日時比較を行わない
期限を比較
Aだけ基準より前。Bは未来、Eは同時刻なので送信しない
管理者へ連絡
AのID・タイトル・日本時間の期限・リンクを自分宛てに送信
この検証用データではメール対象はAの1件です。翌日も未完了なら再び対象になり、完了済みにすれば次回取得から除外されます。
架空の練習データによる説明です。実際のフローを実行して確認した結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する14ステップの設定と確認方法
- 1
準備:SharePoint Onlineの空の通常リスト「タスク確認練習」を作ります。Title(タイトル)のほか、英字名 DueAt で「日付と時刻」列を作り、時刻を含めて入力できる設定にします。必須にはしません。英字名 Done で「はい/いいえ」列を作り、既定値はいいえにします。列名を後から日本語に変えても内部名は元のままです。既存リストを使う場合は内部名を確認してください。
- 2
練習は5件だけで始めます。SharePointの地域設定と自分の表示タイムゾーンを日本時間にそろえます。この例の期限は「その日の終わり」ではなく、入力した時刻そのものです。SharePoint・Office 365 Outlookの接続と対象リストの読み取り権限、利用契約・組織のDLPポリシーを確認します。メールの宛先は最初は自分の組織アドレスだけに固定します。
- 3
スケジュール済みクラウドフローの「繰り返し」を間隔1・頻度「日」、タイムゾーン Tokyo Standard Time、時9・分0に設定します。続けてデータ操作の「作成」を置き、名前を RunAt、入力の式を utcNow() にします。同じ実行中の全タスクを、この1回取得した時刻で比較します。
- 4
「複数の項目の取得」にサイトとタスク確認練習を設定します。フィルター クエリ欄へ Done eq 0 を通常の文字列として入力します。0はいいえの意味です。上から順に取得する件数(Top Count)は空欄。この5件の練習では既定の取得範囲で足りますが、実運用の件数については下の注意点を確認します。
- 5
「それぞれに適用する」を追加し、名前を EachTask に変更します。入力は「複数の項目の取得」の動的コンテンツ value。これは1件のタイトルではなく、未完了項目が入った配列です。0件ならループは0回で、メールも送りません。
- 6
EachTaskの内側に「条件」を置きます。左辺は式 empty(string(items('EachTask')?['DueAt']))、比較は等しい、右辺は式 true。はい側は「作成」に「期限未入力:」と現在の項目のIDを入れ、実行履歴に残します。期限が空の項目を期限切れとみなさず、日時の変換にも渡さないための分岐です。
- 7
空欄条件のいいえ側に、もう1つ「条件」を置きます。左辺は式 less(ticks(items('EachTask')?['DueAt']),ticks(outputs('RunAt')))、比較は等しい、右辺は式 true。lessは「より前」であり、同時刻は含めません。入力欄の式タブでは先頭に@を付けません。アクション名EachTask・RunAtは式と一致させます。
- 8
日時条件のはい側だけにOffice 365 Outlookの「メールの送信 (V2)」を置きます。宛先=自分の組織アドレス、件名=「期限切れタスク #」+現在の項目のID。本文にはタイトル、期限、SharePointの「項目へのリンク」を動的コンテンツで挿入します。+は画面上で固定文字と動的コンテンツを続けて配置する意味です。期限は式 convertTimeZone(items('EachTask')?['DueAt'],'UTC','Tokyo Standard Time','yyyy/MM/dd HH:mm') で日本時間表示にします。いいえ側には何も置かず、次の項目へ進めます。
- 9
判定の練習ではRunAtの入力を一時的に通常テキスト 2026-10-07T00:00:00Z にします。これは日本時間10月7日9時です。リストへ、A=10月6日17時・未完了、B=10月7日17時・未完了、C=10月6日17時・完了、D=期限空欄・未完了、E=10月7日9時・未完了を登録。Aだけメール対象、BとEは日時条件がいいえ、Cは取得対象外、Dは期限未入力の記録になります。5件は架空の検証用データです。
- 10
自分宛てのテストで分岐とリンクを確認したら、RunAtを必ず式 utcNow() に戻します。戻し忘れると毎回同じ日時で判定されます。次にAを完了へ変更して再テストし、通知されなくなることも確認します。メールに失敗した場合は実行履歴の該当項目とOutlook接続を確認し、再実行前に受信箱を確認します。
- 11
100件を超える前の確認:本番のメールを大量送信しないよう、このフローを別名の検証用コピーにし、コピーの「繰り返し」トリガーを「手動でフローをトリガーする」に置き換えます。コピー内の「メールの送信 (V2)」を「作成」に置き換え、入力に現在の項目のIDを指定します。接続先も検証専用リストに切り替え、送信アクションが残っていないことを確認します。
- 12
検証用リストに未完了101件を用意し、すべての期限をRunAtより前にします。「複数の項目の取得」を GetOpenTasks に改名し、フィルターは Done eq 0、Top Countは空欄、並べ替えは ID asc にします。取得の直後・EachTaskの前に「作成」を追加し、名前を RetrievedCount、式を length(body('GetOpenTasks')?['value']) にします。実行履歴で返った配列の件数を確認できます。これはリスト全体の総件数ではありません。
- 13
検証コピーの「複数の項目の取得」の設定でページネーションを有効にし、しきい値を200にして保存します。手動でテストし、RetrievedCountが101で、最後の項目のIDもEachTask内の「作成」に記録されることを確認します。101件のつもりが100件なら取得設定を見直します。0件なら「期限切れなし」と即断せず、接続先・Doneの値・フィルターを確認します。200はこの101件の練習用であり、無制限取得の設定ではありません。
- 14
検証結果を本番へ反映するときは、想定する未完了件数に合う取得設定を決め、固定のテスト日時を残さずRunAtをutcNow()にします。返った件数が設定したしきい値以上なら取得が途中の可能性があるため、全件確認済みとは判断しません。リスト自体が5000件を超える場合は、フィルターに一致する項目が最初の5000件にないと0件になる既知の制限も公式資料で確認します。ページネーションだけで全規模・全条件の取得を保証せず、索引や絞り込みの設計を管理者と確認してください。
- 対象環境
- クラウドフロー(SharePoint Online・Microsoft 365 組織アカウント)
- 更新日
- 2026年10月7日