Teamsで送ったPraiseを可視化して、簡単なピアボーナスの仕組みを作ってみよう(前編)

巷ではピアボーナスという概念が流行っているそうですが、TeamsにもPraiseという、チームメンバーをほめたたえる機能があります。こういうやつですね。

現時点ではAPIが対応しておらず、誰がどれだけ称賛されたのかがわかりません。そこで、Power Automate を利用して、Praiseが送られたら Common Data Service にレコードを作成し、そのデータをもとにPower BI でレポーティングしてみました。

1. CDSのカスタムエンティティを作成する

Praiseのデータを貯めるエンティティ(Praise List)と、表示用のユーザーリスト(Praise Users)の2つを作成します。

Praise Users
あらかじめチームのメンバーを登録しておきます。

FieldDescription
userName氏名
UPNUPN
photoURLユーザーの写真のURL(レポートに利用するため。公開されているURL)

Praise List

FieldDescription
fromUPN称賛した人のUPN
toUPN称賛された人のUPN
praisedDatetime称賛した(された)日時
praiseType称賛の種類

2. Power Automate で Teamsへの投稿をトリガーにしたフローを作成する

フローの全体像はこんな感じです。

特定のチャネルにメッセージが投稿されたら内容を判断し、Praiseだったら先に作成した「Praise List」に新しいレコードを作成します。
フロー自体には特にむつかしいことはないのですが、なぜかTeamsメッセージのAttachmentsの部分だけJSONがうまく取得・解析できず、仕方なく前半の部分で文字列関数を使ったりしてデータを切り出しています。

レコードに登録する内容は以下です:

  • Praiseした人のUPN
  • Praiseされた人のUPN
  • Praiseされた日時
  • Praiseの種類(「達成者」とか「クリエイティブ」といったもの)

実際にフローが正しく動くと、Praiseするたびにこんな感じでデータがたまっていきます。