概要
本記事では、Power Automateを用いてMicrosoft Teamsに自動投稿を行う際、特に「共有チャネル」において@メンション(@channel、@team)による確実な通知を実現しようとした際の技術的な制約と、その解決策について解説いたします。
検証の結果、標準機能での@メンションが機能しないという制約を踏まえ、代替策としてOutlook経由のメール通知へ設計を切り替えた実務的な手順をまとめます。Microsoft 365やPower Automateの運用を担当されるIT管理者の方々を対象とした内容でございます。
結論(先に要点)
先に本記事の要点をご案内いたします。
- Power Automateの標準コネクタ(Teamsアクション)による投稿では、共有チャネル・標準チャネルを問わず、@channel や @team といったメンションは機能しません。投稿本文に「@channel」と記述しても青文字のメンションには変換されず、通知も発火しない仕様となっております。
- この制約への実務的な代替策として、Outlook経由のメール通知へ設計転換することで、見落としの少ない確実な周知を実現できます。
- 通知対象の規模や運用形態に応じ、「配布リスト宛の一括送信」、「Microsoft 365 グループのメンバー展開」、「個別ユーザーリスト(SharePoint等)を基にしたループ送信」の三段階での設計が有効です。
- 特に共有チャネルは、その特性上、全員への一斉通知が見落とされやすいため、チャネル投稿とメール通知の二段構えを強く推奨いたします。
背景と要件
今回、自動通知の対象となったのはMicrosoft Teamsの「共有チャネル」でございました。
共有チャネルは、標準チャネルとは異なり、チーム外のメンバーや外部ユーザーが混在することが多く、メンバー構成や各ユーザーの通知設定によって通知の挙動が不揃いになりやすいという特性があります。
Power Automateのアクション「チャットまたはチャネルでメッセージを投稿する」を用いることで、チャネルへの自動投稿自体は実現可能でした。しかし、投稿内の@メンションが青文字化せず、結果としてメンバーへ通知が届かない(チャネル名が太字になるだけで、バナーや未読バッジが表示されない)という課題がございました。
本要件の目的は、重要な連絡をチームのメンバーに「確実に気付いてもらう」ことであり、単なる投稿の記録ではなく、能動的な通知が必要とされました。
検証結果(@メンションの可否)
Power Automate標準のTeamsコネクタにおける、@メンション機能のサポート状況を検証いたしました。
- @channel/@team メンションはサポート外 メッセージ本文へ「@channel」や「@team」と記述しても、それは単なるテキストとして表示されるのみで、Teamsが認識するメンション通知としては発火しませんでした。
- Graph APIの利用(今回は見送り) 技術的には、Microsoft Graph APIを直接呼び出すことでチャネルメンションを実現する構成も存在します。しかしながら、APIのための権限設計(アクセス許可)の複雑さや、実装・運用にかかる負荷(コスト)を考慮し、今回は標準機能の範囲内で対応する方針といたしました。
以上の結果から、Power Automateの標準機能のみで@メンションによる通知を実現することは断念し、通知の「確実性」と「信頼性」を最優先として、代替策であるメール通知方式へ設計を切り替えました。
設計転換:メール通知で確実に気付かせる
Teamsクライアント側の通知設定や、共有チャネル固有の性質に左右されない、最も確実な通知手段として「Outlookメール通知」を併用する設計を採用いたしました。
メールは多くのビジネスユーザーが日常的に確認するツールであるため、見落とし防止に極めて有効です。運用規模や組織構造に応じて、以下のいずれか、またはこれらを組み合わせた方式を選定します。
1. 配布リスト(DL)宛に一括送信
最も簡易で、管理コストの低い方法です。通知対象のメンバーが固定的な場合に適しています。メンバーの変更は、Power Automateのフロー側ではなく、配布リスト(DL)側で一元管理できるメリットがあります。
2. Microsoft 365 グループのメンバー展開 → ループ送信
通知対象がTeamsのチームメンバーと完全に一致する場合、または動的に変動する場合に有効です。Power Automateで対象グループのメンバー情報を取得し、「適用対象(Apply to each)」のアクションを用いて各ユーザーへ個別にメールを送信します。
3. 個別ユーザーの一覧(SharePoint/Excel)から展開 → ループ送信
プロジェクト単位など、特定の業務に閉じたメンバー管理が必要な場合に有効です。SharePointリストやExcelファイルに通知対象者のリストを保持し、フロー実行時にそのリストを参照して送信します。現場担当者による宛先更新が容易になります。
実装手順(基本フロー例)
ここでは、最も基本的な「配布リスト宛に一括送信」するケースを例に、実装手順の概要をご説明します。
前提条件
- 通知対象の配布リスト(推奨)、もしくはMicrosoft 365 グループがAzure AD(Entra ID)上に用意されていること。
- Power AutomateでOutlookコネクタおよびTeamsコネクタの利用許可がされていること。
手順
1. トリガーの選択
業務プロセスに応じたトリガーを設定します。代表例は以下の通りです。
- Teams「チャネルに新しいメッセージが投稿されたとき」(特定の投稿に反応する場合)
- 定期(スケジュール実行)(例:毎日定時にリマインドする場合)
- SharePointやFormsなど、他の業務イベントの発生時(例:申請が承認された時)
2. 条件分岐(任意)
不要な通知が乱発することを防ぐため、条件分岐(「条件」アクション)を設けます。
- 例:件名や本文に「緊急」「重要」といったキーワードが含まれる場合のみ、後続の通知処理を実行する。
3. 通知本文の生成
メール本文の視認性を高めるため、「作成(Compose)」アクションなどでHTML形式の本文を整形します。「作成日時」「対象チャネル」「要旨」「関連リンク」といった動的な情報を含めると効果的です。(テンプレート例は後述)
4. Outlookでメール送信
「メールの送信(V2)」アクションを使用します。
- 宛先: 配布リストのメールアドレス(または動的に取得したユーザー一覧)
- 件名: 【重要】【要確認】など、用件が一目で分かる表現を推奨します。
- 本文: 手順3で生成したHTML本文を設定します。(本文形式を「HTML」に設定)
- 重要度: 必要に応じ「高」に設定します。
5. (オプション)Teamsへの自動投稿を併用
本フローの主目的はメール通知ですが、Teamsチャネル内の時系列記録として、同じ内容をTeamsにも投稿(「チャットまたはチャネルでメッセージを投稿する」)することを推奨します。
これにより、**「Teams内の時系列での記録」と「ユーザーのメールボックスへの確実な通知」**の両立が可能となります。
応用パターン
A. Microsoft 365 グループのメンバー展開
- 「グループ メンバーの一覧取得」アクションで対象グループのメンバーを取得します。
- 「適用対象(Apply to each)」アクションが自動的に追加されます。
- ループ処理の中で「メールの送信(V2)」アクションを使用し、宛先に取得したメンバーのメールアドレスを設定します。
- (留意点)対象グループに外部ユーザーや来訪者が含まれる場合、組織のセキュリティポリシー(空メール拒否設定やドメイン制限)により、メールが送信エラーとなる可能性に留意が必要です。
B. SharePoint/Excelのメンテナンス型宛先管理
- SharePointリストやExcelテーブルに、氏名・メールアドレス・所属・有効フラグ等を保持する管理台帳を用意します。
- フローの開始時に「複数の項目の取得(SharePoint)」や「表内に存在する行を一覧表示(Excel)」アクションを使用します。
- ODataフィルタークエリ(例:
Enabled eq true
)などで、通知対象者のみを絞り込みます。 - 取得した対象者に対し、「適用対象」ループでメールを送信します。
- (メリット)IT管理者でなくとも宛先リストの更新が可能となり、権限委譲がしやすくなります。
C. 件名・本文の整形(テンプレ雛形)
メールの視認性を高めるためのHTMLテンプレート例です。組織のレギュレーションに合わせてご調整ください。
件名例: 【共有チャネル通知】サイバー対応の連絡(要確認)
本文例(HTML):
<p>いつもお世話になっております。<br>
共有チャネルにて、以下の連絡がありましたのでご確認ください。</p>
<hr>
<h3>■ 概要</h3>
<ul>
<li><strong>件名(概要):</strong> {タイトルや件名}</li>
<li><strong>チャネル:</strong> {チーム名} / {チャネル名}</li>
<li><strong>投稿者:</strong> {投稿者の表示名}</li>
<li><strong>投稿日時:</strong> {日時のフォーマット}</li>
</ul>
<h3>■ 内容</h3>
<p>
{本文の抜粋や要約}
</p>
<h3>■ 関連</h3>
<ul>
<li><strong>Teams スレッドへのリンク:</strong> <a href="{スレッドのURL}">こちらから確認</a></li>
</ul>
<hr>
<p>本メールはPower Automateにより自動送信されています。<br>
ご不明点がございましたら担当までご連絡ください。</p>
運用上の注意点
メール通知を導入するにあたり、以下の点にご留意いただく必要がございます。
- 過剰通知の抑制 通知疲れを避けるため、条件分岐や重複排除の設計が不可欠です。特に連投や誤投稿が多いチャネルでは、一定時間内の通知回数を制限する(クールダウンタイムを設ける)などの工夫もご検討ください。
- 配布リストとメンバーの同期 人事異動や組織変更が発生した際、配布リストのメンテナンスが追従しているか、定期的な確認が必要です。グループ展開型の場合は、フロー実行アカウントがメンバー一覧を取得する権限を保持しているかご注意ください。
- 共有チャネル特有の配慮 外部ユーザーを含む場合、相手方の受信制御や迷惑メールフィルタによりメールが不達となる可能性があります。非常に重要な連絡は、社内向け配布リストと外部向け連絡の二系統に分離するなどの対策も安全策となります。
- Teams側の可視化 通知をメールに切り替えた場合でも、Teamsチャネル内の可読性確保は重要です。重要な投稿にはラベル付けや「ピン留め(固定表示)」を併用し、後から情報を探すユーザーへの配慮も忘れないようにいたします。
- 監査と証跡(ログ) メールの送信ログ、失敗時のリトライ処理、エラー発生時の管理者への通知といった、フローの実行状況を監視・追跡できる設計を組み込み、監査対応を容易にすることが望ましいです。
今回の学び(要点の振り返り)
- Power Automateの標準機能のみでは、Teams共有チャネルにおける@channel/@teamメンションによる通知は実現できませんでした。
- 通知の「確実性」を最優先事項とし、Outlookメール通知へ設計転換することで、当初の要件(確実に気付いてもらう)を満たすことが可能となりました。
- 運用規模や組織構造に合わせ、配布リスト(簡易)、Microsoft 365 グループ展開(動的)、名簿管理(委譲可能)といった方式を使い分けることが、現実的な対応策となります。
- 将来的にはGraph APIによるメンション実装を検討する余地もございますが、権限設計や保守コストを考慮し、段階的に導入するのが安全策であると考えられます。
まとめ
Microsoft Teamsの共有チャネルにおける通知は、その特性上、見落としが発生しやすいという課題があります。Power Automate標準のTeams投稿機能では@channel等のメンションが利用できないため、確実な通知を担保するには「Outlookメール通知」の併用が最も実務的な解決策となります。
まずは管理コストの低い「配布リスト宛の一括送信」から着手し、運用の必要性に応じて「グループ展開」や「名簿管理型」へと拡張していくことで、コストを抑えつつ通知の確実性を段階的に高めることができます。
重要な連絡ほど、チャネル投稿(記録)+メール(確実な通知)の二段構えを基本とし、通知設計を組織の運用ルールに組み込むことを推奨いたします。
参考:検証の経緯(メモ)
(本記事をまとめるにあたり、以下の検証を行いました)
- Power Automateの「チャットまたはチャネルにメッセージを投稿」アクションで、本文に@channel/@teamを記述し投稿を試行。
- 共有チャネルおよび標準チャネルにおいて、メンションとして青文字化せず、テキストとして投稿され、通知が発火しないことを確認。
- 共有チャネルの通知漏れリスクを再評価し、代替策としてOutlookメール通知への切り替えを決定。
- 「配布リスト案」「Microsoft 365 グループ展開案」「名簿管理ループ案」の3パターンの実装方法とメリット・デメリットを比較検討。
- 過剰通知を避けるための条件分岐や、運用時のメンテナンス性について方針を整理。