Teamsで一斉送信する方法は、同じ内容を複数チャネルへ投稿する方法と、Excelの宛先ごとに個別通知する方法で異なります。個別通知はPower AutomateのFlow botを使う構成から検討できます。
一つのグループチャットへ全員を追加することと、受信者ごとに独立したチャットへ送ることは別です。宛先同士に内容を見せてよいか、返信先を誰にするか、利用できる送信者を先に決めてください。大量のチャットを短時間で送れば必ず成功する、といった保証はできません。
目的別にTeamsの一斉送信を選ぶ
| 目的 | 候補 | 確認すること |
|---|---|---|
| 同じ案内を複数チャネルへ出す | Teamsのクロスポスト | 投稿先のメンバー資格・投稿権限・モデレーション |
| 同じ内容をグループで共有して会話する | グループチャット | 参加者に同じ会話が見える |
| Excelの宛先ごとに個別の通知を出す | Power Automate+Teamsコネクタ | Flow botと本人名義の違い、宛先・文面・送信結果 |
| 本人として既存の1対1チャットへ送る開発 | Graphの委任権限を使う構成 | ユーザー認証、チャットID、必要なAPI権限 |
| Teams以外でもよい個別の案内 | メール等の別経路 | 配信先と返信方法を別途設計 |
同じ内容なら複数チャネルへクロスポストする
- チャネルで投稿を始める。
- 作成欄の「アクションとアプリ→他のチャネルに投稿」を選ぶ。
- 投稿先のチャネルを追加して確認する。
- 内容を確認して投稿する。
投稿できるのは、メンバーであり投稿権限も持つチャネルです。モデレーションによって制限される場合もあります。目立たせたい案内にはチャネルの「アナウンス」も使えますが、アナウンスはグループチャットや1対1チャットの機能ではありません。個別メッセージの差し込み送信とは区別します。
Excelから個別通知するPower Automateの構成
以下は、組織内の少数宛先で確認してから展開するフローの設計例です。この記事の手順で実際にフローを作成・送信した結果を示しているわけではありません。利用する環境の契約、管理設定、宛先の条件を確認してください。
1.Excelの宛先をテーブルにする
OneDrive for BusinessやSharePoint等に置くExcelファイルに、宛先・名前・個別本文・行ID・送信対象・送信状態等の列を用意し、範囲をテーブルにします。行IDは重複させず、空の宛先や同じ宛先の重複、個人向けアカウントと職場用アカウントの混在を確認します。
| 列 | 役割 |
|---|---|
| 行ID | 送信結果と再実行対象を識別する |
| 宛先 | 通知対象の組織内ユーザーを確認する |
| 名前・個別本文 | その行に対応した内容を組み立てる |
| 送信対象・送信状態 | 未送信の対象と送信済みを分ける |
2.行を取得して対象を絞る
Excel Online (Business)の「テーブル内に存在する行を一覧表示(List rows present in a table)」で対象を読みます。既定では最大256行なので、それを超える場合はページネーションを有効にし、取得件数と想定する件数を照合します。
Excel画面で行を絞り込んだだけでは、コネクタの取得対象が同じ範囲になるとは限りません。アクション側のフィルターやフローの条件で送信対象・未送信の状態を明示し、取得された行を確認します。数百人へ送る前に、少数のテスト用行だけを処理する条件を用意してください。
3.行ごとにFlow botから通知する
- 取得した行ごとの処理に、Teamsの「チャットまたはチャネルでメッセージを投稿(Post a message in a chat or channel)」を配置する。
- 「投稿者(Post as)」をFlow bot、「投稿先(Post in)」をChat with Flow botにする。
- Recipientへその行の宛先、Messageへ名前と本文の動的値を指定する。
- 自分や許可されたテスト宛先で、表示された送信者・本文・通知先・返信先を確認する。
Flow botからの個別通知は、作成者本人から届く通常の1対1チャットとは異なります。同じアクションにUserの選択肢があっても、どの投稿先と組み合わせられるかを確認してください。本人名義で任意ユーザーに個別送信できると、一律には説明できません。非推奨の旧「Post a message as the Flow bot to a user」ではなく、現行の投稿アクションを確認します。
4.成功・失敗を行ごとに記録する
行ID、宛先、処理時刻、成功・失敗、利用できるメッセージIDやエラーを記録する設計にします。フロー全体が終了しても、すべての宛先へ送信されたとは限りません。再実行時は送信済みを除外し、結果が不明な行は確認してから再送してください。
Excelへの同時更新等も考慮し、いきなり並列数を増やして速度を優先しません。送信対象の承認、テスト時の件数、実行履歴とチャット上の実際の表示を照合する工程を用意します。アクション成功と相手が読んだことも同じ意味ではありません。
利用条件とコネクタの制限を確認する
- Teamsの投稿アクションには、管理センターでWorkflowsアプリが許可されていることが必要です。
- Flow botの送信者は商用テナント向けで、Government Cloudでは同じ構成を使えません。
- コネクタによるプライベートチャネルへの投稿は、現行資料ではサポートされません。Teams画面の手動投稿と区別します。
- メッセージの上限はHTML等を含めて約28KBです。長い本文や画像の詰め込みを避け、実際の出力を確認します。
- Excel Online (Business)とTeamsはStandardコネクタですが、契約・フロー構成・環境の条件まで一律に無料と保証しません。
Graph APIを使う場合は作成と送信を分ける
通常のチャット作成は「POST /chats」、既存のチャットへの送信は「POST /chats/{chat-id}/messages」です。メッセージ送信APIだけではチャットを作れません。1対1のチャットが既にある場合、チャット作成操作は既存のチャットを返します。作成と送信の権限も別々に確認します。
| 操作 | 仕事・学校アカウントの最小の委任権限 |
|---|---|
| チャット作成 | Chat.Create |
| 通常のチャットメッセージ送信 | ChatMessage.Send |
通常の個別連絡を送るため、クライアント資格情報だけで任意ユーザーのチャットへ投稿できる構成を案内しません。メッセージ送信APIのアプリケーション権限欄にあるTeamwork.Migrate.Allは移行シナリオのもので、公式のインポート例では対象チャットを移行モードにする必要があります。これを日常の一斉通知の権限として流用しないでください。個人用Microsoftアカウントも、上表のAPIの委任送信には対応しません。
管理者と認証方式・同意・利用するAPIの最小権限を確認し、トークンやシークレットをExcel本文やソースコードへ埋め込みません。Graphの429応答ではRetry-Afterに従って待機し、即座の再試行を繰り返さない設計にします。バッチ化すれば制限を回避できると考えず、各応答を確認します。
よくある疑問
Power Automateでは宛先ごとに文面を変えられない?
行ごとの値をRecipientやMessageの動的内容として使う構成を検討できます。固定宛先だけの機能ではありません。ただし、取得する行、送信者、宛先の種別、管理設定等を確認する必要があります。
一つのグループチャットを作れば個別送信になる?
なりません。グループチャットは参加者が共有する会話です。個々の通知と取り違えないよう、テスト時にも受信者側の表示を確認します。
大量通知を最短で送る設定は?
人数だけで待機時間や成功率を決めることはできません。送信先・内容を確認し、上限、実行履歴、再送時の重複を考慮してください。単一の案内を全員に見せる目的なら、チャネル投稿で済むかも先に検討します。

コメント