Weekday morning competitor pricing watch in Slack

By General Input

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

Agentic Task

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board