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 4 hours 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).