はじめに
私の部署ではアンケートなどが実施されると
Teamsに回答依頼の投稿を行い
その投稿に対してリアクションしてもらい
未対応者を確認できるような運営をしている
しかし期限の何日か前に未対応者に対して
個別にメンションを行いリマインドを送っていた
未対応者の洗い出しや、メンションにかける工数を
勉強中のPowerAutomateを使って削減できないかと考えた
結論
投稿を選択して、リアクションがない人に対するメンションの自動化までを実施
-
該当の投稿を選択し、PowerAutomateのフローを選択して実行する
⇒ 3日前リアクションがない人に対してメンションをするまでを実装できた
感想
初めて触るPowerAutomateだったため、Teams投稿やいいねの集計など役割ごとにアクションを別けて動作確認していき、最後に合体させると作りやすかった
今後の課題
-
〇日前と当日と、リアクションしていないメンバーへの通知の処理を共通化する
※現状だと遅延設定にて同じリマインドフローを実行する必要がある - PowerAppsと連携させて、投稿文をテンプレート化し入力項目を削減
- 通知のタイミングを土日を考慮してリマインドを実施する
目次
概要図
とりあえず全体の概要図は以下の通り
細かい説明は別の記事で記載予定
簡単な解説
1.リマインドさせたいメッセ―ジを選択してアダプティブカードにて期限日を指定する
2.時間の加工
・1.で指定した日から3日減算させる
・後述の遅延処理で利用するため時間追加させるためにタイムゾーンを協定世界時に変換させる
・始業の9時にリマインドするための時間追加処理
3.メンバー一覧を配列変数に格納
1.で選択したメッセージのチームIDよりグループメンバー一覧を取得
メンバー一覧を格納する配列を定義
役職(jobTitle)がある人を配列に入れないように条件式で選別
4.遅延設定
2.で設定した期限の3日前に移行のアクションを実施するように遅延を設定
5.リアクションしたメンバーの抽出
・リアクションしたメンバーを格納するための配列を定義
・1.で選択したメッセージの詳細情報を取得する
・JSONの解析でメッセージの詳細情報 ※詳細は参考文献に記載
・リアクションしたメンバーの情報を変数へ格納
6.リアクションしていないメンバーの抽出
・リアクションしていないメンバーを格納するための配列を定義
・グループメンバーと5.で定義したリアクションしたメンバーの差分を変数へ格納
8.リアクションしていないメンバーへTeamsでメンション
・リアクションしていないメンバーからメンショントークンを作成
・1.で選択したメッセージに対してメッセージを投稿する
※メンションは現状Teamsの仕様上20人までしか指定できないため
それ以上メンションをする必要がある場合は考慮が必要
代替手段としては、@allなどチャネルへメンションするなど
本当はこの後に前日や当日での遅延設定を行い
同様にリアクションしていないメンバーへのメンションフローを実施する必要があるのですが、
処理が同じのためループによって作成したい
というところで実装検討中・・・
アクションの細かい説明については別の記事で紹介予定
こちらでアクションの詳細を記載(2024/07/23)
PowerAutomateを使ってTeamsの投稿に対してリマインダーする(アンケートなど)~ 詳細編 ~
参考文献
-
5.のJSONの解析の参考
Teamsでリアクションした人をPowerAutomateで一覧作成し取得する -
8.の複数人へのメンションメッセージ投稿の参考
【Power Automate】Teamsで複数人へメンション付きメッセージを送る