Daily price tracker for bot-protected competitor pages

By General Input

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.

Integrations

  • Proxy Scrape
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • Marketing
  • Operations

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.

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