Back to Templates

Monitor website changes and send diff alerts via Telegram and email

Created by

Created by: Tony Adijah || togo
Tony Adijah

Last update

Last update 13 days ago

Share


Who is this for

This workflow is ideal for marketers, product managers, competitive intelligence teams, and anyone who needs to track changes on web pages — whether it's competitor pricing, job postings, policy updates, product pages, or any content that matters to your business.

What this workflow does

It automatically monitors a list of URLs on a schedule, fetches each page, extracts clean text content, compares it against the previous snapshot stored in Google Sheets, generates a detailed line-by-line diff with change percentage and severity rating, and sends instant alerts via Telegram and email when changes are detected.

How it works

  • Schedule Trigger checks your target URLs at a configurable interval (default: every 4 hours).
  • URL List node defines which pages to monitor — easily add or remove URLs without touching other nodes.
  • HTTP Request fetches the current HTML content of each page with browser-like headers.
  • Content Extractor strips HTML tags, scripts, styles, and navigation to get clean readable text, plus extracts page title and meta description.
  • Load Previous Snapshot reads the last saved version from Google Sheets for comparison.
  • Diff Engine compares current vs. previous content line-by-line, calculates a change percentage, assigns a severity level (low/medium/high/critical), and generates a human-readable diff summary showing exactly what was added or removed.
  • Change Filter only passes through pages that actually changed — no noise, no false alerts.
  • Save Snapshot stores the new version in Google Sheets for the next comparison cycle.
  • Telegram + Email Alerts send formatted notifications with the diff summary, change percentage, severity, and a direct link to the page.

Setup steps

  • Add URLs — Edit the "URL List" code node and add your target URLs. Each entry needs a name (friendly label) and url (full URL). Optionally add a selector keyword to focus on specific page sections.
  • Google Sheets — Create a new spreadsheet with a sheet named "website" and columns: Name, url, selector, pageTitle, metaDescription, cleanText, contentHash, contentLength, fetchedAt, httpStatus. Connect your Google Sheets OAuth credential and set the spreadsheet ID in both Sheet nodes.
  • Telegram — Create a bot via @BotFather, get your Bot Token and Chat ID. Connect the Telegram credential and set your Chat ID in the Telegram Alert node.
  • Email (optional) — Connect your SMTP or Gmail credential in the Email Alert node and set your from/to addresses.
  • Schedule — Adjust the cron interval in the trigger node (every 1 hour for critical pages, every 24 hours for low-priority).
  • First Run — Run the workflow manually once to save baseline snapshots. Change detection begins from the second run onward.

Requirements

  • Google Sheets account with OAuth credentials
  • Telegram bot (created via @BotFather) with bot token and chat ID
  • SMTP or Gmail credentials for email alerts (optional)
  • n8n instance (cloud or self-hosted)

How to customize

  • Add CSS selector keywords in the URL List to monitor only specific sections of a page (e.g., pricing tables, job listings).
  • Increase check frequency to every 15 minutes for critical monitoring.
  • Add Slack, Discord, or WhatsApp as additional alert channels by branching from the Save Snapshot node.
  • Use AI (OpenAI, Ollama) to summarize changes in plain language instead of raw diff output.
  • Monitor API endpoints (JSON responses) by adjusting the Content Extractor logic.
  • Add multiple sheets for different monitoring categories (competitors, pricing, legal, careers).