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.

Deterministic Code
Proxy ScrapeGoogle SheetsSlackMarketingOperationsResearch & MonitoringNotifications & Alerts
PromptCreate

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.

Additional information

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.

Frequently asked questions

Will this work on sites that block normal scrapers?
Yes. Each request is routed through a proxy designed to get past common anti-bot protections. If a particular site is especially aggressive, you can escalate that page to a stronger proxy tier without changing the rest of the workflow.
What should my tracker spreadsheet look like?
One row per product, with columns for the product URL, the product name, and your target price. The workflow appends history to a separate tab so the tracker sheet stays clean.
How often does it run?
Every weekday at 8am by default. You can change the schedule, run it more often during a launch window, or pause it over weekends.
How do I stop getting alerts for tiny price changes?
Raise the alert threshold. The default is 5 percent, but you can set it to anything that suits your category. The workflow still alerts whenever a price drops below your target, no matter the size of the move.
Can I add more competitors later?
Yes. Add a new row to the tracker sheet with the URL, product name, and target price. The next morning run picks it up automatically with no code changes.

Related templates

Weekend football matchday preview, posted to Slack

Every Friday, get a ready-to-read preview of your league's weekend matches, with positions, form, scorers to watch, and predicted results, posted to Slack.

API-Sports
Slack
Agentic Task
Auto-refresh a Google Sheet from Databricks every night

Every night we run your saved Databricks query and refresh a Google Sheet with the results, so your team reads the latest numbers without a login.

Databricks
Google Sheets
Deterministic Code
Log daily football results and league standings to Sheets

Every morning, automatically record yesterday's match results and each league's latest table into a spreadsheet you can chart or pivot.

API-Sports
Google Sheets
Deterministic Code
Weekly Braintree revenue and refund report for finance

Every Monday morning, finance leadership gets a clear recap of last week's Braintree sales, refunds, and disputes by email and Slack.

Braintree
Gmail
Slack
Agentic Task
Daily IP reputation screening with Slack threat alerts

Every morning we check your list of IP addresses for abusive activity, update your spreadsheet, and alert your team only about the risky ones.

AbuseIPDB
Google Sheets
Slack
Agentic Task
Turn Heroku deploys into a readable Slack changelog

Every time you ship to Heroku, we post a clear summary to Slack listing what changed, who deployed it, and whether it was a rollback.

Heroku
GitHub
Slack
Agentic Task

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.