自動化
PR

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

sanane
記事内に商品プロモーションを含む場合があります

はじめに

標準テンプレート「メッセージについてフォローアップする」は、指定時刻に1回だけリマインドして終わります。

でも「通知が来たけど今は対応できない…」という場面、よくあるかと思います。

この記事では、そのテンプレートを少し改造して「X分後にもう一度通知する(スヌーズ)」機能を自作する方法を、画面付きで手順どおりに解説します。

本記事は応用編です。テンプレートの追加方法や基本の仕組み(Delay until など)は、先に次の入門記事を読むとスムーズです。

あわせて読みたい
【Power Automate】Teamsテンプレ「メッセージについてフォローアップする」の中身を初心者向けに解説
【Power Automate】Teamsテンプレ「メッセージについてフォローアップする」の中身を初心者向けに解説

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

あわせて読みたい
Power Automateとは?できること・使い方・始め方を実例50本で解説
Power Automateとは?できること・使い方・始め方を実例50本で解説

完成イメージ:押すまで何度も通知する

改造後は、リマインド時刻になるとボタン付きのカードが届きます。

[✅ 対応済み] を押せば完了、[🔁 5分後にスヌーズ] を押すと今回の場合は約5分後に同じカードが再び届きます。対応するまで繰り返し背中を押してくれる、というわけです。

スヌーズ対応のリマインドカード。「対応済み」と「5分後にスヌーズ」の2つのボタンが表示されている

改造の全体像:どこを変える?

標準テンプレートは最後にフィード通知を1回送って終わりでした。スヌーズ版では、この最後の通知を「ループ」に置き換えます。やることは大きく2つだけです。

標準テンプレートからの変更点
  • 削除:最後の「フィード通知」アクション(と直前の条件)
  • 追加:停止フラグ変数 isDoneDo until ループ(カード投稿 → 応答で分岐 → スヌーズなら5分待って再投稿)

完成すると、フロー全体は次のような形になります。前半(入力を受け取る〜Delay until で待つ)は標準テンプレートのまま。後半の「Do until」ブロックが、今回作るスヌーズの心臓部です。

スヌーズ対応フローの全体構成。前半は標準テンプレートのまま、最後にDo untilループが追加されている

事前準備:テンプレートを用意する

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

あわせて読みたい
【Power Automate】Teamsテンプレ「メッセージについてフォローアップする」の中身を初心者向けに解説
【Power Automate】Teamsテンプレ「メッセージについてフォローアップする」の中身を初心者向けに解説

テンプレートはそのまま改造します。元のテンプレートを残しておきたい場合は、編集前に「名前を付けて保存」でコピーを作っておくと安心です。

スヌーズを追加する6つの手順

テンプレートを編集画面で開き、上から順に手を加えていきます。

手順① 最後のフィード通知を削除する

標準テンプレートの末尾にある「Post a feed notification(フィード通知)」と、その直前の条件(Condition)を削除します。

各アクションの「…」メニューから[削除]を選べばOKです。ここから先を、これから作るループに置き換えます。

手順② 停止フラグ変数「isDone」を追加する

ループを「いつ止めるか」を判断するためのフラグを用意します。前半の変数初期化アクションの並びに、[変数を初期化する] をもう1つ追加し、次のように設定します。

変数の設定値
  • 名前:isDone
  • 種類:文字列
  • :false(最初は「まだ完了していない」状態)

手順③ Do until ループを追加する

「Delay until(指定時刻まで待つ)」のに、[Do until(〜になるまで実行)] を追加します。これが「対応済みになるまで繰り返す」入れ物です。停止条件は次のように設定します。

  • ループ停止条件isDone等しい true
  • 件数 / タイムアウト:既定のまま(例:60回 / PT1H)でOK。無限ループの保険です。
Do untilの設定画面。ループ停止条件をisDone 等しい trueに設定している

手順④ ループの中にカード投稿を追加する

Do until の中に、Microsoft Teams の[アダプティブ カードを投稿して応答を待機する] を追加します。これが「ボタン付きのリマインドカード」を送り、押されるのを待つアクションです。主な設定は次のとおりです。

  • 投稿者:フロー ボット
  • 投稿先:フロー ボットとチャットをする
  • Recipient(受信者):Get my profile (V2) で取得したメール
  • Message:下記のカードJSONを貼り付け
アダプティブカードを投稿して応答を待機するアクションの設定画面。投稿者・投稿先・Message・Recipientを設定している

Message 欄に貼り付けるカードJSONはこちらです。[✅ 対応済み][🔁 5分後にスヌーズ] の2つのボタンを持ち、それぞれ actiondone / 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"}}]}

カードJSONは必ず「1行」のまま貼り付けてください。

整形した複数行のJSONを貼ると、改行の境目でカンマが欠落し、実行時に InvalidJsonInBotAdaptiveCard エラーになります(しかもフロー チェッカーでは検出されません)。

貼り直すときは Message 欄を Ctrl/Cmd + A → Backspace で一度きれいに空にしてから、上の1行JSONを貼り直すのが確実です。

手順⑤ 応答で分岐する条件を追加する

カード投稿の[条件(Condition)] を追加し、「どのボタンが押されたか」で分岐させます。左側に、押されたボタンの action を取り出す次の式を入れます。

body('アダプティブ_カードを投稿して応答を待機する')?['data']?['action']

演算子は「次の値に等しい」、比較する値は done とします(=「対応済み」が押されたか?)。

条件アクションの設定。押されたボタンのactionが done に等しいかを判定している

手順⑥ True=完了 / False=スヌーズ を設定する

最後に、条件のTrue / False それぞれに1つずつアクションを入れます。

True(対応済み)側には [変数の設定] を置き、isDonetrue にします。これでループの停止条件が満たされ、フローが終了します。

True側の変数の設定。isDoneをtrueにしてループを止める

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

False側の遅延アクション。Count 5 / Unit Minute で5分待ってから再通知する
SANANE
SANANE

「カードを出す→押されるまで待つ→対応済みなら止める/スヌーズなら5分待って戻る」。この往復を Do until がぐるぐる回してくれるイメージです!

動作確認:スヌーズを試す

Teams のメッセージから起動し、入力カードに日付・時刻・メモを入れて送信します(動作確認では、時刻を少し過去にするとすぐにカードが届いて検証しやすいです)。

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

スヌーズを押した約5分後にリマインドカードが再投稿された様子

あとは [✅ 対応済み] を押せば isDonetrue になり、ループが止まってフローが完了します。

カスタマイズのヒント

仕組みが分かれば応用は自由自在です。スヌーズ間隔は手順⑥の[遅延]を 5 → 10 や 30 に変えるだけ。カードの文言やボタン名は JSON のテキストを書き換えればOK。さらに「3回スヌーズしたら諦める」のように回数で打ち切る分岐を足すのもおすすめです。

あわせて読みたい

Power Automateの全体像・基本・料金・実例一覧はこちらにまとめています。

あわせて読みたい
Power Automateとは?できること・使い方・始め方を実例50本で解説
Power Automateとは?できること・使い方・始め方を実例50本で解説

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

あわせて読みたい
【Power Automate】Teamsテンプレ「メッセージについてフォローアップする」の中身を初心者向けに解説
【Power Automate】Teamsテンプレ「メッセージについてフォローアップする」の中身を初心者向けに解説

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

あわせて読みたい
Power AutomateでTeamsに自動通知する方法|Forms・SharePoint・メール起点で解説
Power AutomateでTeamsに自動通知する方法|Forms・SharePoint・メール起点で解説

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

あわせて読みたい
Power Automateで承認依頼をTeamsに送る方法|アダプティブカードでその場で承認
Power Automateで承認依頼をTeamsに送る方法|アダプティブカードでその場で承認

まとめ

  • 標準テンプレートの最後の通知を Do until ループに置き換えるだけでスヌーズ化できる
  • 停止フラグ isDone条件分岐で「対応済み=終了/スヌーズ=5分後に再通知」を実現
  • カードJSONは必ず1行で貼る(実行時エラーの定番)
  • スヌーズ間隔やカード文言はあとから自由に調整できる

「1回きりの通知」を「押すまで追いかけてくれる通知」に変えるだけで、フォローアップの取りこぼしはぐっと減ります。まずはスヌーズ間隔5分のまま動かしてみて、慣れてきたら自分の業務に合わせてアレンジしてみてください。

記事URLをコピーしました