Daily competitor price monitoring with Slack alerts

By General Input

Every morning we check your competitors' prices, log them to a history tab, and post a Slack alert only when something actually moved.

Integrations

  • Hyperbrowser
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • Operations
  • Sales

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats