Power Automateを使ってTeamsのユーザにメンションを通知する方法

要約

Power AutomateでMicrosoft Teamsに投稿する手段であるフローボットは、ユーザに対してメンションを送ることができ、対象のユーザに通知がしっかり届く。
本記事では、Incoming Webhookを介したダミーチャネルへの投稿をPower Automateで検知して、フローボットがメンション付きで投稿し直すという荒業を紹介している。

前回のあらすじ

Microsoft TeamsのIncoming Webhookを用いて外部からユーザへのメンションを試みたが、ユーザに通知が届かないという仕様に涙を呑んだ。
それさえできれば、他サービスの色々なアクティビティをTeams上で確認するのが簡単になるのに……。
それにしても「メンションだけどアクティビティフィードには通知されない」ってどういうことなんでしょうね。

Microsoft TeamsのIncoming Webhookは (まだ) ユーザにメンションを通知できない

Power Automateのフローボット

Power Automate(旧 Microsoft Flow)とは、業務プロセスの自動化により生産性を向上させるワークフローをノーコードで作成できるクラウドRPAサービスです。
Power Automateの利用は有償ですが、Microsoft 365またはOffice 365の一部プランを契約していれば、標準コネクタを用いたワークフローの作成が可能です。
本記事はMicrosoft 365の契約による標準機能の範囲内で実現可能です。

Power AutomateでMicrosoft Teamsに投稿する手段としてフローボットというコネクタがあり、なんとこれはユーザに通知付きメンションを送ることができます。
メンションの方法は「対象ユーザのTeamsアカウントのメールアドレスを<at>タグで囲む」です。
ただしチャネルやチーム全体にメンションすることはできないのでご注意を。

自動メンション通知を実現する仕組み

実現した機能は「Zendesk Supportでサポートチケットに動きがあったらTeamsで担当者にメンション通知を飛ばす」というものです。

仕組みの概略図と流れを以下に示します。

⓪ Teamsに、ユーザへの通知用チャネル(サポートチャネル)とは別に、ダミーとなるチャネルを作成します。
ダミーチャネルにはPower Automateのフロー作成者だけがアクセスできれば良いので、自分で適当なチームを作成しておきます。
また、ダミーチャネルにIncoming Webhookコネクタを追加し、Webhook URLを取得します。

① Zendeskのトリガー機能で、TeamsのダミーチャネルにWebhook経由で仮メッセージを投稿します。
このメッセージには「誰が担当者(メンション先)か」と「サポートチャネルに投稿したい本文」を含めるようにします。

② Power Automateのトリガー「チャネルに新しいメッセージが追加されたとき」を使い、ダミーチャネルへの投稿を検知します。

🤔 Power Automateのアクション「JSON の解析」を使い、ダミーチャネルへの投稿メッセージを頑張って解析して、メンション先と本文を取り出します。
メンション先の情報は 「<at>メンション先ユーザのアドレス</at>」 という形に整形しておきます。

③ Power Automateのアクション「メッセージをフロー ボットとしてチャンネルに投稿する」を使い、メンション先を含めたメッセージをサポートチャネルへ投稿します。

結果

Power Automateのフローボットによる投稿は以下のようになりました。

以前の記事でお見せしたメンションモドキと見分けがつきませんが、今度はユーザに通知が届く、ちゃんとしたメンションです。

めでたしめでたし?

そういったわけで、弊社の担当者はサポートチケットの受信や更新をTeamsの通知で受け取れるようになりました。
もう半年以上前からですが。

本事例でPower Automateを使って良かったと感じた点がいくつかありました。

  • 環境構築と管理が不要、フロー作成後はクラウドで勝手に動いてくれる
  • Teams上に情報を集約できるようになった
    (サポートの他にも、自社TwitterアカウントのツイートをTeamsに横流ししています)
  • 新しいサービスを契約せずに済んだ(Microsoft 365を契約している場合)

一方で課題もあります。

  • フローボットはチャネルにメンションできない=全員のアドレスをPower Automateに直打ちしている(!)
  • Power Automateの自動トリガーなフローは数分に1度しか実行されない
    (PAのプランによると思います。また、サポート対応の用途について言えば許容範囲です)
  • ダミーチャネルを経由したりJSON解析したりと、処理が複雑
    (せっかくノーコードなので、誰でも修正できるくらい保守性を高めたいところ)

今回紹介した方法は、Power Automateのパワーって力業の意味? と思うくらい強引です。
ノーコード・ローコードのスマートな印象からは程遠いですが、短時間で作れた上に安定して動いているのでヨシ!

以上です。


記事が面白かった方、参考になった方は、是非「イイね」お願いします👍

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA