Vivaエンゲージ(Yammer)でグループメンション的な事を実現する（Power Automate / Teamsと連携）

# はじめに
**Vivaエンゲージ（Yammer）ってグループメンションできないの？！**
よくVivaエンゲージをお使いの皆様に言われる事が多いのですが、実はできないんですよね。（※2023年5月現在）

・Vivaエンゲージでは、個人名でメンションする必要がある（参考画像）
![スクリーンショット 2023-05-21 22.39.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/9230c48f-1a47-caaf-6ef9-c46f0251c995.png)

Teamsと同じようにメンション、通知をしたい！という要望もあるので
Power AutomateとTeamsとを組み合わせた方法を考えてみました。

日本マイクロソフトの社内でもVivaエンゲージを活用していますが、これと同じ仕組みを使って特定の投稿などをチャットに通知させるようにしているので、皆様の環境でも真似して使ってみて下さい。

# できる事
・Vivaエンゲージの投稿でハッシュタグを使って投稿すると、Teamsの特定チャネルタグのメンバーがメンション（通知）される
**→擬似的にグループメンションができるようになります**
![スクリーンショット 2023-05-22 10.32.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/fc94376c-b9e1-edb2-460f-1b839fe435a4.png)

# 前提条件
・特定のコミュニティに対する投稿を想定しています
・特定の文字列を利用。ハッシュタグ推奨
　※普通の文字で指定すると文脈の中で意図せず使われる事が考えられるため
・検索対象が多い場合は、Power Automateの制限に抵触する可能性があります
・Teamsのメンションはタグを使用する（タグはメンション先の範囲がコントロールしやすいため）
・本記事は2023年5月に執筆しておりますので今後の変更等により、期待通りに動作しない可能性がございます。ご了承下さい
・2023年5月現在公開情報としてViva Engage REST API の制限により、アクションとトリガーはすべてのメッセージを返すことを保証しないとの記述がございます。 [Viva Engage リファレンス](https://learn.microsoft.com/ja-jp/connectors/yammer/)

# 実装方法
## 1.　Teams
・投稿先のチーム、チャネルを決める
![スクリーンショット 2023-05-19 15.38.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/4768d324-5d81-bab1-0dbd-8d44edddc185.png)

・タグを作成しメンションしたいメンバーを指定する
![スクリーンショット 2023-05-19 15.39.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/07babb3b-04a4-30b4-692a-7ec863e0a886.png)

今回はデモ環境の「ラーニング広場」というチームの「17.Vivaエンゲージ投稿」というチャネルに通知をさせます。
タグの名前は「Vivaエンゲージのタグ」です。

これでTeams側の準備は完了です。

## 2.Power Automate
### Power Automate全体図
下記が今回作成するPower Automateの全体図です。
対象となるコミュニティに特定の文字が含まれるテキストがあった場合のみ、先程用意したチャネルに対してタグメンションが飛ぶようになっています。

![スクリーンショット 2023-05-19 15.48.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/145d3d8f-6a9b-eaea-67ef-2c9974c14aa9.png)

それではクラウドフローを設定していきましょう。
### クラウドフローの作成
Power Automateを開いていただき「自動化したクラウドフロー」を選択します。
![スクリーンショット 2023-05-19 19.05.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/b37b17eb-aec3-48f8-0f22-7f1664b10e67.png)

フロー名は任意の名前を入力します。トリガーはこの後説明がありますが、スキップかYammerの「グループに新しいメッセージがある場合」を選択します。
![スクリーンショット 2023-05-19 19.06.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/ea0478b8-5470-97d6-c76a-aee000901ad1.png)

### トリガーの指定
1．検索窓にYammerと入力し、「グループに新しいメッセージがある場合」を選択します。
![スクリーンショット 2023-05-19 15.58.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/16266ec4-47b3-9c96-6963-79ed8c58ccda.png)

![スクリーンショット 2023-05-19 13.55.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/c23e7799-c80c-ee80-0833-c2555cfac2db.png)

2．グループIDに対象のコミュニティの名前、ネットワークIDには組織のネットワークを指定します。
![スクリーンショット 2023-05-19 13.55.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/e05b66b8-49e0-98d5-56b2-af65e719f18b.png)

これでトリガーの指定は完了です。

### アクションの指定
これからアクションを指定していきます。

`検索対象のハッシュタグを指定する`

1．「新しいステップ」からアクションを追加します。「テキストの位置の検索」を指定します。
![スクリーンショット 2023-05-19 19.11.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/55f86fd1-85f3-0dd8-b275-cb0d25e069ac.png)

2．テキストは検索のソースを指定します。ここには動的なコンテンツから「メッセージ メッセージの本文 プレーン」を挿入します。（Vivaエンゲージの本文を取得）
検索テキストには検索対象となるハッシュタグを入力します。
![スクリーンショット 2023-05-19 13.56.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/2d23a661-98cb-a425-8ac1-214b1273658d.png)
このような形で入力できれば完了です。
![スクリーンショット 2023-05-19 13.56.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/bd29c835-672b-c0d1-d255-5e8685ed7126.png)

`ハッシュタグを検知するための条件を追加する`
1．「新しいステップ」からアクションを追加します。コントロールの「条件」を指定します
![スクリーンショット 2023-05-19 19.15.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/95adab9d-1d16-c591-6f10-bb2a77d752d6.png)

2．値の部分には動的なコンテンツから「テキストの位置」を追加します。
真ん中の値は「次の値以上」を選択し、1番右側は「0（ゼロ）」を選択します。
![スクリーンショット 2023-05-19 15.47.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/e303934b-7302-baa8-4f52-be24db29fc30.png)

`分岐の設定`
1．「はいの場合」においてアクションの追加をしていきます。
![スクリーンショット 2023-05-19 19.30.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/8f3a4217-305f-ecdc-5ca9-90376b7eae4b.png)

2．アクションで「タグの @mention トークンを取得する」を選択します。
![スクリーンショット 2023-05-19 19.34.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/6f2d4e41-2e3b-7305-50a7-3c2a5819f401.png)

3．事前に決めたチームと、タグを取得します。
![スクリーンショット 2023-05-19 19.35.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/47685741-c4ab-1ae1-6756-76c94c4eb135.png)

4．アクションを追加し、「チャットまたはチャネルでメッセージを投稿する」を選択します
![スクリーンショット 2023-05-19 19.36.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/3adc3219-43c4-3192-9e35-794657b289d3.png)

5．投稿者は「ユーザー」、投稿先は「Channel」、Teamは「事前に決めたチーム」、Channelは「事前に決めたチャネル」、Messageに「@ mention タグ」を動的なコンテンツから追加します。
![スクリーンショット 2023-05-19 19.37.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/21a1d11e-1bb4-06a3-4cdc-592b427640a6.png)

ここではTeamsの投稿メッセージを作る事ができますが、「@ mention タグ」は最低でも入れておきましょう。
また、Vivaエンゲージのどの投稿かをわかりやすくするために本文やWeb URLを入れておく事を推奨します。
注意点としては、動的コンテンツを選ぶ際にも注意がでてきますが「ユーザー」を選ばないといけないので、そこはご注意下さい。

Power Automateのフローができたら、一度条件に合うもの／合わないものでテストをしてみて下さい。


# 結果
指定したハッシュタグで投稿がされた場合は、タグに所属するメンバーのTeamsに通知がされるようになりました。

**・Vivaエンゲージの画面**
この投稿が↓↓↓
![スクリーンショット 2023-05-19 15.53.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/d30a49ec-53bc-d714-6256-d0519ac62055.png)

**・Teamsの画面**
Teamsに投稿され、通知されてます。
![スクリーンショット 2023-05-19 15.20.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2943951/75608331-1e05-43ea-077d-945c93ce3b08.png)

Vivaエンゲージ単体ではできない事もPower AutomateやTeamsの活用するとできるようになりましたね。
他にも活用を進化させる方法があれば紹介していきますので[弊社のOrganizationをフォロー](https://qiita.com/organizations/microsoftteams)お願いします！