
はじめに:設計で混乱しやすいポイント
Power Automateのフロー設計でよく起きる混乱の原因は、次の2つを混同することです。
- トリガー:いつフローが動くか
- 条件(アクション):どのように処理するか
この記事では両者を明確に分けた上で、Microsoft Lists のデータ更新をきっかけに Teams へ自動でメンション通知を送る仕組みを、設計から実装まで一通りまとめます。
Microsoft Lists の列構成
フローを作成する前に、対象リストへ以下の列を作成しておきます。Power Automate はこの列情報を参照するため、フロー作成より先に Lists を完成させることが手戻りを防ぐポイントです。
| 列名 |
種類 |
用途 |
| 案件番号 |
1行テキスト |
案件識別コード |
| 見積依頼先 |
1行テキスト |
依頼先企業名 |
| 実施伺い先 |
ユーザー |
通知先① |
| 見積回答内容 |
複数行テキスト |
回答テキスト |
| 見積回答確認先 |
ユーザー |
通知先② |
| 通知種別 |
選択肢 (Choice) |
何を送るか |
| 通知状態 |
選択肢 (Choice) |
送信ステータス |
| 通知日時 |
日付と時刻 |
監査証跡 |
| エラー理由 |
複数行テキスト |
障害ログ |
| 最終更新者 |
ユーザー |
操作者記録 |
Choice 列の設定値
通知種別(空欄のまま保存できるよう、既定値なしを推奨)
通知状態(既定値:未送信)
注意:Choice 列の選択肢は全角・半角スペースが混入しないよう正確に入力してください。表記ゆれがあると、後述するトリガー条件の式が一致せずフローが起動しません。
実際の運用イメージ
パターン① 見積実施伺い
Lists に以下を入力して保存すると、Power Automate が起動し Teams へ通知されます。
| 項目 |
入力値 |
| 案件番号 |
A001 |
| 見積依頼先 |
○○商事 |
| 実施伺い先 |
山田(ユーザー選択) |
| 通知種別 |
見積実施伺い |
| 通知状態 |
未送信 |
パターン② 見積回答確認伺い
同じレコードを編集・保存すると、2回目の通知が自動送信されます。
| 項目 |
入力値 |
| 見積回答内容 |
100万円 |
| 見積回答確認先 |
佐藤(ユーザー選択) |
| 通知種別 |
見積回答確認伺い |
| 通知状態 |
未送信 |
Power Automate フローの作成手順
Power Automate ポータル を開き、「独自のフローを一から作成」→「自動化したクラウドフロー」を選択してください。
ステップ 1:トリガーの設定と無限ループ防止
1.トリガーとして 「アイテムが作成または変更されたとき(SharePoint)」 を選択し、対象のサイトとリスト名を設定します。
Microsoft Listsのアドレスを設定する場合、URLの中から「サイトのURLに該当する部分」だけを抜き出して手動で入力する。具体的には/Lists/ の直前までを貼り付ける。

フロー末尾で「送信済み」に更新するとトリガーが再発火し、無限ループになります。これを防ぐため、トリガー条件を設定します。
トリガーカード右上の「・・・」→「設定」→「トリガー条件」の「+追加」をクリックし、以下の式を入力してください。
@equals(triggerBody()?['通知状態']?['Value'], '未送信')

ポイント:Choice 列は .Value プロパティで参照します。これを忘れると条件が正しく評価されません。
ステップ 2:通知状態を「処理中」に変更する
フロー起動直後に他のトリガー発火を防ぐため、即座にステータスをロックします。
「新しいステップ」→ 「項目の更新(SharePoint)」 を追加し、以下のように設定します。
- サイトのアドレス・リスト名:トリガーと同じ
- ID:動的コンテンツから「ID」を指定
- 通知状態 Value:
処理中

⚠️ データ消失に注意:「項目の更新」は、空欄のまま設定した列を上書きして空にしてしまいます。「案件番号」「見積依頼先」など更新対象以外の列にも、必ず動的コンテンツから元の値を指定してください。
ステップ 3:Switch で通知種別を分岐する
「新しいステップ」→ 「Switch(切り替え)」 を追加します。
- 「オン」の入力欄:動的コンテンツから
通知種別 Value を指定
- ケース 1:
見積実施伺い
- ケース 2:
見積回答確認伺い
ステップ 4:メンショントークンの取得と Teams への投稿
ケース 1・ケース 2 それぞれに、以下の 3 つのアクションを配置します(通知先ユーザー列だけ変えます)。
① メンショントークンを取得する
「ユーザーのメンション トークンを作成する (V2)(Microsoft Teams)」 を追加します。
| ケース |
ユーザー欄に指定する動的コンテンツ |
| ケース 1(見積実施伺い) |
実施伺い先 Email |
| ケース 2(見積回答確認伺い) |
見積回答確認先 Email |
注意:本文に @山田 と直接入力しても Teams の正式なメンションにはなりません。必ずこのアクションで取得した Message Mention を使用してください。
② Teams にメッセージを投稿する
「チャットまたはチャネルにメッセージを投稿する(Microsoft Teams)」 を追加します。
- 投稿先:Channel
- チーム・チャネル:事前に作成済みのものを選択
- メッセージ:文頭に動的コンテンツの
Message Mention を挿入し、案件情報を続けて記述する
事前確認:Power Automate でチャネルはドロップダウン選択のため、フロー作成前にチャネルが存在している必要があります。通知先ユーザーがそのチャネルのメンバーであることも確認しておきましょう。
③ 通知状態を「送信済み」に更新し、通知日時を記録する
再度「項目の更新(SharePoint)」を追加します。
- 通知状態 Value:
送信済み
- 通知日時: 詳細パラメータから「通知日時」を選択し、「式」タブで以下を入力

convertFromUtc(utcNow(), 'Tokyo Standard Time')
Power Automate の標準時刻は UTC のため、そのままだと 9 時間ずれます。上記の式で日本時間に変換して記録してください。
ステップ 5:エラーハンドリングの設定
Teams 送信などが失敗した際に、Lists 側でエラー内容を把握できるようにします。
Switch アクションの下に「項目の更新(SharePoint)」を追加し、次のように設定します。
- 通知状態 Value:
エラー
- エラー理由:前ステップのエラー情報(動的コンテンツ)を入力
このアクションの「・・・」→ 「実行条件の構成」 を開き、以下のように変更します。
- 「成功時」:チェックを外す
- 「失敗しました」「スキップされました」「タイムアウトしました」:チェックを入れる
動作確認の手順
- Lists に新しい行を追加し、通知状態を
未送信、通知種別を 見積実施伺い にして保存する
- 数分以内にフローが起動し、通知状態が
未送信 → 処理中 → 送信済み と変化することを確認する
- Teams の指定チャネルに、対象者へのメンション付き投稿があれば完成
実装でハマりやすい 4 つのポイント まとめ
| ポイント |
対処法 |
| 無限ループ |
トリガー条件に @equals(..., '未送信') を設定し、処理中ステータスで二重起動も防ぐ |
| Teams メンションが飛ばない |
「メンション トークンを作成する (V2)」で取得した Message Mention を本文に埋め込む |
| 通知日時が 9 時間ずれる |
convertFromUtc(utcNow(), 'Tokyo Standard Time') で JST 変換 |
| データが消える |
「項目の更新」では更新対象以外の列にも元の値を動的コンテンツから必ず設定する |
将来の拡張ポイント
案件状態と通知状態の分離
現在の設計では 1 つのステータス列が複数の役割を担っています。業務が複雑になってきたら、次の 2 列に分けると管理しやすくなります。
| 列名 |
役割 |
| 案件状態 |
業務プロセスの現在地(検討中・承認済みなど) |
| 通知状態 |
通知の送信ステータス(未送信・送信済みなど) |
「1案件=1レコード」の限界への対応
同一案件での再通知や ISO 監査での通知履歴遡及が必要になった場合は、通知履歴リストを別途作成する構成への移行を検討してください。
まとめ:最初から入れておくべき設計要素
| 要素 |
優先度 |
理由 |
| トリガー条件(通知状態 = 未送信) |
必須 |
無限ループ防止 |
| 「処理中」ステータス |
推奨 |
二重起動防止 |
| メンション トークン (V2) |
必須 |
確実な Teams 通知 |
| 通知日時の JST 変換 |
推奨 |
監査証跡の可読性 |
| エラー理由列 |
推奨 |
保守・監査対応 |
| 最終更新者列 |
推奨 |
ISO 監査対応 |
フローは 1 本、Teams への投稿パターンは 2 種類、これで十分に実用レベルの業務システムになります。ISO 14001 の監査対応を見据えるなら、「通知日時」「処理中ステータス」「エラー理由」の 3 点は最初から設計に組み込んでおくことをおすすめします。