Weekday morning competitor pricing watch in Slack
Every weekday at 8am, pull your competitors' pricing pages, log a snapshot in Google Sheets, and post a Slack digest only when tiers, plans, or prices actually moved.
Integrations
TinyFish
Google Sheets
Slack Bot
Type
Categories
- Marketing
- Operations
Build an agent workflow that runs every weekday at 8am in my local timezone and watches my competitors' pricing pages.
Trigger: cron, Monday through Friday at 8am.
Inputs (from a Google Sheet I maintain): a list of competitor pricing page URLs, and the prior snapshot for each URL (most recent stored tiers, plan names, prices, and feature bullets). Use the Google Sheets Get Values operation to read both the URL list and the last known snapshot rows. Assume one tab named 'competitors' with columns: competitor_name, pricing_url; and a second tab named 'snapshots' with columns: timestamp, competitor_name, pricing_url, tiers_json, raw_excerpt.
For each competitor URL, use the TinyFish Fetch URLs operation (https://api.fetch.tinyfish.ai) to pull the current rendered page content. Batch URLs in groups of up to 10 per Fetch call. Do not use the TinyFish Search API for this; Fetch is the right tool and has higher rate limits. Extract the visible tiers (tier name, monthly price, billing terms, included seats or units, key feature bullets, and any prominent public claims like 'most popular' or 'free forever').
Diff today's pull against the prior snapshot row for that same URL. Decide which changes are meaningful and which are noise. Meaningful changes include: any price change greater than 3 percent up or down, a new tier added, a tier removed or renamed, a plan limit changed (seats, requests, storage), or a public marketing claim changed on a tier. Ignore noise like reordered feature bullets, whitespace, copy tweaks that do not change meaning, or cosmetic changes.
After every fetch, append a fresh snapshot row for that competitor to the 'snapshots' tab using the Google Sheets Append Values operation, regardless of whether anything changed. This keeps a full history.
If at least one competitor had a meaningful change, post a single Slack digest using the Slack Bot Send a Message operation to my competitive intel channel. Group the message by competitor. For each competitor with changes, include a one-line summary of what moved (for example: 'Pro tier: $49 → $59 (+20%)', 'New Enterprise tier added', 'Removed Starter plan', 'Team plan now includes SSO'), and link the pricing page URL. Keep the message terse. Use Slack mrkdwn formatting (*bold*, _italics_, <url|text> links).
If zero competitors had meaningful changes, skip the Slack post entirely. Do not send 'nothing to report' messages.
Be resilient: if a single URL fails to fetch (timeout, bot block, 404), note it in the snapshot row as an error, skip the diff for that competitor, and continue with the rest. If multiple URLs fail on the same run, include a short 'fetch issues' line at the bottom of the Slack digest naming the affected competitors. Do not retry aggressively on TinyFish 429 errors; back off and continue.
What it does
- Reads your competitor pricing page URLs from a Google Sheet and pulls fresh content from each one every weekday morning.
- Compares today's tiers, plan names, prices, and feature bullets against the last snapshot and decides which changes are worth surfacing.
- Appends a clean snapshot row to your sheet so you keep a full history of every pricing page over time.
- Posts a tight Slack digest grouped by competitor when something meaningful changed, and stays silent when nothing did.
What you’ll need
- A list of competitor pricing page URLs in a Google Sheet you can read and write to.
- A TinyFish account for fetching the live pricing pages.
- A Slack workspace and the channel you want the digest posted in.
How to customize it
- Change the schedule, the days it runs, or the timezone so the digest lands when your team starts the day.
- Tune what counts as a meaningful change, like the price percent threshold, or what you treat as noise.
- Pick a different Slack channel, switch to a private channel, or route certain competitors to different channels.
Use cases
- Research & Monitoring
- Notifications & Alerts
- Daily Digests