🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Telegram: price changes sent to you

Lisa Granqvist Partner Workflow Automation Expert

Your prices move, competitors adjust, and somehow you find out hours later. Not because you’re asleep at the wheel, but because checking ten product pages (then updating a spreadsheet) is slow, boring, and weirdly easy to “do tomorrow.”

Ecommerce managers feel it when margins get squeezed. Growth marketers notice it when promos stop converting. And founders running lean? They end up doing the checking themselves. This Sheets Telegram alerts automation catches price changes for you and pings you in Telegram, usually before your next meeting.

Below you’ll see exactly what the workflow monitors, what gets logged, and how it keeps a clean “baseline” price so your alerts stay trustworthy.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Telegram: price changes sent to you

The Problem: Price Monitoring Turns Into a Daily Time Sink

Manually tracking competitor prices sounds simple until you do it for a week. You open a sheet, click a URL, wait for a page to load, hunt for the price, then copy it back (hopefully in the right row). Repeat for every product. Then someone asks, “When did it change?” and you realize you didn’t keep history, only the latest number. Or worse, the “latest number” is wrong because a currency symbol or comma broke your copy-paste.

It adds up fast. Here’s where it breaks down in real teams.

  • Checking 20 products across multiple sites can eat about an hour every morning, and that’s before you even react.
  • Without a baseline and a history log, you argue about what changed instead of acting on it.
  • Copy-paste errors sneak in, which means you end up mistrusting the sheet you built.
  • By the time you spot a price drop, the window to match it (or counter it) may already be closing.

The Solution: Daily Price Checks Logged in Sheets, Alerts in Telegram

This n8n workflow runs on a schedule (once a day at 8 AM, by default), reads your product list from Google Sheets, and checks each product URL for the current price. It goes one item at a time and pauses briefly between requests, so you’re less likely to get blocked by the website you’re monitoring. After it scrapes the price from the page, it normalizes the number, compares it to the last known price in your sheet, and calculates the price change percentage. If a change is detected, it sends you a clean Telegram alert (“Price Drop” or “Price Hike”), logs the event to a separate history tab, then updates your “master” sheet so tomorrow’s run compares against the new baseline.

The workflow starts with your Google Sheet as the source of truth. It checks each URL via HTTP, extracts and cleans the price, then uses an If check to decide what happens next. When a price changed, you get a Telegram message plus a row in your tracking tab, and the master sheet gets updated after a short pause.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you track 25 competitor product pages. Manually, even a quick check is maybe 2 minutes per page once you include loading, finding the right variant, and updating the row, which is roughly 50 minutes per day. With this workflow, your “work” is adding URLs to the master sheet (5 minutes once a week) and reading Telegram alerts. The run itself takes time in the background because of the built-in 20-second delay per item, but you’re not doing it. That’s close to an hour back on the days you used to check.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store your product list and baseline.
  • Telegram to receive alerts in real time.
  • Telegram Bot token + chat_id (get them from BotFather and your Telegram chat).

Skill level: Beginner. You’ll connect accounts, paste a Sheet ID, and verify one CSS selector.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A scheduled run kicks things off. The workflow triggers once a day at 08:00 server time (you can change that to match your morning routine).

Your sheet provides the targets. n8n reads the “product_data” (or “master”) tab that includes each product_url and the last known price you want to compare against.

Each product page is checked carefully. The workflow processes one URL at a time, waits about 20 seconds between requests, then loads the page via HTTP and extracts the current price from the HTML using your CSS selector. A couple of quick cleanup steps normalize the number and calculate the difference.

Only real changes create noise. An If check flags rows where the price_changed field is true. When that happens, n8n writes a history row to the “price_tracking” tab (timestamp, old, new, percent change) and sends a Telegram message. After a short wait, it updates the master sheet so tomorrow’s baseline is correct.

You can easily modify the schedule time to run more often based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Set the workflow to run every morning using the schedule trigger.

  1. Add and open Scheduled Morning Start.
  2. Set the schedule rule to run daily at 8 (hour) to match the existing configuration.
  3. Connect Scheduled Morning Start to Retrieve Product Sheet Rows.

Step 2: Connect Google Sheets

Pull the product URLs and prices from your spreadsheet, then prepare updates back to your master and history sheets.

  1. Open Retrieve Product Sheet Rows and set Document to [YOUR_ID] and Sheet to product_data.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Product Sheet Rows.
  3. Open Append Price History and confirm Operation is append, Document is [YOUR_ID], and Sheet is price_tracking.
  4. Ensure column mappings use expressions like {{$json.last_price}}, {{$json.current_price}}, and the timestamp formatting expression already present in Append Price History.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Price History and Update Master Price.
  6. Open Update Master Price and confirm Operation is update, matching on product_url with mappings {{$json.current_price}} and {{$json.product_url}}.

Step 3: Set Up Product Iteration and Scraping

Loop through each product, delay between requests, and fetch the product page HTML for price extraction.

  1. Connect Retrieve Product Sheet Rows to Batch Iterate Products to start the batch loop.
  2. In Delay Between Calls, set Amount to 20 (seconds) to throttle requests.
  3. Open Request Product Page and set URL to {{ $json.product_url }}.
  4. Enable Send Headers and set Headers (JSON) to the provided browser-like user agent and accept headers.
  5. Connect Delay Between Calls to Request Product Page to enforce the wait between calls.
  6. Note the parallel execution: Request Product Page outputs to both Parse Current Price and Batch Iterate Products in parallel.

Step 4: Set Up Price Parsing and Calculation

Extract price from HTML, normalize values, and compute the delta for change detection.

  1. In Parse Current Price, set Operation to extractHtmlContent and confirm the CSS selector .price__regular > span.price-item--regular maps to current_price.
  2. Open Normalize Price Numbers and confirm it references the original row with $items("Delay Between Calls")[0].json and parses the numeric price.
  3. Open Calculate Price Delta and confirm it computes price_changed and price_diff_pct based on last_price vs current_price.
  4. Open Sanitize Parsed Fields and keep the cleaned output fields (product_url, last_price, current_price, price_changed, price_diff_pct, timestamp).
  5. Connect Parse Current PriceNormalize Price NumbersCalculate Price DeltaSanitize Parsed FieldsPrice Change Check.

If the CSS selector in Parse Current Price doesn’t match the competitor site, update it to the correct price element before running the workflow.

Step 5: Configure Alerts and Sheet Updates

Send Telegram alerts on price changes and log changes to Google Sheets with a controlled update delay.

  1. In Price Change Check, keep the condition {{ $json.price_changed }} equals true.
  2. Note the parallel execution: Price Change Check outputs to both Compose Telegram Alert and Append Price History in parallel.
  3. Open Compose Telegram Alert and confirm the message formatting includes the URL, prices, and percentage change.
  4. Open Dispatch Telegram Alert and set Text to {{$json["message"]}} and Chat ID to [YOUR_ID].
  5. Credential Required: Connect your telegramApi credentials in Dispatch Telegram Alert.
  6. Open Wait Before Sheet Update and set Unit to minutes and Amount to 1.
  7. Connect Append Price HistoryWait Before Sheet UpdateUpdate Master Price.
  8. Ensure Dispatch Telegram Alert reconnects to Batch Iterate Products so the loop continues after alerting.

⚠️ Common Pitfall: If Dispatch Telegram Alert is not connected back to Batch Iterate Products, the batch loop can stop after the first alert.

Step 6: Test and Activate Your Workflow

Run a manual test to confirm price parsing, alerts, and sheet updates before enabling the daily schedule.

  1. Click Execute Workflow to run a manual test from Scheduled Morning Start.
  2. Verify that Request Product Page returns HTML and Parse Current Price extracts current_price.
  3. Confirm Append Price History writes a new row and Update Master Price updates the matching product_url.
  4. Trigger a known price change and verify Dispatch Telegram Alert sends a message to your Telegram chat.
  5. Once successful, toggle the workflow to Active so Scheduled Morning Start runs daily.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials page and confirm the account still has access to the spreadsheet.
  • If you’re using Wait nodes or external loading, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses, especially after “Request Product Page.”
  • CSS selectors drift when a site changes its layout. If alerts stop (or look wrong), inspect the product page again and update the selector in “Parse Current Price.”

Frequently Asked Questions

How long does it take to set up this Sheets Telegram alerts automation?

About 15 minutes if your sheet tabs are ready.

Do I need coding skills to automate Google Sheets price alerts?

No. You’ll mostly connect accounts and paste your Sheet ID. The only “technical” piece is confirming a CSS selector for the price on the page.

Is n8n free to use for this Sheets Telegram alerts workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in website access (some sites block scraping) but there are no required paid APIs in this specific workflow.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Sheets Telegram alerts workflow for checking prices more than once per day?

Yes, and it’s a common tweak. Change the time in the “Scheduled Morning Start” trigger to run more often, then adjust the “Delay Between Calls” wait so you don’t hammer a site. You can also split your product list into multiple sheets (by competitor or category) and run separate schedules for each.

Why is my Telegram connection failing in this workflow?

Usually it’s a bad bot token or the wrong chat_id. Regenerate the token in BotFather if needed, then confirm your bot has been added to the group (or started in a 1:1 chat) so it’s allowed to post. If it used to work and stopped, check the Telegram node credentials inside n8n and re-save them.

How many products can this Sheets Telegram alerts automation handle?

Dozens per run is realistic for most small teams.

Is this Sheets Telegram alerts automation better than using Zapier or Make?

For website price scraping plus conditional logic, n8n is usually the more practical choice because you can control delays, parse HTML, and branch your logic without fighting platform limits. Zapier and Make are great for app-to-app syncing, but scraping often becomes brittle or requires paid add-ons. Another difference is cost behavior: with self-hosted n8n you’re not paying per task the same way, which matters when you monitor lots of URLs. That said, if you only need a simple “row changed → send message” flow, Zapier or Make can be quicker to click together. If you want a second opinion on your exact use case, Talk to an automation expert.

Once this is running, price monitoring stops being a chore you postpone. You’ll just get the signal, plus the history to back it up, and move.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal