Power Automate Desktopは、デスクトップアプリケーションやウェブの自動化を簡単に行える強力なツールです。業務効率を上げるために、Slackで特定のメッセージを検索し、その結果を自動的に報告するワークフローを作成するのは非常に便利です。この記事では、初心者向けにPower Automate Desktopを使ってSlackのメッセージを自動で検索して報告する手順を丁寧に解説していきます。
1. Slack APIトークンを取得する
Slackのメッセージにアクセスするためには、Slack APIトークンが必要です。まずは、以下の手順でAPIトークンを取得します。
- SlackのAPIサイト(https://api.slack.com/apps)にアクセスし、新しいアプリを作成します。
- 作成したアプリの設定ページに移動し、OAuth & Permissionsのセクションで「Bot Token Scopes」にアクセスします。
- メッセージの読み込みに必要なスコープ(
channels:historyやgroups:historyなど)を追加します。 - 「Install App to Workspace」ボタンをクリックし、ワークスペースにインストールします。
- OAuthトークンをコピーして、後ほどPower Automate Desktopで使用できるように準備しておきましょう。
2. Power Automate Desktopを起動する
次に、Power Automate Desktopを起動してフローを作成します。
- Power Automate Desktopを開き、新しいフローを作成します。
- 「Web APIの呼び出し」を行うアクションを使って、Slackのメッセージを検索するAPIリクエストを送る準備をします。
3. 「HTTPリクエスト」を使用してSlack APIに接続する
Power Automate Desktopには、APIとやりとりを行うための「HTTPリクエスト」アクションがあります。これを利用して、SlackのAPIに対してメッセージを検索するリクエストを送信します。
- 「HTTPリクエスト」アクションをフローに追加します。
- リクエストの設定は以下の通りにします。
- メソッド:
POST - URL:
https://slack.com/api/search.messages - ヘッダー: 以下のヘッダーを設定します。
Authorization: Bearer [あなたのSlackトークン]Content-Type: application/json
- ボディ: 検索クエリを指定します。例として、特定のキーワードで検索する場合のボディは以下のようになります。
{ "query": "検索したいキーワード", "count": 5 }この例では、指定したキーワードに一致するメッセージを最大5件取得するように設定しています。 - メソッド:
- 実行後、レスポンスとして取得されたデータを変数に保存します。レスポンスの形式はJSONで返ってくるため、後ほどデータを解析する必要があります。
4. JSONレスポンスを解析して必要なデータを取得する
Slackから返ってきたレスポンスはJSON形式です。これをPower Automate Desktopで処理し、必要なメッセージ内容を抽出します。
- 「JSONを解析」アクションを使い、HTTPリクエストのレスポンスデータを解析します。
- JSONの構造に従い、
messagesフィールドに含まれる検索結果をループで処理します。 - 各メッセージの
textフィールドを取得し、報告用にリストにまとめます。
5. 結果をレポートとして出力する
取得したメッセージを、レポートとして出力します。Power Automate Desktopでは、ファイルへの書き出しや、メールでの送信が可能です。ここでは、メールで報告する方法を解説します。
- 「メール送信」アクションを追加します。
- メールの宛先や件名、本文を設定します。本文には、取得したメッセージのリストを挿入します。例えば、以下のように設定します。
- 宛先: 自分または報告先のメールアドレス
- 件名: 「Slackのメッセージ検索結果」
- 本文:lessコードをコピーする
Slackで検索したメッセージの結果です。 1. メッセージ1: [メッセージ内容] 2. メッセージ2: [メッセージ内容] 3. メッセージ3: [メッセージ内容]
- フローを実行して、Slackのメッセージ検索結果が自動的にメールで送信されることを確認します。
よくある質問
Q1. Slack APIトークンはどこで管理すれば良いですか?
Slack APIトークンは、セキュリティの観点から安全に保管する必要があります。Power Automate Desktopの環境変数にトークンを保存するか、セキュリティソフトを使用して暗号化されたパスワードマネージャーで管理することをお勧めします。
Q2. 複数のチャンネルを検索したい場合はどうすれば良いですか?
search.messages APIは、ワークスペース全体で検索を行いますが、特定のチャンネル内で検索したい場合は、クエリにチャンネル名やIDを含めることができます。in:チャンネル名のように指定して検索クエリを調整しましょう。
Q3. 検索結果が多すぎる場合はどうすれば良いですか?
countパラメータを調整することで、取得するメッセージの数を制限することができます。デフォルトでは100件まで取得可能ですが、少ない件数を指定することで、必要な量だけを取得できます。
