E-commerce & Dropshipping · n8n

Competitor Price Watch: know within the hour when a rival changes a price

An n8n workflow that checks a list of competitor product pages on a schedule, extracts the current price with Claude (so layout changes don't break it), compares against the last known price in Google Sheets, and pings your Telegram the moment something moves.

difficulty Intermediatesetup 45 minresult A price-change alert with old price, new price, and % delta — before your customers notice
  1. 1

    Keep the watchlist in a sheet

    Create a Google Sheet with columns url, label, last_price. Add a Schedule Trigger (every 6 hours) and a Google Sheets node that reads all rows. Adding a competitor product later = adding one row, no workflow edits.

  2. 2

    Fetch each product page

    Add an HTTP Request node that GETs each URL with a normal browser User-Agent header, followed by an HTML node (operation: extract text) to strip the markup down to readable text. Add a small random Wait between requests to stay polite.

  3. 3

    Ask Claude for the price

    An HTTP Request node to the Claude API: 'Here is the text of a product page. Return JSON {price: number, currency: string} for the main product's current price. If there is a sale price and an original price, return the sale price.' This one prompt works across wildly different store layouts.

  4. 4

    Compare and alert on change

    A Code node compares the extracted price with last_price from the sheet. If it differs by more than 1% (guards against currency-rounding noise), an IF branch fires a Telegram message — ⚠️ Rival dropped Phone Case X: $24.99 → $19.99 (−20%) — and a Google Sheets update writes the new price back so the next run has fresh state.

Frequently asked questions

Why use Claude to read the price instead of CSS selectors?

Selectors break every time a competitor redesigns their product page — and you find out weeks later when your data is silently stale. Claude reads the rendered text and finds 'the price of the main product' the way a human would, which survives redesigns. It costs a fraction of a cent per page check.

Is scraping competitor prices allowed?

Reading publicly visible prices is generally lawful in most jurisdictions (you're doing what any visitor does), but always check the site's terms and keep your polling gentle — this recipe defaults to every 6 hours per page, which is far below anything that would burden a server. Don't hammer, don't bypass logins or paywalls.

How many products can I track?

The list lives in a Google Sheet — one row per URL. Fifty products checked 4x a day is 200 light requests and about $0.20/day in Claude calls. If you need hundreds of SKUs across marketplaces, switch the fetch step to an Apify actor built for that store.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.