✍️

teamsの称賛(Praise)を自動集計する

2025/03/12に公開

はじめに

teamsアプリの称賛(Praise)は皆さんご存知でしょうか?
チャネルやチャットにて個人に称賛を送ることができる機能です。
今回はチャネルで称賛が投稿された時にExcelに誰が誰に何を送ったかを集計できる機能を作成してみました。

対象読者

  • Power Automate初心者の方向け

記事を読むメリット

  • チャネルで称賛が投稿された時にExcelに誰が誰に何を送ったかを集計できる処理が作れる

実装方法

Excelの用意

  1. Excelシートを新規作成し、下記項目を追加していきます

  2. 入力した見出し項目を選択し、[挿入]→[テーブル]を選択

  3. [先頭行をテーブルの見出しとして使用する]にチェックを入れ、OKをクリック

    これでexcelの用意は完了です!

Power Automateの用意

  1. Power Automateを開く

  2. [作成]を選択し[自動化したクラウドフロー]を選択

  3. フローの設定
    フロー名「称賛_自動集計」
    フローのトリガー「チャネルに新しいメッセージが追加されたとき」

  4. [作成]をクリックすると編集画面が出てきます

  5. パラメータの設定
    中央の【チャネルに新しいメッセージが追加されたとき】を選択しパラメータの設定を行います
    チーム:teamsのチーム名
    チャネル:チームを選択するとチャネルが出てきます
    ※このフローはpublicチャネルのみ実行できます!privateチャネルではできないのでご注意ください

  6. アクションの追加(選択)
    +マークをクリックしフローの追加をします
    検索欄で「選択」と入力しデータ操作の選択をクリック

  7. 選択の編集
    Fromを選択し選択後出てくる下記アイコンの[式を挿入]をクリック

    下記式を入力し追加

    triggerBody()?['attachments']
    

    続けて[Map]にキーを入力
    キー:id

  8. アクションの追加(条件)
    +マークをクリックしフローの追加をします
    検索欄で「条件」と入力しコントロールの条件をクリック

  9. 条件の編集
    値の選択を選択し選択後出てくる下記アイコンの[式を挿入]をクリック
    下記式を入力し追加

    empty(body('選択'))
    

    条件欄は[is not equal to]を選択し
    値の欄には「true」と直接入力します

  10. アクションの追加(日時)
    条件内の真の中+をクリックしフローの追加をします

    検索欄で「日時」と入力し組み込みの日時内のタイムゾーンの変換をクリック

  11. タイムゾーンの変換の編集
    Base timeを選択し⚡︎マークを選択

    [メッセージ 作成のタイムスタンプ]を選択

    Source time zoneは[(UTC) Coordinated Universal Time]
    Destination time zoneは[(UTC+09:00) Osaka, Sapporo, Tokyo]
    Time unitを選択しカスタム値を入力するし下記を入力

    yyyy/MM/dd HH:mm
    

  12. アクションの追加(データ操作)
    +マークをクリックしフローの追加をします
    検索欄で「データ操作」と入力し組み込みのデータ操作内の選択をクリック

  13. SelectAltTextの編集
    分かりやすいようにタイトルを選択し「SelectAltText」と入力します
    Fromを選択後出てくるアイコンの[式を挿入]をクリックし下記式を入力

    array(json(first(triggerBody()?['attachments'])?['content']))
    

    続けて[Map]にキーと値を入力
    キー:「altText」と直接入力
    値:下記式を入力

    item()?['body']?[0]?['items']?[1]['altText']
    

  14. アクションの追加(データ操作)
    +マークをクリックしフローの追加をします
    検索欄で「データ操作」と入力し組み込みのデータ操作内の選択をクリック

  15. PraiseTypeの編集
    タイトル(選択2)を選択し「PraiseType」と入力します
    Map右にあるアイコンをクリックしテキストモードに切り替える

    fromを選択し⚡︎マークを選択後、[SelectAltTextのOutput(出力)]を選択

    mapを選択後出てくるアイコンの[式を挿入]をクリックし下記式を入力

    item()?['altText']
    
  16. アクションの追加(データ操作)
    +マークをクリックしフローの追加をします
    検索欄で「データ操作」と入力し組み込みのデータ操作内の結合をクリック

  17. 結合の編集
    fromを選択し⚡︎マークを選択後、[PraiseTypeのOutput(出力)]を選択

    Join withには「,」カンマを入力

  18. アクションの追加(データ操作)
    +マークをクリックしフローの追加をします
    検索欄で「データ操作」と入力し組み込みのデータ操作内の選択をクリック

  19. toID取得の編集
    タイトル(選択3)を選択し「toID取得」と入力します
    fromを選択後出てくるアイコンの[式を挿入]をクリックし下記式を入力

    triggerBody()?['mentions']
    

    続けて[Map]にキーと値を入力
    キー:「id」と直接入力
    値:下記式を入力

    item()?[‘mentioned’]?[‘user’]?[‘id’]
    
  20. アクションの追加(データ操作)
    +マークをクリックしフローの追加をします
    検索欄で「コントロール」と入力しコントロールのそれぞれに適用するをクリック

  21. コントロールの編集
    Select an output from previous stepsを選択し、⚡︎マークを選択後、[toID取得のOutput(出力)]を選択

  22. アクションの追加(Office)
    それぞれに適用する内の+マークをクリックしフローの追加をします
    検索欄で「Office」と入力しOffice 365 Usersのユーザープロフィールの取
    得をクリック

  23. fromUserの編集
    タイトルを選択し「fromUser」と入力します
    ユーザー (UPN)を選択し、⚡︎マークを選択後、[メッセージ from ユーザID]を選択

  24. アクションの追加(Office)
    それぞれに適用する内の処理を追加
    検索欄で「Office」と入力しOffice 365 Usersのユーザープロフィールの取
    得をクリック

  25. toUserの編集
    タイトルを選択し「toUser」と入力します
    ユーザー (UPN)を選択し、アイコンの[式を挿入]をクリックし下記式を入力

    items('Apply_to_each')?['id']
    
  26. アクションの追加(Excel)
    それぞれに適用する内の処理を追加
    検索欄で「Excel」と入力しExcel Onlineの表に行を追加をクリック

  27. Excelに入力する項目の設定
    下記項目を入力

    場所:OneDrive for Business
    ドキュメント ライブラリ:ドキュメント
    ファイル:上記で作成したExcelファイル
    テーブル:Excelファイルの作成したテーブル名
    詳細パラメータでExcelのテーブルのヘッド部分が出てくるので下記を入力
    送信者名:fromUserの表示名
    送信者アドレス:fromUserのメール
    受信者名:toUserの表示名
    受信者アドレス:toUserのメール
    送信日時:タイムゾーンの変換のConverted time
    称賛タイプ:出力(結合)

  28. 保存し、テスト

    このように処理が作成されますので右上の保存をしテストを行なってください
    正常に動作するとExcelファイルに称賛の情報が出力されるはずです!

終わりに

今回はPower Automateを使用した称賛の集計機能を作成してみました。
Power AutomateはExcelへの出力にとどまらず、さまざまな業務で活用できる便利なツールです。
弊社では、エンジニア同士の交流を促進するための週報で活用しており、定期的な集計や報告作業を自動化しています。設定後は、非エンジニアでも簡単に操作できるため、チーム全体で効率よく活用できるのが大きな魅力です。
Power Automateは業務改善や効率化の強力な味方となるツールであり、今後も積極的に活用していきたいと思います。

BLT SDC Tech Blog

Discussion