くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【PowerAutomate】Yammer で新規投稿(質問)された時のみ Teams に通知する

・はじめに

こんにちは、くらっちです。
今回は、PowerAutomate の使い方として、Yammer との連携方法の一例を書きました。

突然ですが、Yammerには「質問」機能が用意されているのをご存知ですか?

「質問」機能では、質問に対して「返信コメント」「いいね」「ベストアンサー」などの様々なアクションが用意されていて、FAQがしやすく、ナレッジ蓄積としても利用できたり、質問にトピックを追加して分類化することもできます。

個人的には質問に対するベストアンサーが分かるってすごく嬉しいです。

f:id:kurakurattyo:20211103234831p:plain

もし、PowerAutomate と組み合わせて「Yammer に新しい質問が投稿されたら、Teams チャネルに通知する」ことができたら、更にいい感じだと思いませんか?

PowerAutomate には Yammer のトリガーに「グループに新しいメッセージがある場合」というのがあります。
これは「新規投稿時」と「返信投稿時」がトリガーとなります。

今回は、返信投稿時は Teams チャネルに通知させず、「Yammerの質問機能で新規投稿がある場合のみ通知する」ということを実装してみましょう。

※この記事は Qiita から移行して、最新の情報に更新しています。

・目次

  • 実装結果
  • 実装方法
     -> トリガー
      -> 1.グループに新しいメッセージがある場合
     -> アクション
      -> 2.ユーザー詳細を取得する
      -> 3.条件
      -> 4.Teams チャネルにメッセージを投稿する
  • 処理結果
  • 補足 --質問機能以外の message_type --

・実装結果

PowerAutomateの完成形はこんな感じです。 すごくシンプル。

f:id:kurakurattyo:20211103225314p:plain

・実装方法

トリガーと各アクションについて説明します。

トリガー

1.グループに新しいメッセージがある場合

トリガーとする Yammer のグループを選択します。
今回は「技術相談 M365 相談箱」グループから新規投稿があった場合を想定しています。

image.png

アクション

2.ユーザー詳細を取得する

トリガーで使用した「グループに新しいメッセージがある場合」からは、投稿者の名前などを取得することができません。
そのため、Yammer の「ユーザー詳細を取得する」アクションで投稿者名などを取得して Teams メッセ―ジ送信時に利用できるようにします。

Yammer のアクションから「ユーザー詳細を取得する」を追加して、トリガーから「メッセージ 送信者」を選択して入力します。

f:id:kurakurattyo:20211103230639p:plain

3.条件

今回のフローで一番重要、というか、重要なのココしかありません。
条件アクションで「質問機能から新規投稿があったかどうか」を判断します。

トリガー「グループに新しいメッセージがある場合」の出力結果は JSON 形式です。
下記はサンプルの出力結果から一部抜粋しました。

{"id":1234567890123456,
"sender_id":987654321098,
"created_at":"2021/05/31 13:23:11 +0000",
"network_id":7777777777,
"message_type":"question",
"sender_type":"user",
"url":"https://www.yammer.com/api/v1/messages/1234567890123456",
"web_url":"https://www.yammer.com/funkitdev01.onmicrosoft.com/messages/1234567890123456",
"group_id":55555555555,
"body":{
"parsed":"新しい質問をしました。",
"plain":"新しい質問をしました。",
"rich":"新しい質問をしました。"},
"thread_id":1234567890123456,
"client_type":"The new Yammer", 
"...略"

上記のうち、今回必要となるのは「message_type」です。
「message_type = question」の場合に、「質問機能から新規投稿が行われた」ことを示します。

そのため、条件アクションには以下のように設定します。

「(トリガーの)メッセージ 種類」 「次の値に等しい」 「question」

image.png

結果「はい」の場合は、Teams チャネルにメッセージを送信します。
「いいえ」の場合は、「終了」アクション、あるいは、返信投稿時の処理をするのが良いでしょう。

4.Teams チャネルにメッセージを投稿する

「message_type」=「quesion」の場合、Teams チャネルにメッセージを送信させるためのTeams アクションを「はいの場合」に追加します。

これでフローは完成です。

・処理結果

通知内容はとてもシンプルにしていますが、こんな感じのメッセージがチャネルに送信されます。

f:id:kurakurattyo:20211103234626p:plain

・補足 --質問機能以外の message_type --

Yammer の質問機能以外からメッセージを送信した時の message_type は、それぞれ下記の通り。
 返信メッセージの場合、「update」
 ディレクションタブに新規投稿の場合、「update」
 賞賛タブに新規投稿の場合、「update」
 投票タブに新規投稿の場合、「poll」
 ※いいね、ベストアンサーなどのアクションの場合は、トリガーは発動しない。