n8nで競合サイトの更新を自動検知!Slackに通知する仕組みの作り方

n8nとSlackを連携させ、競合サイトの更新を自動検知する仕組みの作り方を解説します。手動チェックの手間を省き、市場の変化や価格改定をリアルタイムで把握するための具体的な手順を紹介します。ノーコードツールを活用して情報収集の効率と精度を高め、分析業務に集中できる環境を整えましょう。

競合他社の動きを把握する市場調査や競合分析は、ビジネス戦略を立てるうえで欠かせない業務のひとつです。しかし、対象となるWebサイトを毎日手動で巡回し、変更箇所を目視で確認する作業は、担当者にとって大きな負担となっているのが実情ではないでしょうか。

目視によるチェックは時間がかかるだけでなく、細かな価格変更やテキストの修正を見落とすリスクも伴います。こうした課題を解決する手段として注目されているのがワークフロー自動化ツール「n8n」を活用した自動検知システムの構築です。

n8nを使えば、プログラミングの深い知識がなくても、Webサイトの更新情報を自動で取得し、Slackやチャットツールへ即座に通知する仕組みを作成できます。

本記事では、競合サイトの変更を検知してSlackに通知を送る自動化ワークフローの具体的な作成手順を、初心者の方にも分かりやすく解説します。

※n8nのバージョンにより、ノード設定画面の項目名や配置が変更されている場合があります。

n8nとSlackで競合サイトの変更検知を行う仕組みとは

n8nとSlackを連携させて競合サイトの監視を行う仕組みについて、まずはその全体像と導入のメリットを整理します。自動化の構造を正しく理解することで、自社の業務に合わせて柔軟に応用するための基礎が固まります。

Webサイトの更新を自動でチェックする全体の流れ

今回作成するワークフローは、n8nが人間の代わりに定期的にWebサイトへアクセスし、情報の変化を監視するという仕組みです。具体的な処理の流れは以下のようになります。

  1. 定期実行:n8nが決められた時間に起動
  2. 現状確認:監視対象のWebサイトにアクセスし、最新のページデータを取得
  3. 比較判定:事前に保存しておいた「前回のデータ」と「最新のデータ」を突き合わせる
  4. 通知:両者のデータに差異(変更)があった場合のみ、Slackへ通知を送信
  5. データ更新:次回の比較に備えて、最新のデータを保存

この一連の流れを自動化することで、担当者がブラウザを開いて確認しにいく手間を省略することが可能になります。

ワークフローで得られる3つのメリット

このシステムを導入することで、業務には主に3つのメリットが生まれます。

まず、Webサイトの更新から検知までのタイムラグを最小限に抑え、競合他社の動きをリアルタイムに近い感覚で把握できる「情報取得の即時性」です。

次に、毎日の巡回業務を自動化して工数を削減し、空いた時間をより付加価値の高い分析や対策立案に充てる「業務効率化」が挙げられます。

そして、目視では見逃しやすい細部の変更もデータ比較によって確実に検知し、人の目や集中力に依存しない精度の高いモニタリング体制を構築する「見落としの防止」が可能となります。

自動化ワークフロー作成に必要な事前準備

ワークフローの作成に取り掛かる前に、必要となるツールのアカウント作成や環境設定を行います。スムーズに進めるために、以下の3つの準備を整えてください。

n8nのアカウント作成と初期設定

まず、ワークフローの中核となるn8nの利用環境を整えます。n8nには、サーバー構築不要ですぐに利用できる「クラウド版(n8n Cloud)」と、自社のサーバーなどにインストールして使う「セルフホスト版」があります。

初心者の場合は、環境構築の手間がかからないクラウド版から始めるのがスムーズです。アカウントを作成し、ログイン後のダッシュボードから「Add Workflow」をクリックして、新しいワークフロー作成画面(Canvas)を開いておきましょう。

Slackの通知用Webhook URLの取得

次に、通知を受け取るSlack側の設定を行います。n8nからSlackへメッセージを送るためには、「Incoming Webhooks」という機能を使用します。

  1. アプリの作成

Slackのアプリ管理ページ(Slack API)にアクセスし、「Create New App」を選択します。「From scratch」を選び、アプリ名と通知を送りたいワークスペースを指定します。

  1. Webhooksの有効化

左側のメニューから「Incoming Webhooks」を選び、スイッチを「On」に切り替えます。

  1. URLの発行

画面下部の「Add New Webhook to Workspace」ボタンを押し、通知先のチャンネルを選択して許可します。

  1. URLのコピー

発行された「Webhook URL」(https://hooks.slack.com/…で始まるURL)をコピーし、手元に控えておきます。

このURLは、n8nがSlackにメッセージを投稿するための「鍵」となる重要な情報です。外部に漏れないよう管理には注意してください。

データ比較用のGoogle Sheetsの準備

最後に、Webサイトの情報を一時保存しておくためのデータベースとして、Google Sheetsを用意します。新しいシートを作成し、1行目に見出しを設定します。

A列

URL(監視したいサイトのURL)

B列

CurrentContent(前回取得したテキストデータ)

C列

LastChecked(最終確認日時)

2行目のA列には、実際に監視したいWebサイトのURLを入力しておいてください。B列とC列は空欄のままで構いません。n8nが自動的に書き込みを行います。

【実践】競合サイト変更通知ワークフローの作り方

準備が整ったら、実際にn8nでワークフローを構築していきます。ここでは6つのステップに分けて、ノード(処理の単位)の設定方法を解説します。

ステップ1:定期実行のトリガーを設定する(Schedule Trigger)

ワークフローの起点となるトリガーを設定します。

  1. Canvas上の「+」ボタンを押し、「Schedule Trigger」を検索して追加します。
  2. 設定画面が開くので、「Trigger Rules」を設定します。例えば「Interval」を選択し、「Hours」「1」と設定すれば、1時間ごとにこのワークフローが自動実行されるようになります。

テスト段階では、手動で実行ボタン(Execute Workflow)を押して確認するため、設定はそのままでも問題ありませんが、運用時には適切な間隔を指定してください。

ステップ2:競合サイトのデータを取得する(HTTP Request)

監視対象のWebサイトにアクセスし、データを取得する設定を行います。今回は、先ほど作成したGoogle SheetsからURLを読み込み、そのURLに対してアクセスする流れを作ります。

Google Sheetsの読み込み

  1. 「Google Sheets」ノードを追加し、認証(Credential)設定を行います。
  2. 「Resource」を「Sheet」、「Operation」を「Read」に設定します。
  3. 「Spreadsheet ID」と「Range」を指定し、準備したシートのデータを読み込めるようにします。これでA列に入力したURLがn8nに取り込まれます。

Webサイトへのアクセス

  1. 「HTTP Request」ノードを追加し、Google Sheetsノードと接続します。
  2. 「Method」は「GET」を選択します。
  3. 「URL」の欄には、直接URLを入力するのではなく、前のノードから取得した変数を指定します(Input DataからA列のURLをドラッグ&ドロップするなど)。
  4. この状態で一度「Execute Node」を実行し、WebサイトのHTMLデータが取得できるか確認します。

ステップ3:特定の要素を抽出する(HTML Extract)

Webサイト全体のHTMLを比較すると、広告や日時の表示など、本質的ではない変更にも反応してしまう可能性があります。そのため、監視したい箇所のテキストだけを抽出します。

  1. 「HTML Extract」ノードを追加し、HTTP Requestノードと接続します。
  2. 「Source Data」には、HTTP Requestで取得したHTMLデータ(通常は dataやbody)を指定します。
  3. 「Extraction Values」で「CSS Selector」を使用し、監視したい要素を指定します。例えば、ニュース一覧のエリアが<div class=”news-list”>であれば、セレクタに.news-listと入力します。
  4. これにより、特定のニュース欄や価格表示エリアのテキストのみを抽出データとして扱えるようになります。

ステップ4:前回のデータと突き合わせる(IF)

ここで「変更があったかどうか」を判定するロジックを組み込みます。

  1. 「IF」ノードを追加します。
  2. 比較条件(Conditions)を設定します。左辺には「今回HTML Extractで抽出したテキスト(ステップ3のデータ)」、右辺には「Google Sheetsに保存されていた前回のテキスト(ステップ2-1のデータ)」を指定します。
  3. 演算子には「Not Equal(等しくない)」を選択します。

この設定により、テキストの内容が変わっている場合のみ「True」のルートに進み、変更がない場合は「False」へ進んで処理を終了させる分岐が完成します。

ステップ5:Slackに更新通知を送る(HTTP Request/Slack)

変更があった場合(Trueルート)に進んだ先で、Slack通知を行う設定です。

  1. IFノードの「True」出力側に「HTTP Request」ノード(またはSlackノード)を追加します。ここでは汎用性の高いHTTP RequestでのWebhook送信を例にします。
  2. 「Method」を「POST」にし、「URL」に準備しておいたSlackのWebhook URLを貼り付けます。
  3. 「Body Parameters」などでJSON形式のメッセージを作成します。

{

“text”: “【変更検知】競合サイトが更新されました!\nURL: <監視対象URL>\n確認日時: <現在日時>”

}

  1. <監視対象URL>などの部分は、n8nのExpression機能を使って動的な値を埋め込みます。

ステップ6:最新データを保存して次回に備える(Google Sheets)

通知を送っただけでは、次回の実行時にも「Google Sheetsに残っている古いデータ」と比較してしまい、連続して通知が来てしまいます。これを防ぐため、Google Sheetsの情報を最新の状態に更新します。

  1. Slack通知ノードの後に、「Google Sheets」ノードを追加します。
  2. 「Operation」を「Update」に設定します。
  3. 更新する対象の行を指定し、「CurrentContent」の列に、今回取得した最新のテキストデータを上書き保存するよう設定します。

これで、「検知→通知→データ更新」というサイクルが完成し、次回は新しいデータと比較が行われるようになります。

うまく動かないときのチェックポイントと対処法

設定したのにエラーが出る、あるいは通知が来ないといった場合、いくつかの原因が考えられます。よくあるトラブルとその対処法を紹介します。

エラーが出る場合のよくある原因

≪HTTP Requestが403 Forbiddenになる場合≫

Webサイトによっては、スクレイピング(プログラムによる自動アクセス)を拒否する設定になっていることがあります。この場合、「HTTP Request」ノードの「Header」設定で、「User-Agent」という項目を追加し、一般的なブラウザ(Chromeなど)のUser-Agent文字列を入力することで回避できる場合があります。ただし、相手方サーバーへの負荷や利用規約には十分配慮し、アクセス頻度を過剰に上げないよう注意が必要です。

≪Slackに通知が届かない場合≫

n8n上では「Success」と表示されているのにSlackに届かない場合は、Webhooks URLが間違っていないか、または送信するJSONデータの形式に誤りがないかを確認してください。特にJSONのカンマや括弧の閉じ忘れはよくあるミスです。

運用を安定させるためのコツ

サイト内の「アクセス数ランキング」や「現在の日時表示」など、毎回変わる部分を監視対象に含めてしまうと、更新のたびに通知が届き、重要な情報が埋もれてしまいます。ステップ3のHTML抽出において、変化を検知したい本文や価格部分だけをピンポイントで指定することが、運用を安定させる重要なポイントです。

また、最初は1日に1回程度の頻度から開始し、様子を見ながら1時間ごとなどに調整していくことをおすすめします。

まとめ|n8nとSlackの連携で、競合調査の自動化と業務効率化を実現しよう

n8nを活用すれば、高額な専用ツールを導入せずとも、自社の目的に合わせた柔軟な競合サイト監視システムを構築できます。手動での巡回業務から解放されることで、情報の収集スピードと正確性が向上し、より戦略的な業務にリソースを集中できるようになるでしょう。

まずは1つのサイト、1つの要素から監視を始めてみてください。運用に慣れてくれば、複数のサイトを同時にチェックしたり、通知内容をAIに要約させたりといった、より自動化へと発展させることも可能です。ぜひ本記事を参考に、自動化への第一歩を踏み出してください。

CONTACT

株式会社TWOSTONE&Sonsグループでは
60,000人を超える
人材にご登録いただいており、
ITコンサルタント、エンジニア、マーケターを中心に幅広いご支援が可能です。
豊富な人材データベースと創業から培ってきた豊富な実績で貴社のIT/DX関連の課題を解決いたします。

  • コンサルティング対応
    コンサルティング
  • 内製化支援・人材紹介・派遣対応
    内製化支援・人材紹介・派遣
  • 受託開発対応
    受託開発

幅広い支援が可能ですので、
ぜひお気軽にご相談ください!