1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerAutomateを使ってTeamsの投稿に対してリマインダーする(アンケートなど)~ 詳細編 ~

Last updated at Posted at 2024-07-23

はじめに

概要については以下の記事で記載しているので
今回はアクションの詳細について記載
https://qiita.com/ctc-m-yomo/items/d5d7eac9b8c9b2b2d2ce

目次

  1. リマインドさせたいメッセ―ジを選択してアダプティブカードにて期限日を指定する
  2. 時間の加工
  3. メンバー一覧を配列変数に格納
  4. 遅延設定
  5. リアクションしたメンバーの抽出
  6. リアクションしていないメンバーの抽出
  7. リアクションしていないメンバーへTeamsでメンション
  8. 参考文献

1.リマインドさせたいメッセ―ジを選択してアダプティブカードにて期限日を指定する

トリガーは選択したメッセージの場合を使う
image.png

アダプティブカードの編集を押すと以下のような画面が表示され自由に編集が可能
右ペインにあるIdをその後のフローで利用する
image.png

リマインダーさせたいメッセージをTeams上で選択し、PowerAutomateのフローを実行する
すると以下のようなアダプティブカードが表示されるため期限日を選択する
image.png

※補足※
アダプティブカードとは、視覚的にカレンダーなどGUIのようなものを表示させる機能
以下のURLがわかりやすそうだったので参考に記載
https://rpa.bigtreetc.com/column/adaptivecard101/

2.時間の加工

・1.で指定した日から3日減算させる(3日前に通知させるため)
・後述の遅延処理で利用するため時間追加させるためにタイムゾーンを協定世界時に変換させる
・始業の9時にリマインドするための時間追加処理
image.png

3.メンバー一覧を配列変数に格納

1.で選択したメッセージのチームIDよりグループメンバー一覧を取得
メンバー一覧を格納する配列(verGroupMember)を定義
グループメンバーの一覧表示から出力されるメンバーデータであるvalueをループで回して、
役職(jobTitle)がある人を配列に入れないように条件式で選別し、
jobTitleの項目がないユーザを変数verGroupMemberへ格納

参考:https://www.teijitaisya.com/powerautomate-mention-multicast/

image.png

4.遅延設定

2.で設定した期限の3日前に移行のアクションを実施するように遅延を設定
image.png

5.リアクションしたメンバーの抽出

・リアクションしたメンバーを格納するための配列(varReaction)を定義
・1.で選択したメッセージの詳細情報を取得する
・JSONの解析でメッセージの詳細情報
参考:https://note.com/loto0704/n/n0b9138ac9692

・JSONの解析からの出力reactionsでループを回して、リアクションしたメンバーのidをvarReactionへ格納
image.png

6.リアクションしていないメンバーの抽出

・リアクションしていないメンバーを格納するための配列(varNonReaction)を定義
・グループメンバーと5.で定義したリアクションしたメンバーの差分をアレイフィルターを用いてvarNonReactionへ格納
※アレイフィルタのcontains()の式
 contains(variables('varReaction'), item())
参考:https://qiita.com/k_oshima23/items/cbf66ae53734a9fbc905

image.png

7.リアクションしていないメンバーへTeamsでメンション

・未リアクションメンバーの洗い出しからの本文をループで回してリアクションしていないメンバーからメンショントークンを作成
・1.で選択したメッセージに対してメッセージを投稿する
 ※メンションは現状Teamsの仕様上20人までしか指定できないため
  それ以上メンションをする必要がある場合は考慮が必要
  代替手段としては、@allなどチャネルへメンションするなど

image.png

本当はこの後に前日や当日での遅延設定を行い
同様にリアクションしていないメンバーへのメンションフローを実施したいが未作成
処理が同じのためループによって作成したい
というところで実装検討中・・・

以下、作る際に参考にしたサイト

8.参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?