【AIによる概要】
「日付」と「キーワード(あいうえお)」が同じ行にある場合のみを判定し、Teamsへ通知するフローの全手順です。コピー&ペーストでそのまま使えるように、最初から順を追って解説します。
フローの全体図
- トリガー: 新しいメールが届いたとき (V3)
- アクション: HTML からテキスト (プレビュー)
- アクション: 変数を初期化する(3日分の日付配列)
- アクション: 作成(改行コードの定義)
- アクション: 選択(本文を1行ずつの配列に変換)
- アクション: それぞれに適用する(行ごとのループ処理)
- 条件分岐: 同じ行に日付とキーワードがあるか
- はい: Teamsに通知する
詳細な作成手順ステップ 1: トリガーの設定
- Power Automateで「自動クラウドフロー」を新規作成します。
- トリガーに 「新しいメールが届いたとき (V3)」(Outlook)を選択します。
- フォルダ(「受信トレイ」など)を指定します。
ステップ 2: メール本文のテキスト化HTMLタグを排除し、純粋なテキスト文字列に変換します。
- 「アクションの追加」 をクリックします。
- 「HTML からテキスト (プレビュー)」 を選択します。
- 「コンテンツ」の欄をクリックし、動的なコンテンツからトリガーの 「本文」 を選択します。
ステップ 3: 直近3日間の「日付パターン」を作成一桁の日付でも6文字(例:Jun 1のようにスペースが2つ)になる仕様に対応した配列を作ります。
- 「アクションの追加」 をクリックし、「変数を初期化する」 を選択します。
- 以下のように設定します。
- 名前:
DatePatterns- 種類:
アレイ- 値: 右側の「式 (Expression)」タブに切り替え、以下の3つの式を1つずつ追加して配列を作成します。
【値に入れるJSONデータ】 ※これをそのまま「値」欄に貼り付けても自動認識されます。json[ "@{if(equals(length(addHours(utcNow(), 9, 'd')), 1), addHours(utcNow(), 9, 'MMM d'), addHours(utcNow(), 9, 'MMM dd'))}", "@{if(equals(length(addDays(addHours(utcNow(), 9), -1, 'd')), 1), addDays(addHours(utcNow(), 9), -1, 'MMM d'), addDays(addHours(utcNow(), 9), -1, 'MMM dd'))}", "@{if(equals(length(addDays(addHours(utcNow(), 9), -2, 'd')), 1), addDays(addHours(utcNow(), 9), -2, 'MMM d'), addDays(addHours(utcNow(), 9), -2, 'MMM dd'))}" ]コードは注意してご使用ください。(※深夜の判定ズレを防ぐため、日本時間+9時間の補正を組み込んでいます)ステップ 4: 改行コードの用意本文を行ごとに切り分けるための「目印(改行)」を作ります。
- 「アクションの追加」 をクリックし、「作成」 (Compose) を選択します。
- アクションの文字をわかりやすく
NewLineに変更します。- 「入力」のテキストボックスをクリックし、キーボードの「Enterキー」を1回だけ押します(空欄の2行に見える状態になります)。
ステップ 5: 本文を1行ずつのリストに変換
- 「アクションの追加」 をクリックし、「選択」 (Select) を選択します。
- 以下のように設定します。
- 開始: 「式」タブを開き、以下を貼り付けます。
textsplit(outputs('HTML_からテキスト_(プレビュー)_の本文'), outputs('NewLine'))コードは注意してご使用ください。- マップ: 左側の「キー」に
Lineと入力します。右側の「値」は「式」タブを開き、item()と入力します。ステップ 6: 1行ずつループして判定する
- 「アクションの追加」 をクリックし、「それぞれに適用する」 (Apply to each) を選択します。
- 「以前の手順から出力を選択」欄に、ステップ5の「選択」の出力である 「本文 (Body)」 を指定します。
【ループの中に条件を追加】
- 「それぞれに適用する」の枠内にある 「アクションの追加」 をクリックし、「条件」 を選択します。
- 上部のロジックを 「すべてに一致 (AND)」 に設定し、以下の2行を追加します。
- 1行目のルール(キーワードの判定)
- 左辺(式タブに入力):
item()?['Line']- 演算子:
次の値を含む- 右辺: あいうえお
- 2行目のルール(日付の判定)
- 左辺: 動的なコンテンツから変数
DatePatternsを選択- 演算子:
次の値を含む- 右辺(式タブに入力):
item()?['Line']ステップ 7: Teams通知
- 条件分岐の 「はい(True)」 の枠内にある 「アクションの追加」 をクリックします。
- 「チャットまたはチャネルにメッセージを投稿する (V2)」 を選択します。
- 投稿先(チャネルやチャット)を指定し、「メッセージ」欄に通知したい文章を入力します。
(例: 「同じ行に日付とキーワードを検知しました」)
💡 設定後の確認ポイント
- 1通のメール内に、条件を満たす行が2行以上あった場合、その回数分だけTeams通知が飛びます。
- もし「通知は1通につき1回だけにまとめたい」場合は、ループの外側に「フラグ(はい/いいえの変数)」を1つ追加する制御が必要です。
このまま作成を進めてみて、エラーが出るステップや、通知を1回にまとめる制御も追加したいか教えてください。
