Power AutomateでTeamsに自動投稿するときに個人名表示を回避する方法

こんにちわ、 [のりじ](https://x.com/nori790822)です。

Power AutomateのMicrosoft Teamsコネクタ「チャットまたはチャネルでメッセージを投稿する」アクションでは、投稿者を「フローボット」か「ユーザー」か選べます。（Power Virtual Agentsはずっと「プレビュー」のままなので触れません・・・）

![tm01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/c7d960fc-5a7f-99cd-df17-168112aff9c7.jpeg)

「フローボット」は、ユーザーが手動でメッセージを送信したのではなく、自動的に送信されたメッセージであることを明確に示すため投稿者の部分が **「Workflows経由の（個人名）」** と表記されます。
ちなみに、「個人名」はフローを実行したユーザーの名前です。

以前は「フローボット」を選ぶと、「Workflows経由」のように個人名は表記されなかったんですが、現在はフローをトリガーしたユーザーの名前も併記される仕様に変更された模様。

今回は、以前の「フローボット」を選択したときと同じような名前の表記にできるのか？というのを試してみた、な内容です。

:::note warn
本記事の方法は、MSの仕様変更によって利用できなくなる可能性があることはご承知おきください！
以下の記事も併せてご確認ください。（ご指摘いただいた皆様ありがとうございました）
- [Microsoft Teams 内の Office 365 コネクタの廃止(Incoming Webhookの移行)](https://qiita.com/tomoyasasaki1204/items/48ea14c442ea80171daa)
:::

# 1. 「受信Webhook」を利用する

現時点では、Microsoft Teamsコネクタ「チャットまたはチャネルでメッセージを投稿する」アクションを利用して「フローボット」を選択すると、投稿者名は **「Workflows経由の（個人名）」** となります。変更はできません。
なので、コネクタ以外の方法を利用する必要がある、ということで今回はTeamsの「受信Webhook」を利用してみます。

## 1-1. Incoming Webhookの追加

Microsoft Teams側の設定です。
クラウドフローで投稿したいチャネルを選びます。

![tm02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/f2ca50ca-2b0d-9f9c-6920-c35ed4ecfc13.jpeg)

今回は「一般（General）」チャネルに投稿するとします。
右側の「・・・」をクリックして「チャネルを管理」をクリック。

![tm03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/c28be552-fadc-53d1-cd22-ca467f3d40d1.jpeg)

コネクタ項目の「編集」をクリックします。

![tm04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/4d7f7f3f-c0f0-8cd3-93f9-9fe254498db4.jpeg)

検索窓に「Webhook」と入力すると「Incoming Webhook」が表示されるので「Add」をクリック。

![tm05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/967a5b2f-4166-51ce-a14d-9b94c4b1dbc3.jpeg)

画面通り「追加」をクリックします。

## 1-2. Incoming Webhookの設定

![tm06-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/33df6614-b499-206c-6e0d-af08c2da78a2.jpeg)

Webhookに名前を付けます。今回は「管理者の自動投稿」と日本語で付けてみました。

![tm06-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/e2b07b62-648f-7c81-c5d9-9412b9e1154e.jpeg)

下の方にスクロールすると「Create」ボタンがあるのでクリック。

![tm06-3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/ed32d770-a4e1-0403-734e-8bf91a1611e5.jpeg)

WebhookのURLが表示されるのでコピペします。（あとからPower Automateで利用します）
「Done」をクリックすると設定は完了です。

# 2. フローの作成

![tm-all.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/2cd2343e-950c-b361-c191-99de8ea9a480.jpeg)

作成したフローはこちら。トリガーで入力したテキストをTeamsに投稿するだけの非常にシンプルなフローです。

## 2-1. トリガーの設定

![tm07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/2171bbb1-f5ad-3b31-1b1b-59aa50af2f1b.jpeg)

「テキスト」を選択します。

## 2-2. アクションの設定：HTTPコネクタ

HTTPコネクタを利用します。

![tm08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/4e9fe23e-6bda-2908-e59a-daf34a73bfe7.jpeg)

1. 方法：「POST」を選択
2. URI：「1-2.Incoming Webhookの設定」でコピペしたURLを入力
3. ヘッダー：左「Content-Type」、右「application/json」を入力
4. 本文：以下の内容をコピペ
```
{
  "text": @{triggerBody()['text']}
}
```
「 @{triggerBody()['text']}」の部分は適宜変更してください。

以上でフローは完成です！

# 3. 実行結果

![tm09.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/cbf0a114-6916-b86f-0f23-5cc928dd2332.jpeg)

このように、フローを実行したユーザーの名前を出さずにTeamsへ投稿できました。

# さいごに

「Incoming Webhook」の名前には日本語が使えるようです。（個人的にびっくりしたｗ）
HTTPコネクタを利用するには有償ライセンスが必要だったり、今後の仕様変更で本記事の方法が使えなくなる可能性もあるのでご注意いただければ！

- [受信 Webhook を作成する](https://learn.microsoft.com/ja-jp/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook?tabs=newteams%2Cdotnet)