Daily price tracker for bot-protected competitor pages
Every weekday at 8am, check competitor product pages even when they block regular bots, log prices in Google Sheets, and ping Slack when one dips below your target.
Build me a daily competitor price tracker as a code workflow that runs on a cron schedule every weekday at 8am in my local timezone.
Inputs come from a Google Sheet I maintain. The tracker tab has one competitor product per row, with columns for product name, product URL, and target price. Use Google Sheets Get Values to read the full tracker range into the workflow at the start of each run.
For each row, call Proxy Scrape Fetch a Web Page on the product URL with returnFormat set to markdown so the page is easy to parse. Start at the default proxy tier and let me bump specific products up to premium or stealth via an optional per-row column if a site blocks the default tier. Do not enable JavaScript rendering unless I flag a row, since it costs more credits.
Extract the current price from the returned markdown. Strip currency symbols and thousands separators, parse to a number, and capture the currency so it can be displayed in alerts. If a page returns no parseable price, skip that row and continue with the rest rather than failing the whole run.
Then write to a separate Price History tab in the same spreadsheet using Google Sheets Append Values. Each appended row should include the run date, product name, product URL, current price, currency, the previous price for that URL (looked up from the most recent prior history row), and the percent change versus that previous price.
Compute an alert signal for each product. Trigger an alert if either: the percent drop from the last recorded price exceeds a configurable threshold (default 5 percent), or the current price is at or below the target price for that row. Increases should not trigger alerts.
For every triggered row, use Slack Send a Message to post into a configurable pricing channel. The message should include the product name, the old price and the new price with currency, the percent change, the target price for context, and a clickable link to the product page.
Keep the whole flow deterministic: cron trigger, Sheets read, loop over rows calling Proxy Scrape, regex or simple text parsing for the price, Sheets append, conditional Slack post. No model calls, no judgement steps. Handle scraper failures and unparseable prices gracefully so one broken site does not block the rest of the run.
Configurable values I want surfaced: schedule time and timezone, tracker spreadsheet id, tracker tab name, history tab name, default percent change threshold, default proxy tier, and Slack channel.
What does this prompt do?
- Reads your list of competitor product URLs and target prices from a Google Sheet, so you control exactly what gets watched.
- Visits each product page through a proxy that can bypass common anti-bot protections, even on sites that block plain requests.
- Appends a timestamped row to a price history tab with the date, URL, current price, and percent change from the last reading.
- Posts a Slack alert in the channel you choose whenever a competitor drops more than your threshold or slips below your target price, with the old price, new price, and a link to the page.
What do I need to use this?
- A Google account with edit access to a tracker spreadsheet listing product URLs and target prices.
- A Slack workspace and a channel where pricing alerts should land.
- A General Input account with credits available for proxy scraping. No extra scraper signup needed.
How can I customize it?
- Change the schedule, the days it runs, or the timezone to match when your pricing team starts the day.
- Adjust the alert threshold, for example 2 percent for tight monitoring or 10 percent to cut noise.
- Pick which Slack channel gets pinged and tweak the message copy to tag the pricing lead or include extra fields.
FAQs
Will this work on sites that block normal scrapers?
What should my tracker spreadsheet look like?
How often does it run?
How do I stop getting alerts for tiny price changes?
Can I add more competitors later?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.
Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Work every return, damage and warranty claim in one queue, with the order, the delivery date and a policy-backed recommendation already on screen.
See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.
Stop refreshing competitor pages that block your scraper.
Connect Google Sheets and Slack once, and Geni checks every competitor product page every weekday morning, even the ones that fight scraping.