【Power Automate】Teamsのフォローアップに「スヌーズ(あとで再通知)」を追加する方法

はじめに
標準テンプレート「メッセージについてフォローアップする」は、指定時刻に1回だけリマインドして終わります。
でも「通知が来たけど今は対応できない…」という場面、よくあるかと思います。
この記事では、そのテンプレートを少し改造して「X分後にもう一度通知する(スヌーズ)」機能を自作する方法を、画面付きで手順どおりに解説します。

Power Automateの基本・料金・他の実例一覧はこちら。

完成イメージ:押すまで何度も通知する
改造後は、リマインド時刻になるとボタン付きのカードが届きます。
[✅ 対応済み] を押せば完了、[🔁 5分後にスヌーズ] を押すと今回の場合は約5分後に同じカードが再び届きます。対応するまで繰り返し背中を押してくれる、というわけです。

改造の全体像:どこを変える?
標準テンプレートは最後にフィード通知を1回送って終わりでした。スヌーズ版では、この最後の通知を「ループ」に置き換えます。やることは大きく2つだけです。
- 削除:最後の「フィード通知」アクション(と直前の条件)
- 追加:停止フラグ変数 isDone + Do until ループ(カード投稿 → 応答で分岐 → スヌーズなら5分待って再投稿)
完成すると、フロー全体は次のような形になります。前半(入力を受け取る〜Delay until で待つ)は標準テンプレートのまま。後半の「Do until」ブロックが、今回作るスヌーズの心臓部です。

事前準備:テンプレートを用意する
まず土台として、標準テンプレート「メッセージについてフォローアップする」をテンプレートギャラリーから新規作成しておきます。追加手順は入門記事で詳しく解説しているので、未作成の方はこちらを先にどうぞ。

スヌーズを追加する6つの手順
テンプレートを編集画面で開き、上から順に手を加えていきます。
手順① 最後のフィード通知を削除する
標準テンプレートの末尾にある「Post a feed notification(フィード通知)」と、その直前の条件(Condition)を削除します。
各アクションの「…」メニューから[削除]を選べばOKです。ここから先を、これから作るループに置き換えます。
手順② 停止フラグ変数「isDone」を追加する
ループを「いつ止めるか」を判断するためのフラグを用意します。前半の変数初期化アクションの並びに、[変数を初期化する] をもう1つ追加し、次のように設定します。

- 名前:isDone
- 種類:文字列
- 値:false(最初は「まだ完了していない」状態)
手順③ Do until ループを追加する
「Delay until(指定時刻まで待つ)」の下に、[Do until(〜になるまで実行)] を追加します。これが「対応済みになるまで繰り返す」入れ物です。停止条件は次のように設定します。
- ループ停止条件:
isDoneが 等しいtrue - 件数 / タイムアウト:既定のまま(例:60回 / PT1H)でOK。無限ループの保険です。

手順④ ループの中にカード投稿を追加する
Do until の中に、Microsoft Teams の[アダプティブ カードを投稿して応答を待機する] を追加します。これが「ボタン付きのリマインドカード」を送り、押されるのを待つアクションです。主な設定は次のとおりです。
- 投稿者:フロー ボット
- 投稿先:フロー ボットとチャットをする
- Recipient(受信者):Get my profile (V2) で取得したメール
- Message:下記のカードJSONを貼り付け

Message 欄に貼り付けるカードJSONはこちらです。[✅ 対応済み] と [🔁 5分後にスヌーズ] の2つのボタンを持ち、それぞれ action に done / snooze を渡します。
{"type":"AdaptiveCard","$schema":"http://adaptivecards.io/schemas/adaptive-card.json","version":"1.4","body":[{"type":"TextBlock","text":"⏰ フォローアップのリマインド","weight":"Bolder","size":"Medium"},{"type":"TextBlock","text":"フォローアップの時間になりました。対応が済んだら「対応済み」、あとで対応する場合は「スヌーズ」を押してください。","wrap":true}],"actions":[{"type":"Action.Submit","title":"✅ 対応済み","data":{"action":"done"}},{"type":"Action.Submit","title":"🔁 5分後にスヌーズ","data":{"action":"snooze"}}]}手順⑤ 応答で分岐する条件を追加する
カード投稿の下に [条件(Condition)] を追加し、「どのボタンが押されたか」で分岐させます。左側に、押されたボタンの action を取り出す次の式を入れます。
body('アダプティブ_カードを投稿して応答を待機する')?['data']?['action']演算子は「次の値に等しい」、比較する値は done とします(=「対応済み」が押されたか?)。

手順⑥ True=完了 / False=スヌーズ を設定する
最後に、条件のTrue / False それぞれに1つずつアクションを入れます。
True(対応済み)側には [変数の設定] を置き、isDone を true にします。これでループの停止条件が満たされ、フローが終了します。

False(スヌーズ)側には [遅延] を置き、Count = 5 / Unit = Minute に設定します。5分待ったあとループの先頭へ戻り、カードがもう一度投稿されます。これがスヌーズの正体です。


「カードを出す→押されるまで待つ→対応済みなら止める/スヌーズなら5分待って戻る」。この往復を Do until がぐるぐる回してくれるイメージです!
動作確認:スヌーズを試す
Teams のメッセージから起動し、入力カードに日付・時刻・メモを入れて送信します(動作確認では、時刻を少し過去にするとすぐにカードが届いて検証しやすいです)。

指定時刻になるとリマインドカードが届きます。ここで[🔁 5分後にスヌーズ] を押すと「応答が送信されました」と表示され、約5分後に同じカードが再投稿されました。スヌーズが実機で正しく動いていることを確認できます。

あとは [✅ 対応済み] を押せば isDone が true になり、ループが止まってフローが完了します。
カスタマイズのヒント
あわせて読みたい
Power Automateの全体像・基本・料金・実例一覧はこちらにまとめています。

まずは基本のフォローアップから押さえたい方はこちら。

出来事をきっかけにチャネルへ通知したい場合はこちら。

通知ではなく承認を Teams で受けたい場合はこちら。

まとめ
- 標準テンプレートの最後の通知を Do until ループに置き換えるだけでスヌーズ化できる
- 停止フラグ isDone と条件分岐で「対応済み=終了/スヌーズ=5分後に再通知」を実現
- カードJSONは必ず1行で貼る(実行時エラーの定番)
- スヌーズ間隔やカード文言はあとから自由に調整できる
「1回きりの通知」を「押すまで追いかけてくれる通知」に変えるだけで、フォローアップの取りこぼしはぐっと減ります。まずはスヌーズ間隔5分のまま動かしてみて、慣れてきたら自分の業務に合わせてアレンジしてみてください。





