今回の記事では、Teams「チャットまたはチャネルでメッセージを投稿する」アクションでの「Graph で電子メールまたはUPN~が含まれるユーザー詳細が見つかりませんでした」エラーを回避する方法をお伝えしていきます。
課題
Power Automateにて、フローボットから複数人にチャットを送信したい場合、Teamsコネクタの「チャットまたはチャネルでメッセージを投稿する」アクションを利用するかと思います。
その際、正しく送信先(Recipient)を設定しているはずなのに「Graph で電子メールまたはUPN~が含まれるユーザー詳細が見つかりませんでした」というエラーが発生することがあります。
今回は、このエラーの解決策をお伝えします。
エラー原因
Teams「チャットまたはチャネルでメッセージを投稿する」アクションでは、セミコロン区切りのメールアドレスを指定しても複数人にチャットを送ることはできません。
ちなみにOutlookの場合、セミコロン区切りのメールアドレスを指定すると複数人にメールを送信することができます。Teamsアクションの動きと異なるため混乱しやすいかと思います。
解決策
メールアドレスの文字列をセミコロンで分割してアレイに変換し、Apply to Eachループの中でTeamsチャットを送信することで、エラーを回避することができます。
文字列作成・アレイに変換
まずは、emailという名前の文字列変数を初期化します。
値には、複数のメールアドレスがセミコロンで区切られた形式のテキストを入れました。
(※ 最後にセミコロンがついている場合は削除してください)
次に、emailArrayという名前のアレイ型変数を初期化します。
値には下記の式を入れています。
split(variables('email'),';')
ここまでで、メールアドレスをセミコロンで分割してアレイに変換することができました。
Apply to Eachループ内でTeamsチャットを送信
続いて、Apply to each(日本語アクション名は「それぞれに適用する」)を追加します。
「以前の手順から出力を選択」欄には、先ほど作成したアレイ型変数emailArrayを入れます。
最後に、Apply to eachの中にTeams「チャットまたはチャネルでメッセージを投稿する」を入れます。
Recipientには、動的なコンテンツ >「現在のアイテム」を入力します。
こうすることで、メールアドレスの数に応じてループ回数が決定され、複数のチャットを送信することができます。
(下の画像では2つのメールアドレスが含まれていたため、ループが2回回って2通のチャットを送信できました)
まとめ
Power Automateで複数人にTeamsチャットを送ろうとした際に表示される「Graph で電子メールまたはUPN~が含まれるユーザー詳細が見つかりませんでした」エラーを回避する方法をお伝えしました。
Outlookアクションの動きと異なるため戸惑うかと思いますが、Apply to Eachを使うことで複数人同時にチャットを送ることができます。エラーが出てしまった場合はぜひお試しください。