🚴♂️
Power Automate で Teams のメッセージをスレッドに返信する形で転送する方法
はじめに
2025年1月頃、Teams のメッセージをチャネルに転送する機能がリリースされました。
しかし、チャネル内の特定のスレッドに返信する形で、メッセージを転送する機能はありません。
そのため、Power Automate のフローで、この機能を作成する方法を解説します。
作成手順
手順 | 内容 |
---|---|
1 | トリガーを配置します。 |
2 | ユーザーに転送先を選択させます。 |
3 | メッセージを加工して転送します。 |
1. トリガーの配置
転送機能と同様に、メッセージのアクションから、フローを実行できるようにします。
![]() |
---|
そのため、Teamsコネクタのトリガー「選択されたメッセージに対して (V2)」を配置します。
![]() |
---|
2. 転送先を選択するフロー
ユーザーとフローボットとのアダプティブカードを使った対話で転送先を決定します。
ユーザーは、カードを使って3回の応答を行い、転送先を決定します。
- 1回目のカード:転送先のチーム名をリストから選択
- 2回目のカード:選択したチームのチャネル名をリストから選択
- 3回目のカード:選択したチャネルのスレッド名をリストから選択
トリガーに続けて、カードで対話するフローを作成します。
これらのフローについては、以下の記事の要領で作成します。
3. メッセージを転送するフロー
今回は、以下のようにメッセージを加工して転送します。
転送するメッセージ | 転送後のイメージ |
---|---|
![]() |
![]() |
転送先を選択するフローに続けて、以下のフローを作ります。
まずは、メッセージを作成するために、必要な情報を取得します。
内容 | 画像 |
---|---|
転送元のメッセージ詳細を取得します。 | ![]() |
転送元のチームの情報を取得します。 | ![]() |
転送元のチームのチャネルの一覧を取得します。 | ![]() |
アレイのフィルターを使用し、転送元のメッセージがあるチャネルを特定、情報を取得します。 | ![]() |
フィルターの結果からチャネル名を取得します。 | ![]() |
次に、アクション「作成」を配置し、入力欄でメッセージを作成します。
![]() |
---|
(参考)入力欄の詳細です。
{
"body": {
"contentType": "html",
"content": "<p><a href= @{outputs('メッセージ詳細を取得する')?['body/messageLink']}>この投稿はチーム「@{outputs('転送元メッセージのチームの取得')?['body/displayName']}」のチャネル「@{outputs('作成_転送元チャネル名')}」から転送されました。クリックでジャンプします。</a></p><p>@{if(empty(outputs('メッセージ詳細を取得する')?['body/subject']), null, concat('件名:', outputs('メッセージ詳細を取得する')?['body/subject']))}</p><p>@{outputs('メッセージ詳細を取得する')?['body/body/content']}</p>"
},
"attachments": "@outputs('メッセージ詳細を取得する')?['body/attachments']"
}
最後に、アクション「Microsoft Graph HTTP 要求を送信する」を配置します。
![]() |
---|
項目 | パラメーター |
---|---|
URI | 後出のコードブロックをご覧ください。 |
メソッド | POST |
本文 | 直前の「作成」アクションの出力をセットします。 |
コンテンツタイプ | application/json |
(参考)URIの詳細です。
https://graph.microsoft.com/v1.0/teams/@{outputs('転送先チームの取得')?['body/id']}/channels/@{outputs('作成_チャネルID')}/messages/@{outputs('作成_スレッドID')}/replies
以上でフローの作成は終了です。
参考
カードにおいて、新規投稿orスレッドへの返信を選択させて、回答に応じて条件分岐を行い、メッセージを変更するなど、対話を工夫することで、様々な応用ができます。
Discussion