🐈

[Power Automate]Webサイトに新しいページが追加されたらチャットへ通知する【初級編】

2024/11/28に公開

はじめに

Power Automateとは、Microsoftが提供するRPAツールです。日々繰り返すような作業を自動化することができ、さまざまなサービスを連携することができます。

RSSフィードとは、Webサイトの更新情報を配信するためのデータ形式です。WebサイトにRSSフィードが提供されていれば、RSSリーダー(FeedlyなどのアプリやOutlookなどのメールアプリ)などを用いてWebサイトの更新情報を受け取ることができます。

最近では、SNSでアカウントをフォローしておくことで最新情報を追う人が多いと思いますが、職場ではSNSにアクセスしづらいですし、SNSでは他の情報も入ってくるのでノイズになることも。

そこでSNSが登場するより以前からWebサイトの更新を受け取る仕組みとして利用されている「RSSフィード」の更新をPower Automateで受け取り、仕事で使っているチャットツールに通知する仕組みを作ると便利です。

この記事では具体的なPower Automateフローの作り方を解説していきます。

使用するツールと準備

必要なツール

  • Microsoft Power Automate(通知先がTeams、Slackであれば無料プランでOK)
  • RSSフィードのURL(例としてZennのトレンドのRSSフィードを使用)
  • チャットツール(Microsoft Teams)

事前準備

  • Power Automateアカウント
  • 通知先のTeams(必要に応じて投稿先にするチャンネルやグループなどを作成しておく)

テンプレートを利用してフローを作成する(通知先がTeamsならこれがおすすめ)

Power Automateにはさまざまなテンプレートが用意されているので、自分で作るのが自信がない方はテンプレートを活用するのもよいでしょう。

現在公開されているテンプレートには、Teamsに通知するシナリオのテンプレートが公開されています。

テンプレートを選択する

Power Automateのテンプレート画面から、検索窓に「RSS」と入力すると、RSSフィードを活用するシナリオがいくつか表示されます。

この中から「RSS フィードが公開されたときに Teams にメッセージを投稿する」テンプレートを選択します。

テンプレートの詳細が表示されるため「続行」をクリック

トリガーにRSSフィードのURLを設定する

「When a feed item is publshed」を選択し、フィードURLを設定します。
※ここではZennのトレンドのRSSフィードを設定してみます。

*は必須項目

項目 設定値 説明
RSS フィードの URL* この記事では https://zenn.dev/feed を指定 更新を受け取りたいWebサイトのRSSフィードURLを設定する
詳細パラメーター 「選択したプロパティを利用して新しいアイテムを判断します」にチェックをつける 何を基準にWebサイトが更新されたかを判断するか指定したいのでチェックを付ける
選択したプロパティを使用して新しいアイテムを判断します。 PublishDate 新しい記事が追加された日付を基に判断したいので、PublishDateを選択する。
項目を確認する頻度 任意の時間を指定。 即座に通知したい事情が特にないのであればデフォルト値のままでOK。

※ RSSフィードの更新を検知するトリガーは「ポーリング(監視)トリガー」と呼ばれます。ポーリングトリガーの実行間隔はユーザーのライセンスによって異なります。興味がある方は下記のページをご確認ください。
Microsoft Learn「ポーリングトリガー
Microsoft Learn「トリガーが発生するまでに遅延があります

Teamsへの通知メッセージを設定する

Webサイトの更新を検知する部分を作り終えたので、次に通知するチャットの設定をしていきましょう。今回は通知先をTeamsにするので、Teamsのどのチャンネルに通知するかを指定します。

*は必須項目

項目 設定値 説明
投稿者* フローボット(特定のユーザーで投稿したくない場合)or ユーザーを指定 今回は単にTeamsに通知させたいだけなので、いずれかでOK
投稿先* チャネル or グループチャット 投稿したい先を選択
(チャネルを選択した場合)チーム* 候補から選択、もしくはグループIDで指定 グループIDで指定する方法は後述
メッセージ* [フィードタイトル]が更新されました![プライマリフィードリンク] グループIDで指定する方法は後述

投稿先を指定する際には、自分が投稿できるチャネルやグループチャットが候補として表示されますが、しかし、参加しているチャットが多すぎてうまく見つけられないこともあります。そういったときはカスタム値で指定しましょう。

チームをカスタム値で指定する

チームのIDは、Teamsのチームの横にマウスカーソルを合わせると表示される三点メニューをクリックし、「チームへのリンクを取得」でリンクをコピーします。

リンク内の"groupId="以降から"&tenantId"の間の文字列がチームのIDとなります。
リンクをメモ帳などに貼り付けてこの値をコピーし、チームを指定する欄で「カスタム値を入力」をクリックしてから入力してください。

チャネルをカスタム値で指定する

チャネルのIDは、Teamsのチャネルの横にマウスカーソルを合わせると表示される三点メニューをクリックし、「チャネルへのリンクを取得」でリンクをコピーします。

チャンネルのURLは下記のような構造になっています。
teams.microsoft.com/l/channel/{チャネルID}/{チャネル名}?groupId={チームID}&tenantId={テナントID}

リンク内の"/channel/"以降から/{チャンネル名}までの文字列がチャネルIDとなります。
リンクをメモ帳などに貼り付けてこの値をコピーし、チャネルを指定する欄で「カスタム値を入力」をクリックしてから入力してください。

Teams以外に通知したい場合(Slack/Chatwork/Slingshot)

Teamsに通知するのであれば、テンプレートをそのまま活用できますが、他の通知先にしたい場合にはメッセージを送信する部分のアクションを変更する必要があります。

他のチャットツールにメッセージを投稿する方法は別の記事で詳しく書こうと思きますので、ぜひそちらもご覧いただければと思います。

Discussion