TeamsとPower Automate連携で特定のWebサイトの更新があった際、Teamsに自動で通知をしたい!作り方を分かりやすく説明

特定のウェブサイト更新をTeamsに自動通知する!

「あのサイト、いつの間にか更新されてた!」「新しい情報に気づくのが遅れたせいで、対応が後手に回ってしまった」。タイムリーな情報把握はビジネスにおいて非常に重要ですが、常にウェブサイトを監視し、更新を検知するのは手間がかかり、見落としのリスクも伴いがちですよね。

Power AutomateとTeamsを組み合わせることで、特定のウェブサイトの更新を自動で検知し、皆様が普段利用しているTeamsに通知を届けることができます。


なぜウェブサイト更新の自動通知が大切なのでしょう?

情報の洪水の中で、本当に必要な情報だけを効率的にキャッチすることは、現代のビジネスにおいて不可欠です。自動通知がもたらす具体的なメリットについて、一緒に見ていきましょう。

 

情報の見落としを防ぎ、機会損失をなくせるから

手動でウェブサイトを巡回したり、ニュースサイトをチェックしたりする作業は、非常に手間がかかり、定期的に行うのは困難です。多忙な業務の合間では、ついつい確認を怠ってしまい、重要な情報を見落とすリスクが高まります。自動通知を導入することで、人が介在することなく情報が検知され、Teamsに直接届くため、見落としの心配が格段に減ります。

 

迅速な情報共有を促し、素早い意思決定に繋がるから

重要なニュースやウェブサイトの更新は、関係者全員が速やかに把握し、必要であれば対応を始める必要があります。手動で情報を見つけてからメールで共有したり、Teamsに投稿したりするのでは、タイムラグが生じてしまいます。自動通知は、情報検知と同時にTeamsへの投稿が完了するため、関係者間の情報共有を劇的に加速させ、迅速な意思決定や対応を可能にします。これにより、ビジネスチャンスを逃さず、変化に素早く対応できるでしょう。

 

業務効率が向上し、人件費も最適化できるから

情報収集のために費やしていた時間と労力を、自動通知が肩代わりしてくれます。これにより、従業員は定型的な情報収集作業から解放され、より価値の高い分析や戦略策定といった業務に集中できるようになります。結果として、組織全体の生産性が向上し、間接的な人件費の最適化にも繋がる可能性があります。

 

常に最新情報にアクセスできる環境が整うから

ビジネス環境は常に変化しており、競合他社の動向、業界ニュース、市場のトレンドなどは日々更新されます。自動通知によって、これらの最新情報が定期的に、あるいはリアルタイムでTeamsに届けられることで、常に最新の状況を把握できます。これにより、競合優位性を保ち、市場の変化に素早く対応するための情報基盤を構築できるでしょう。


 

構築システムの準備を始めましょう

ウェブサイト更新の自動通知システムを構築する前に、いくつか確認し、準備しておくべきことがあります。これらを事前に整理しておくことで、スムーズに自動化を進めることができます。

 

通知したいウェブサイトや情報源を選びましょう

どのようなウェブサイトや情報源の更新を通知したいかを具体的にリストアップしましょう。対象によって、Power Automateで利用するトリガーアクションが異なります。

  • RSSフィードを提供しているサイト:
    • 多くのニュースサイト、企業ブログ、特定の情報サイトは、RSSフィードと呼ばれる更新情報を提供しています。これは最も簡単で確実な方法です。
    • 例: ニュースサイトのトップページ、企業のIR情報、プレスリリースなど。
  • RSSフィードを提供していない一般的なウェブサイト:
    • 特定の製品ページ、料金表、採用情報など、RSSフィードがないウェブページの更新を検知したい場合。
    • この場合、ページのコンテンツ自体が変更されたかどうかを比較することで検知します(より高度な設定が必要です)。
  • 特定のサービスやプラットフォーム:
    • X(旧Twitter)の特定のキーワードやアカウント、YouTubeチャンネルの新しい動画など。
    • これらはそれぞれのサービスに対応したコネクタが存在する場合が多いです。

 

通知を送るTeamsチャネルを決めましょう

検知したニュースや更新情報を、どのTeamsチャネルに表示したいのかを決定します。

  • 特定のチャネル: 例えば、〇〇製品情報ウォッチ競合動向分析全社ニュースといった専用のTeamsチャネルを作成し、関係者全員がそのチャネルに参加していることを確認します。
  • 個人チャット(オプション): 経営層や特定の担当者にのみ、重要な更新を個人的に通知したい場合に利用します。

 

投稿する「メッセージ内容」を考えましょう

自動でTeamsに投稿されるメッセージは、簡潔かつ分かりやすく、情報がすぐに把握できるように工夫しましょう。

  • 件名: 【ウェブサイト更新】〇〇サイトに新着情報!のように、情報源を明確にします。
  • 更新されたコンテンツのタイトル/概要: 可能であれば、更新された記事のタイトルやリード文を自動で取得して含めます。
  • 更新日時: いつ更新が検知されたか。
  • 元のコンテンツへのリンク: 必ず元のニュースやウェブサイトのページへの直接リンクを含めます。
  • 重要度: Power AutomateのTeamsアクションで「重要度」を「重要」に設定することを検討します。

 

必要な権限があるか確認しましょう

Power Automateでフローを作成し、ウェブサイトから情報を取得し、Teamsにメッセージを送信するためには、フローを実行するアカウントが適切な権限を持っている必要があります。

  • ウェブサイトへのアクセス権: 監視対象のウェブサイトにアクセスするための権限が必要です(公開されているサイトであれば特別な権限は不要ですが、ログインが必要なサイトは高度な設定が必要になります)。
  • Teamsチャネルへのメッセージ投稿権: 投稿先のTeamsチャネルへのメッセージ投稿権限が必要です。

 

Power Automateで自動化を設定しましょう(基本編)

Power Automateを使ってウェブサイト更新の自動通知フローを作成していきます。最も一般的で簡単な方法である「RSSフィード」を使った通知の基本設定から見ていきましょう。

 

フローを作成する場所を決めましょう

Power Automateのウェブサイトにアクセスし、左側のメニューから「作成」を選択します。今回は、特定のイベント(RSSフィードの更新)が発生したときに自動的に実行されるフローなので、「自動化したクラウド フロー」を選択します。

 

トリガーを設定しましょう

フローのトリガーとは、「いつ」このフローを実行するかを決定するものです。ウェブサイトの更新を検知するために、「RSS フィード項目が公開されるとき (RSS)」というトリガーが最適です。


作成例1:RSSフィード更新をTeamsチャネルに自動通知

このフローは、特定のウェブサイトのRSSフィードに新しい項目が公開された際に、その内容をTeamsチャネルに自動で投稿します。

  1. Power Automateにサインインします。お使いのMicrosoft 365アカウントでPower Automateのウェブサイト(https://make.powerautomate.com/)にアクセスし、サインインします。
  2. 「作成」から「自動化したクラウド フロー」を選択します。左側のナビゲーションペインにある「作成」をクリックし、表示されるオプションの中から「自動化したクラウド フロー」を選択します。
  3. フロー名を指定し、トリガーを検索します。フロー名には「ウェブサイト更新通知_RSS」など、分かりやすい名前を付けます。「フローのトリガーを選択してください」の検索ボックスに「RSS」と入力し、「RSS フィード項目が公開されるとき (RSS)」を選択して「作成」をクリックします。
  4. トリガーの詳細を設定します。
    • RSS フィード URL: 通知したいウェブサイトやブログのRSSフィードのURLを入力します。
      • ヒント: 多くのサイトでは、URLの最後に/feed/rss.xmlを追加すると見つかる場合があります。ウェブサイトのフッターやアイコン(RSSアイコン)を探すか、「サイト名 RSSフィード」で検索すると見つかることが多いです。例えば、https://news.yahoo.co.jp/rss/topics/top-picks.xmlのような形式です。
    • 間隔: Power AutomateがRSSフィードをチェックする頻度を設定します。例えば、「1」時間ごとにチェックしたい場合は「1」と入力し、単位は「時間」を選択します。
  5. 新しいステップを追加し、Teamsにメッセージを投稿します。「+ 新しいステップ」をクリックします。検索ボックスに「Teams」と入力し、「チャットまたはチャネルにメッセージを投稿する (Teams)」を選択します。
    • 投稿者:Flow bot」を選択します。
    • 投稿先:チャネル」を選択します。
    • チーム: 通知を投稿したいTeamsのチームを選択します(例: 全社情報共有)。
    • チャネル: 通知を投稿したいチャネル(例: 一般ニュース速報)を選択します。
    • メッセージ: ここに投稿したいメッセージ内容を記述します。RSSフィードから取得した情報を動的なコンテンツとして挿入できます。
      【🌐ウェブサイト更新のお知らせ】
      
      新しい記事が公開されました!
      タイトル: @{triggerOutputs()?['body/Title']}
      公開日: @{formatDateTime(triggerOutputs()?['body/PublishedOn'], 'yyyy/MM/dd HH:mm')}
      概要: @{triggerOutputs()?['body/Summary']}
      
      ▼詳細はこちら
      [記事を開く]@{triggerOutputs()?['body/PrimaryLink']}
      
      • 補足:Titleは記事のタイトル、PublishedOnは公開日時、Summaryは記事の概要、PrimaryLinkは記事への直接リンクです。formatDateTime関数は、日付と時刻の表示形式を整えるために使用します。
    • 重要度: 必要に応じて「重要」を選択します。
  6. フローを保存してテストします。画面右上の「保存」をクリックします。保存後、「テスト」をクリックし、「手動」を選択して「テスト」をクリックします。
    • 補足:RSSフィードのトリガーは、フロー作成後に新しい記事が公開されるのを待つのが確実なテスト方法です。過去の更新は通知されません。Power Automateのフロー実行履歴を確認し、Teamsの指定チャネルに通知が届いていることを確認します。

 

アクションを設定しましょう

トリガーが発動したら、次に「何を」するのかを設定します。これがアクションです。

RSSアクション

RSS フィード項目が公開されるとき」: 特定のRSSフィードに新しい情報が公開されたことを検知するトリガー。

Teamsアクション

  • チャットまたはチャネルにメッセージを投稿する」: 取得したウェブサイトの更新情報をTeamsチャネルに投稿します。
  • 「重要度」の設定: このアクションの設定項目の中に、「重要度」というドロップダウンがあります。通常の通知は「標準」で良いですが、重要な更新の場合は「重要」を選択することを検討しましょう。

 

通知メッセージのカスタマイズをしましょう

メッセージの内容は、動的なコンテンツを利用して、ウェブサイトのタイトル、公開日、概要、そして元のページへのリンクなどを自動的に埋め込むことができます。

  • タイトル: Title
  • 公開日時: PublishedOn
  • 概要/説明: SummaryまたはDescription
  • 元のページへのリンク: PrimaryLinkまたはLink

これらの情報をメッセージ本文に適切に配置することで、Teamsのメンバーが、何のウェブサイトが、いつ更新され、主な内容が何か、そして詳細を確認するにはどうすればよいかを、一目で把握できるように工夫しましょう。簡潔で分かりやすいメッセージと、すぐにアクセスできるリンクが重要です。


 

Power Automateで自動化を設定しましょう(応用編)

基本編で作成したRSSフィードのフローをさらに便利にするための応用テクニックを見ていきましょう。RSSフィードがないウェブサイトの更新検知方法もご紹介します。

 

特定のキーワードを含む更新のみ通知する

RSSフィード全体を通知するのではなく、特定のキーワード(例:製品名、企業名、業界用語など)を含む記事のみをTeamsに通知したい場合があります。


作成例2:特定のキーワードを含む更新のみ通知するPower Automateフロー

RSSフィードが更新された後、記事のタイトルや概要に特定のキーワードが含まれているかを確認する条件分岐を追加します。

  1. 基本編のフロー(ウェブサイト更新通知_RSS)を開きます。
  2. トリガー(RSS フィード項目が公開されるとき)の後に「条件」アクションを追加します。「+ 新しいステップ」をクリックし、「条件」を検索して選択します。
  3. 条件を設定しましょう。この条件分岐で、記事のタイトルや概要に特定のキーワードが含まれる場合にのみ「はい」のパスに進むようにします。
    • 例1:タイトルに特定のキーワードが含まれる場合
      • 左側の値: @{triggerOutputs()?['body/Title']} (記事のタイトル)
      • 演算子:次の値を含む
      • 右側の値:新製品」または「株主総会」など、通知したいキーワードを入力します。
    • 例2:複数のキーワードや条件を組み合わせる場合「+ 追加」をクリックして「行を追加」または「グループを追加」を選択し、「または」条件で別のキーワードを追加したり、「AND」条件でタイトルと概要の両方に条件を設定したりできます。
      • 補足:大文字・小文字を区別しない場合は、toLower()関数を使って両方の値を小文字に変換してから比較することも可能です。例:toLower(triggerOutputs()?['body/Title'])
  4. Teamsへのメッセージ投稿アクションを、この条件の「はい」のパスの中に移動させます。
  5. フローを保存してテストします。RSSフィードが更新された際に、キーワードを含む記事のみがTeamsに通知されることを確認します。

 

RSSフィードがないウェブサイトの更新を検知する(HTTPアクションとコンテンツ比較:高度)

多くの企業ウェブサイトや特定の製品ページなどにはRSSフィードが提供されていない場合があります。その場合、ウェブページのコンテンツの変化を定期的に監視することで更新を検知できます。


作成例3:RSSフィードがないウェブサイトの更新検知Power Automateフロー(高度)

このフローは、ウェブページのコンテンツを定期的に取得し、前回の取得時と比較して変化があれば通知します。この方法は、ウェブページの構造に依存し、複雑になる場合があります。

  1. 新しいフローを「スケジュール済みクラウド フロー」として作成します。
    • フロー名:「ウェブサイトコンテンツ変更検知
    • 繰り返し: フローを実行したい頻度を設定します。例:「1」時間、「時間」。
  2. 新しいステップを追加し、HTTPアクションでウェブページのコンテンツを取得します。「+ 新しいステップ」をクリックします。検索ボックスに「HTTP」と入力し、「HTTP」アクションを選択します。
    • 方法:GET」を選択します。
    • URI: 監視したいウェブページのURLを入力します。例:https://www.yourcompany.com/products/pricing/
    • ヘッダー(オプション): 必要に応じてUser-Agentなどを設定します。
  3. 新しいステップを追加し、ウェブページのコンテンツから比較したい情報を抽出します(コンテンツ解析)。ウェブページのHTML全体を比較すると、広告や動的な要素の変更で誤検知してしまう可能性があります。そのため、更新を検知したい特定の箇所(例:ニュース一覧のタイトル部分、料金表の主要部分など)を抽出するのが望ましいです。これは非常に高度で、ウェブページのHTML構造に大きく依存します。
    • 「HTML からテキストを抽出する (Content Conversion)」アクション(推奨):
      • コンテンツ: HTTPアクションの本文を選択します。
      • HTML to text: CSS Selectorを選択し、特定の要素のCSSセレクターを入力します(例: div.product-price span.value)。
      • 補足:CSSセレクターはブラウザの開発者ツールで確認できます。ウェブサイトの構造が変わると、このセレクターも変更する必要があります。
    • または、「変数を初期化する」アクションや「作成」アクションでテキスト操作関数(split, indexOf, substringなど)を組み合わせて、更新を検知したい要素のテキスト部分のみを抽出します。抽出したテキストをCurrentPageContentという変数に格納すると良いでしょう。
  4. 抽出したコンテンツを前回と比較するために、SharePointリストなどに保存します。事前にSharePointリストを作成し、以下の列を追加します。
    • ウェブサイトURL (テキスト)
    • 最終コンテンツ (複数行テキスト)
    • 最終チェック日時 (日付と時刻)
    • 「アイテムの取得 (SharePoint)」アクション: SharePointリストから監視対象のURLに紐づく前回のコンテンツを取得します。
      • フィルタークエリ: ウェブサイトURL eq '監視したいURL'
    • 「条件」アクション: 前回のコンテンツが存在するかどうか(長さ(outputs('アイテムの取得')?['body/value'])0 より大きいか)をチェックします。
  5. コンテンツが変更された場合のみTeamsに通知し、SharePointリストを更新します。
    • 「はい」のパス(前回のコンテンツが存在する場合)に、さらに「条件」アクション(変更検知)を追加します。
      • 左側の値: CurrentPageContent (現在取得したコンテンツ)
      • 演算子:次の値と等しくない
      • 右側の値: SharePointリストから取得した前回の「最終コンテンツ」(例: first(outputs('アイテムの取得')?['body/value'])?['最終コンテンツ']
    • 「はい」のパス(変更があった場合):
      • Teamsにメッセージを投稿します。
        【🚨ウェブサイト更新検知!】
        
        以下のウェブサイトに重要な更新がありました!
        URL: @{outputs('HTTP')?['body/uri']}
        更新された主な内容(推測):
        [抽出したテキストの冒頭部分や、変更の概要をここに記述]
        
        ▼詳細はこちら
        [ページを開く]@{outputs('HTTP')?['body/uri']}
        
      • 「項目を更新します (SharePoint)」アクション: SharePointリストの「最終コンテンツ」と「最終チェック日時」を最新の情報に更新します。
    • 「いいえ」のパス(変更がなかった場合): 何もアクションを行いません。
    • 元の「条件」(前回のコンテンツが存在しない場合)の「いいえ」のパス(初回の場合):
      • 「新しいアイテムを作成します (SharePoint)」アクション: SharePointリストに「ウェブサイトURL」「最終コンテンツ」「最終チェック日時」を保存します。
  6. フローを保存してテストします。手動でテストを実行し、ウェブサイトが更新された際に通知が届くことを確認します。ウェブサイトのコンテンツを意図的に少し変更してテストすることも必要です。

エラー対策とトラブルシューティングを確認しましょう

Power Automateフローは、確実に動作することが求められます。特に情報検知のフローは、見落としがビジネス上のリスクに繋がるため、信頼性が非常に重要です。よくあるエラーとその対策、そしてトラブルシューティングのポイントをご紹介します。

 

権限不足のエラーが出た場合

「アクセスが拒否されました」といったエラーメッセージが表示される場合、Power Automateがウェブサイトから情報を取得したり、Teamsにメッセージを送信したりするための権限が不足している可能性があります。

対策: フローを実行するアカウントが、監視対象のウェブサイトにアクセスできること、そしてTeamsチャネルへのメッセージ投稿権限を持っていることを確認してください。

 

トリガーが動作しない場合

フローが全く実行されない場合、設定したトリガーの条件が満たされていない可能性があります。

  • RSSフィードの場合:
    • RSSフィードのURLの正確性: URLが正しいか、有効なRSSフィードであるかを確認しましょう。ブラウザで直接URLを開き、XMLが表示されるか確認してください。
    • サイト側の更新頻度: サイトが実際にRSSフィードを更新する頻度が低い場合、Power Automateのチェック間隔よりも長い可能性があります。
    • 古い記事: Power Automateは、フローが作成された後に公開された新しい項目のみを検知します。過去の更新は通知されません。
  • HTTPアクション(コンテンツ比較)の場合:
    • ウェブサイトのURLの正確性: URLが正しいか確認しましょう。
    • HTTPリクエストの成功: HTTPアクションが「成功」しているか、エラーになっていないかを確認しましょう。リダイレクトが多いサイトは問題になる場合があります。
    • コンテンツ抽出の正確性: 最もよくある問題です。「HTMLからテキストを抽出する」やsubstringなどの関数が、ウェブサイトのHTML構造の変更によって機能しなくなっている可能性があります。ブラウザの開発者ツールで、CSSセレクターがまだ有効かを確認してください。
    • 比較ロジックの誤り: 前回と現在のコンテンツの比較が正しく行われているか確認しましょう。

 

通知がTeamsに届かない場合(フローは成功しているのに)

Power Automateの実行履歴ではフローが「成功」しているのに、Teamsに通知が届かない場合があります。

対策

  • Teamsの通知設定: 受信側のTeamsで、Flow botからの通知がブロックされていないか、ミュートされていないかなどを確認してください。
  • チャネルの選択ミス: 「チャットまたはチャネルにメッセージを投稿する」アクションで、意図したチャネルが正しく選択されているか、タイプミスがないかを再確認しましょう。
  • 接続の正常性: Power Automateの「データ」→「接続」で、Teamsへの接続が正常に確立されているかを確認しましょう。

 

フローの履歴を確認しましょう

エラーが発生した場合や、フローが意図通りに動作しない場合は、Power Automateのフロー実行履歴を確認することが最も重要です。

手順

  1. Power Automateの「マイ フロー」から、該当のフローを選択します。
  2. 実行履歴」タブをクリックします。
  3. 失敗した実行、または成功したものの動作が怪しい実行を選択すると、フローの各ステップがどのように実行されたか、どこでエラーが発生したか、そして入力/出力データやエラーメッセージの詳細を確認できます。

ポイント: 各アクションの「入力」と「出力」を確認することで、どのデータがどのように処理され、どこで問題が発生したのかを詳細に把握できます。特にHTTPアクションでウェブページを取得している場合は、取得したHTMLの内容を確認することが重要です。


 

セキュリティとアクセス管理を確認しましょう

外部のウェブサイト情報を取り扱う場合や、特定の情報を通知するフローを構築する場合、セキュリティとアクセス管理に十分な配慮が必要です。

 

監視対象ウェブサイトの選定を慎重にしましょう

HTTPアクションなどで外部ウェブサイトを監視する場合、そのウェブサイトが信頼できるものであることを確認しましょう。不正なコンテンツや不適切な情報源を監視しないよう注意が必要です。

DoS攻撃の回避: 短時間に大量のHTTPリクエストを送信しないよう、フローの実行頻度を適切に設定しましょう。相手のサーバーに過度な負荷をかけると、迷惑行為とみなされる可能性があります。通常、数時間から1日程度のチェック間隔が適切です。

 

Teamsチャネルの権限設定を適切にしましょう

ウェブサイト更新通知が送信されるTeamsチャネルのメンバーシップも適切に管理しましょう。

  • パブリックチャネルの利用: 全従業員に広く共有したい場合は、パブリックチャネルが適しています。
  • プライベートチャネルの利用: 機密性の高い情報を含む更新(例: 競合の未公開情報など)を通知する場合は、プライベートチャネルとし、必要なメンバーのみを招待しましょう。この場合、通知メッセージの内容にも機密性の配慮が必要です。

フローの作成と実行権限を管理しましょう

この自動化フローは、会社の情報収集と連携に関わるため、不用意に作成・変更・実行できないように、適切な権限管理が必要です。

  • フロー作成者の制限: 重要なフローの作成権限は、情報管理の責任者や特定のシステム管理者にのみ付与することを検討しましょう。
  • 共有の最小化: フローを他のユーザーと共有する際は、実行のみの権限に限定し、共同所有者としての共有は慎重に検討しましょう。共同所有者はフローを編集できるため、意図しない変更のリスクがあります。
  • サービスアカウントの利用: フローの実行アカウントが個人アカウントではなく、専用のサービスアカウントであれば、個人の人事異動や退職の影響を受けにくく、権限管理も一元化しやすいでしょう。

 

まとめ

Power AutomateとTeamsを組み合わせることで、特定のウェブサイトの更新を自動で検知し、Teamsに通知する方法について、基本的な設定から応用、エラー対策、そしてセキュリティとアクセス管理まで、詳細に解説してきました。

この自動通知システムは、情報共有のスピードを格段に上げ、情報収集の負担を軽減し、見落としを防ぐための強力なツールとなるでしょう。結果として、常に最新の情報に基づいた意思決定が可能になり、組織全体の競争力強化に大きく貢献できます。