Weekday competitor pricing watcher with Browserbase and Slack

Every weekday at 8am ET, load each competitor's pricing page with a real browser, log the price to Google Sheets, and ping Slack only when something actually moved.

Deterministic Code
BrowserbaseGoogle SheetsSlackMarketingOperationsResearch & MonitoringNotifications & AlertsData Sync
PromptCreate

Build a code workflow that runs every weekday at 8am America/New_York and watches a configurable list of competitor pricing page URLs. The list of URLs (with a friendly competitor name and an optional product/tier label per row) should be a workflow input, or read from a small config tab in the same Google Sheet used for logging.

For each URL, run the following deterministic per-URL flow in parallel where possible:

1. Browserbase Create Session to provision a fresh headless browser session and get its connect URL.

2. Drive that session with Stagehand or Playwright over the connect URL. Navigate to the competitor URL, wait for the pricing content to render, then extract the current sticker price as a number, the plan or tier name, any "starting at" or "from" copy near it, and the effective currency. Capture a screenshot of the rendered page and keep its public URL.

3. Browserbase Release Session immediately after extraction so the session does not sit idle.

Before writing the new row, use Google Sheets Get Values to read the most recent prior snapshot for that competitor and product from the Pricing Log tab (or a separate Latest Snapshot tab), so you can compute the absolute and percent change.

Then use Google Sheets Append Values to write one row per competitor per run to the Pricing Log tab with these columns: timestamp (ISO), competitor name, product or tier, URL, price (numeric), currency, raw starting-at copy, screenshot URL, previous price, absolute change, percent change. Both raw and percent change columns must be present so the sheet doubles as a pricing dashboard.

For every row whose absolute percent change exceeds a configurable threshold (default plus or minus 3 percent), use Slack Send a Message to post an alert to a configurable channel that names the competitor and product, shows the old price, the new price, and the percent change, and includes both the screenshot URL and a link to the source pricing page. Suppress the alert when the change is below the threshold or when there is no prior snapshot (the first run for a new URL only logs a baseline).

Keep the Browserbase step deterministic: one session per URL, fixed Stagehand instructions or Playwright selectors per competitor, always capture the screenshot, always release the session. Handle per-URL failures gracefully so one broken page never blocks the rest of the run, and log a clear row in the sheet (or a separate Errors tab) when a URL fails so the team can fix it.

What does this prompt do?

  • Loads each competitor pricing page in a real headless browser so JavaScript-rendered prices and A/B-tested tiers show up correctly.
  • Appends a timestamped row per competitor to Google Sheets on every run, so the sheet doubles as a clean historical pricing dashboard.
  • Compares the new price to the last recorded snapshot and only fires a Slack alert when the change crosses your threshold.
  • Sends a Slack message with the old price, new price, percent change, a screenshot of the page, and a link back to the source.

What do I need to use this?

  • A Browserbase account (the free tier is enough to get started).
  • A Google account with edit access to the sheet you want to log into.
  • A Slack workspace and the channel you want alerts posted in.
  • A list of competitor pricing page URLs you want to track.

How can I customize it?

  • Change the schedule. Default is every weekday at 8am ET, but any cron pattern works.
  • Set the alert threshold. Default is plus or minus 3 percent. Tighten it for noisy markets, loosen it for stable ones.
  • Pick the Slack channel and tweak the alert wording to fit your team.
  • Add or remove competitor URLs in one place without editing the rest of the workflow.

FAQs

Why does this use a real browser instead of a simple web request?
Most modern SaaS pricing pages are rendered by JavaScript, sit behind bot detection, or serve different content to different visitors through A/B tests. A real headless browser loads the page the way a customer would, so the price you capture matches what people actually see.
Will the Google Sheet keep growing forever?
Yes, by design. The sheet doubles as a historical pricing dashboard, so you can chart how each competitor's prices have moved over weeks and months. Archive older rows whenever you want to keep it tidy.
How do I add a new competitor to the watch list?
Add a row with the product URL to the input list. The next run will pick it up, log a baseline price, and start alerting on changes from that point on.
What happens if one pricing page is down or changes its layout?
The run for that one URL fails cleanly without breaking the others, and you can see the error in the run history so you know which competitor to look at.
How do I change which Slack channel gets the alerts?
Edit the channel in the Slack step once and every future run will post there. You can also route different competitors to different channels if you want.

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 your competitors' pricing pages.

Connect Browserbase, Google Sheets, and Slack once, and Geni runs the pricing watch every weekday at 8am for you.