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.

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?
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

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Local listing health board for every location you manage

See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.

Local Business Data
Google Sheets
App
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Let support send one-off Loops emails without an engineer

Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.

Loops.so
Stripe
Google Sheets
App
Stop cold emails to anyone with a live deal in Pipedrive

Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.

Mailshake
Pipedrive
Google Sheets
Deterministic Code
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App

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.