Vivaエンゲージ(Yammer)コミュニティの投稿を自動でExcelに取得する

## はじめに
標準の分析レポートではコミュニティに対してどれだけの人数がアクセスしたか、何件のコメントがあったかを見る事ができます。
一方で、誰がコメントしたかなどの細かい情報はそこからは確認できません。

もし、細かい分析を実施するとなると、**Vivaエンゲージのコミュニティ投稿を全て遡っていき、「誰が」「いつ」「何を」投稿したかを、手動で計上するなどのオペレーションが必要となってきます。**
過去の投稿を遡るのはスクロールと読み込みが発生するので思ったより結構面倒です。。
![スクリーンショット 2023-05-29 9.19.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/0c2e96e2-72ea-dc10-e417-fa07ef1f4f47.png)

こちらの記事ではコミュニティへの投稿をPower Automateで自動的に取得する方法を紹介します。

## 何ができるか
1．コミュニティへの新規投稿をPower Automateが自動的にExcelにまとめてくれます
2．Excelに取得したデータからPower BIを使って可視化と分析ができます

**・可視化の一例**
![スクリーンショット 2023-05-22 11.38.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/84e764ee-a572-10e5-ce04-6529ddee8723.png)
こちらのレポートの例だと、
`・誰がどれだけコメントをしているか`
`・メンバーの中で総勢何名が投稿しているか（ユニーク投稿者数）`
`・どの部署がよくコメントをしているか`
`・新規スレッドと返信コメントの比率はどれくらいか（標準機能はどちらも一緒で計上される）`
など、自分の見たい角度で更に詳しい分析する事ができます。

本記事ではPower Automateを使った投稿の自動取得について解説していきます。

## Power Automateの設定
**■フローの前提条件**
・特定のコミュニティへの新規投稿（フロー設定後）が取得できます
　　※過去投稿は取得できないため、ご注意下さい
・トリガー、アクションはコネクターによって既定されています
　　[公開情報：コネクタのリファレンス](https://learn.microsoft.com/ja-jp/connectors/yammer/)
・本記事ではテナントのOneDrive上のExcelにデータを取得します
・検証テナントとしてMicrosoft 365 E5ライセンスを利用しております。ライセンスによって制限の可能性がございます。ご了承下さい
・本記事は2023年5月に執筆しておりますので今後の変更等により、期待通りに動作しない可能性がございます。ご了承下さい
・2023年5月現在公開情報としてViva Engage REST API の制限により、アクションとトリガーはすべてのメッセージを返すことを保証しないとの記述がございます。 [Viva Engage リファレンス](https://learn.microsoft.com/ja-jp/connectors/yammer/)


**■自動化の概要図**
![スクリーンショット 2023-05-22 13.21.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/5ea4626b-0aae-e08e-452c-20e930464bfa.png)
この自動化ではコミュニティへの投稿がある度に、投稿内容をExcelに取得します。
取得しておくとデータが溜まるので、Power BIを使って可視化する事ができます。

**■Power Automateフローの全体像**
肝となるのはPower Automateのクラウドフローです。下記がフローの全体像となります。
※トリガー、条件、最後のアクションのみOpenにしています
![スクリーンショット 2023-05-29 10.49.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/e15e4c33-c7a0-480b-ac4e-d29a69930248.png)
それではフローの作成手順を説明していきたいと思います。

### 1．Excelの準備（事前準備）
まずは投稿を溜めていくデータベース（ここではExcel）をOneDrive上に作成していきます。
列に取得したい値を入力していきましょう。ここで入力した列が後のAutomateで設定できる列となります。

1点補足すると、「新規投稿／返信」という列は「新規のスレッド投稿」か、「スレッドに対する返信」かを判別するために変数を入れるので少しカスタマイズしました。
※必須では無いのでスキップいただいても良いです。
![スクリーンショット 2023-05-29 9.31.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/f841cd5b-5308-3823-fb0d-9005844a9e0a.png)
なお、この列はテーブル化する事を忘れないようにして下さい（テーブル化しないとAutomateで使えないため）

### 2．フローの作成
まずは自動化したクラウドフローを構築していきます。
フローのトリガーは「グループに新しいメッセージがある場合」を選択して作成を押下します。
![スクリーンショット 2023-05-29 9.37.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/1ea8f60b-55bc-b6f3-01a3-2d30fc1fa376.png)

トリガーの設定ではグループIDに取得したいコミュニティを選択します。ネットワークIDはコミュニティが所属するネットワークを選択します。
![スクリーンショット 2023-05-29 9.40.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/bc286f94-c84b-1c57-02cc-4ce0cff31311.png)

新しいステップを押下し、アクションを設定していきます。
Yammerのコネクターの「ユーザー詳細を取得する」を選択します。
![スクリーンショット 2023-05-29 9.41.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/250ec2e6-5979-9103-3b9e-e37bd881b802.png)

「ユーザーID」には動的なコンテンツから「メッセージ 送信者」を挿入します。
![スクリーンショット 2023-05-29 9.43.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/684c57a7-4966-6eef-75d8-1adb127b0bd7.png)

新しいステップを押下し、「タイム　ゾーンの変換」を選択します。
ここは必須ではありませんが、投稿日時がUTCとなるため日本時間（JST）に変換するために設定します。
![スクリーンショット 2023-05-29 9.45.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/d6571cbf-d0da-63ff-a9da-c062563bbd30.png)

基準時間には「メッセージ作成日時」を設定します。
![スクリーンショット 2023-05-29 9.46.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/a35c49a3-6910-4d4d-b8c5-6eb8779e419c.png)

変換元と変換先のタイムゾーンは下記のように設定して下さい（書式はお好みで）
![スクリーンショット 2023-05-29 9.47.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/1efa5334-e891-00b9-efa4-103ccc81ffd5.png)

### 任意設定(「新規のスレッド投稿」か、「スレッドに対する返信」かを判別)
変数設定は、任意設定のため、変数が難しいと感じる方や不要な方は変数部分はスキップいただいて大丈夫です。

新しいステップを押下し、変数を設定していきます。「変数を初期化する」を選択します。
![スクリーンショット 2023-05-29 9.52.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/701267af-341a-efcf-8cdc-14cb77132842.png)

名前は「NewPost」、種類は「文字列」を選択します。
![スクリーンショット 2023-05-29 9.52.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/b14c11bb-44f9-fe13-807d-9e05a997367e.png)

新しいステップを押下し、2つ目の変数を設定していきます。「変数を初期化する」を選択します。
![スクリーンショット 2023-05-29 9.53.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/d10c95c7-9027-e726-2ac9-8fd09d84bff3.png)

名前は「Reply」、種類は「文字列」を選択します。値に「メッセージ 返信先」を設定します。
![スクリーンショット 2023-05-29 9.56.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/1870136e-32ee-4f56-58bb-e358f29b9b8b.png)

### 2．フローの作成（続き）
新しいステップを押下し、Office365 Usersのコネクタから「ユーザー プロフィールの取得（V2）」を選択します。
![スクリーンショット 2023-05-29 9.58.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/fc819176-fcb8-d2cf-236c-e59826c55cb8.png)

UPNには「ユーザー 電子メール」の動的なコンテンツを挿入します。
![スクリーンショット 2023-05-29 9.59.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/e477b35e-1a88-34f5-db73-547988b469a2.png)

### 任意設定(「新規のスレッド投稿」か、「スレッドに対する返信」かを判別)
投稿とスレッド返信の判別をするための条件を設定します。
![スクリーンショット 2023-05-29 10.01.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/0680c8ff-ad97-1c0d-cb5d-c1785924c830.png)

値には関数の式を設定します。
```
empty(variables('Reply'))
```
![スクリーンショット 2023-05-29 10.09.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/8a7d1792-65c6-6960-df2b-2184a7f015de.png)

等号は「次の値に等しい」のまま「true」を設定します。
![スクリーンショット 2023-05-29 10.04.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/59e60478-4dce-544b-f991-e10dc72b06fc.png)

「はい」の場合のアクションを追加します。「変数の設定」を選択します。
![スクリーンショット 2023-05-29 10.06.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/ea657f2a-2021-94fb-912c-2fa5164de758.png)

名前は「NewPost」を選択。値は「新規投稿」とベタ打ちで入力します。
![スクリーンショット 2023-05-29 10.07.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/34b81b68-f877-fd4d-ebab-00a74dbee710.png)

「いいえ」の場合のアクションを追加します。「変数の設定」を選択します。
![スクリーンショット 2023-05-29 10.11.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/5f86fc95-d2e9-ab82-6143-ac459e449158.png)

名前は「Reply」を選択。値は「新規投稿」とベタ打ちで入力します。
![スクリーンショット 2023-05-29 10.11.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/1155941e-4fef-2a50-4d25-eff71267c808.png)

### 2．フローの作成（続き）
ここからようやくExcelに投稿の情報を入力するアクションになります。
Excel Online（Business）の「表に行を追加」のアクションを選択します。
![スクリーンショット 2023-05-29 10.15.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/f78c2d60-50b8-a8eb-0715-11a5c0da1366.png)

Excelの格納されている場所やファイルパスを設定していきます。
ここでは事前準備でOneDrive上に作成したExcelがあるので、そちらを設定していきます。
※テーブル設定が済んでいないとテーブルには値が出てこないので注意。
![スクリーンショット 2023-05-29 10.17.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/445cfd1e-ad99-b9c9-ae48-9edfd4874e85.png)

値が設定できると選択肢が追加されるので、必要な情報を選択していきます。
ここではここまで設定したコネクターによって取得できる情報が異なってきます。
ポイントとして、Yammerコネクターでは上手く名前など取れないところは「Office365のコネクター」、時刻がUTCになるところは「タイムゾーンの変換」での設定を入れていきます
![スクリーンショット 2023-05-29 10.22.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/e333f426-e6d7-e7c1-8eb6-7a7a6e2fa856.png)

ご参考までに、本文は「メッセージ メッセージの本文 プレーン」を入れています。
![スクリーンショット 2023-05-29 10.21.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/fadab32f-5986-a433-9ac4-1acf4af2cd85.png)

URLはWeb URLを指定しています。
![スクリーンショット 2023-05-29 10.21.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/93370ff0-0b7a-3e5f-dcac-3fa44d5d63a2.png)

変数を設定された方は忘れずに判別する列に入力しましょう（同じ列に両方入れます）
![スクリーンショット 2023-05-29 10.24.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/097e6e3a-2f83-680c-607c-762792b59767.png)

### 動作確認
完成したら忘れずに保存しましょう。特にエラーが出なければクラウドフローの設定は完了となります！
お疲れ様でした〜！！
![スクリーンショット 2023-05-29 10.26.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/450b3a8f-f7f4-4c6c-fa91-5b4cf33c899f.png)

では実際に動作するかテストしてみましょう。クラウドフローをONにした状態で、設定したコミュニティにテストで投稿してみます。
ここでは新規スレッドを投稿する人と、コメントをする人を別に分けて実施しました。

**・テスト画面**
![スクリーンショット 2023-05-29 10.31.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/cef207d9-b3a5-24a4-d338-7b8eab2a8660.png)


**上手くExcelに入りました。取得したかった、「誰が（表示名）」「いつ（投稿日時）」「何を（本文）」はしっかりExcelに自動的に取得できています。**
また、新規スレッドか返信を判別する変数もちゃんと動いています。
![スクリーンショット 2023-05-29 10.30.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/11931175-a2a7-3f2d-cecd-fd8dfca5711e.png)

このようにVivaエンゲージの投稿内容を溜めるデータベースを作成する事で、いちいち過去投稿を振り返らなくて良い事と、これを元に冒頭お見せしたようなPower BIでの可視化ができると思います。

## 最後に
Power BIを使った事がなく、使い始めてみたいなどありましたら、初心者向けに手順を下記ブログに書いてありますので、こちらもご参考下さい。
[Power BI サービス練習帳](https://qiita.com/shinyasasaki/items/391d50c2508794e8fcfd)

それではみなさま、楽しいVivaライフを！