1. Opening Problem Statement
Meet Lisa, a content manager responsible for monitoring updates on key competitor websites and industry news portals. Every 5 minutes, she used to manually check a specific news website to spot any changes or new articles. This repetitive task consumed at least 30 minutes daily, sometimes leading to missed updates due to human error or distractions.
Missing crucial updates means delayed reactions, lost opportunities, and untracked competitor moves. Lisa needed an automated, reliable way to monitor website changes and get instant notifications without constant manual effort.
2. What This Automation Does
This n8n workflow automates website change detection and delivers Telegram alerts. Here’s what it accomplishes:
- Checks the target website (https://news.ycombinator.com/) every 5 minutes using the Cron trigger node.
- Fetches the current page content via two HTTP Request nodes separated by a 5-minute Wait node to compare snapshots.
- Uses an IF node to compare the two fetched page contents to detect any differences.
- If a difference is detected, sends an instant notification message to a specified Telegram chat using the Telegram node.
- If no change is detected, it passes control to a NoOp node that does nothing, avoiding unnecessary noise.
- Eliminates manual monitoring, ensuring timely awareness of website updates and enabling faster decision-making.
3. Prerequisites ⚙️
- n8n Account (cloud or self-hosted) 🔌
- Telegram bot with API credentials for sending messages 🔑💬
- Basic understanding of HTTP requests and n8n node configuration ⏱️
Optional: For self-hosting n8n, you can check this Hostinger guide.
4. Step-by-Step Guide
Step 1: Set Up the Cron Trigger for Periodic Checks
Navigate in n8n editor and click Add Node > Cron. Configure it to run every 5 minutes:
- Trigger Times > Mode: Every X > Unit: minutes > Value: 5
You should see the Cron node triggering the workflow every 5 minutes to initiate website content fetching.
Common Mistake: Forgetting to set the correct time unit or value will cause the workflow to trigger at unwanted intervals.
Step 2: Configure the First HTTP Request Node
Add an HTTP Request node after the Cron node.
- Set URL to
https://news.ycombinator.com/ - Ensure the response format is string to capture raw HTML content.
Successful execution fetches the webpage HTML content.
Common Mistake: Using JSON format here will not work since the response is HTML.
Step 3: Add a Wait Node for Delay
Connect the first HTTP Request node to a Wait node.
- Set the wait duration to 5 minutes (unit: minutes, amount: 5).
This pauses the workflow before fetching the website content again for comparison.
Common Mistake: Setting an incorrect wait time smaller than the Cron interval can lead to overlap or unexpected comparisons.
Step 4: Add the Second HTTP Request Node
Attach a second HTTP Request node after the Wait node, configured exactly like the first. This fetches the fresh webpage content after the waiting period.
Step 5: Add an IF Node to Compare Page Content
Add an IF node after the second HTTP Request node to compare the first and second fetches.
- Set the condition to compare the content strings from the first and second HTTP Request nodes.
- For example, use the expression:
{{$node["HTTP Request"].json["data"]}} = {{$node["HTTP Request1"].json["data"]}}but inverted logic, so if the contents are different it confirms change.
If the contents differ, the IF node outputs true, else false.
Common Mistake: Misconfiguring the expression to incorrectly compare the nodes or properties.
Step 6: Send Telegram Alert on Change
Connect the true output of the IF node to a Telegram node.
- Configure the Telegram node with your bot’s credentials.
- Set the message text, e.g., “Something got changed”.
- Enter the chat ID where the alert should be sent.
When a change is detected, the workflow sends this notification to Telegram instantly.
Common Mistake: Using incorrect Telegram bot credentials or chat ID will prevent messages from sending.
Step 7: Handle No Change with NoOp Node
Connect the false output of the IF node to a NoOp node.
This node does nothing but allows the workflow to continue cleanly without sending duplicate or unnecessary alerts.
5. Customizations ✏️
- Change the Monitored Website: Update the URL in both HTTP Request nodes to monitor any other webpage.
- Adjust Notification Frequency: Modify the Cron node or Wait node timing for faster or slower polling.
- Customize Telegram Message: Edit the Telegram node text to include dynamic content or timestamps using expressions.
- Add Content Filtering: Insert a Code node before the IF to filter out irrelevant HTML sections before comparison for more targeted alerts.
6. Troubleshooting 🔧
Problem: “Telegram message not sent”
Cause: Incorrect bot token or invalid chat ID.
Solution: Double-check Telegram credentials in the Telegram node settings, test bot connectivity with Telegram API tools.
Problem: “IF node always returns no change”
Cause: The page source might include dynamic timestamps or session IDs that prevent exact content matches.
Solution: Use a Code node to clean or normalize HTML content before comparison to ignore dynamic parts.
7. Pre-Production Checklist ✅
- Confirm Cron node triggers every 5 minutes as intended.
- Verify both HTTP Request nodes correctly fetch the webpage content.
- Test IF node logic by manually adjusting one HTTP Request output to simulate change.
- Ensure Telegram node sends test messages to your chat ID.
- Backup your workflow and credentials securely.
8. Deployment Guide
Activate your workflow by toggling the active switch in n8n. Let it run continuously on your preferred platform.
Monitor execution logs in n8n to review operation and troubleshoot failures. Adjust timings if you notice missed intervals due to resource constraints.
9. FAQ
Q: Can I use another messaging platform instead of Telegram?
A: Yes, you can replace the Telegram node with other notification nodes supported by n8n, such as Slack or email, adjusting configurations accordingly.
Q: Does this workflow consume a lot of API credits?
A: No, it only makes HTTP GET requests to public webpages, so there’s no API credit consumption, but your hosting limits apply.
Q: How secure is my data?
A: Your data flows between your n8n instance and the target website without third-party storage. Your Telegram messages are secured by Telegram’s protocols.
10. Conclusion
By setting up this n8n workflow, you automated the tedious task of manually monitoring website changes every 5 minutes. Lisa now saves 30 minutes daily and gains prompt updates for faster decision-making.
Next, you could extend this by filtering content changes more precisely, sending advanced notifications with summaries, or monitoring multiple websites simultaneously.
This automation is a beginner-friendly, practical way to add significant value to your daily workflow with minimal setup.
Happy automating!