Daily competitor price monitoring with Slack alerts
Every morning we check your competitors' prices, log them to a history tab, and post a Slack alert only when something actually moved.
Every morning at 6am, monitor my competitors' prices and alert me in Slack only when something actually changed.
Start by reading my competitor tracking sheet in Google Sheets using Get Values. Each row holds a product name, a competitor product URL, and my own current price for that product. The spreadsheet is the control panel: I add and remove products there, so read whatever rows exist at run time and never hardcode URLs into the workflow.
Take every competitor URL from that sheet and run them through Hyperbrowser as a single Start Batch Scrape Job, not one job per URL. Then use Start Extract Job with a JSON schema covering price as a number, currency as a string, and in-stock status as a boolean, so I get clean structured numbers off each page instead of raw text I have to parse myself. Both of these are asynchronous jobs, so poll for completion and read the results with Get Batch Scrape Job Result and Get Extract Job Result before moving on.
Before writing anything new, read the existing history tab with Get Values and find the most recently recorded price and stock status for each competitor URL. Do this comparison read first, because appending today's rows before reading would make today's numbers look like the previous run and every product would appear unchanged.
Append every result as a dated row to a history tab in the same spreadsheet using Append Values: one row per product per run, carrying the run date, product name, competitor URL, extracted price, currency, in-stock status, and my own price. Log every product on every run, including the ones that did not move, so the history tab builds a complete price history over time that I can chart.
Then compare each new price against the previous run and post a Slack message with Send a Message only when at least one of these rules fires: a competitor price changed by more than a configurable percentage threshold that defaults to 5 percent, an item went out of stock or came back in stock, or a competitor price is now below my own price for that product.
Each alert line should show the product name, the old price, the new price, the percent change, and a link to the competitor product page, and should make clear which rule fired. Group everything that moved into one message rather than sending a separate message per product.
Stay silent when nothing crossed the threshold. If no product triggered a rule, skip the Slack step entirely so the channel does not get noisy. On the very first run there is no history to compare against, so log the baseline rows and do not alert. If a page fails to scrape or the extraction returns no usable price, skip that product for alerting rather than treating it as a change to zero, and carry on with the rest. Only compare prices when the currency matches the previous run, so a currency switch on the page does not look like a huge price move.
Keep the percentage threshold, the spreadsheet id, the two tab names, and the Slack channel as easy-to-edit settings at the top of the workflow.
Additional information
What does this prompt do?
- Reads your tracking spreadsheet each morning, where every row is a product, a competitor page to watch, and your own current price.
- Checks all of those competitor pages in one pass and pulls out the current price, the currency, and whether the item is in stock.
- Adds a dated row for every product to a history tab, so you build a real price history you can chart over time.
- Posts a Slack alert only when something changed: a price moved more than your threshold, stock flipped, or a competitor dropped below your price.
What do I need to use this?
- A Google account with a tracking spreadsheet: one tab listing your products, competitor page links, and your own prices, plus a second tab for price history
- A Hyperbrowser account, which is what reads the competitor pages for you
- A Slack workspace and the channel where price alerts should land
How can I customize it?
- Change the alert threshold, which defaults to 5 percent, or the time it runs each morning
- Add or remove products by editing the spreadsheet directly, with no need to touch the automation itself
- Decide which alerts matter to you: price moves, stock changes, competitors undercutting you, or only some of them
- Point it at a different Slack channel, or split urgent undercutting alerts into their own channel
FAQs
Do I have to edit the automation every time I want to track a new product?
Will this spam my Slack channel every day?
What happens on the very first run?
Does this work on any online store?
What if one competitor page fails to load?
Can I track more than a handful of products?
Related templates
New roof inspection requests from your website form land in JobNimbus within a minute, with no duplicate records and nothing retyped by your team.
Every weekday at 7am, your active courses are checked for missing work, silent logins, and slipping grades, with a ranked list sent to your advising channel.
Every new customer request gets a priority, triage labels, a friendly reply with the right help article, and a Slack ping only when it is truly urgent.
Every Monday at 8am, see exactly which assignments have work waiting, sorted worst first, posted to Slack and logged to a spreadsheet.
When a bot opens a version bump pull request, we read the real documentation for that exact version and tell you whether it is safe to merge.
The moment a deal hits Closed Won, the right contract starts in Ironclad, the link lands on the deal, and your sales channel hears who owns the next step.
Stop checking competitor prices by hand.
Let this run every morning and only hear about it when a price actually moves.