Daily competitor traffic alerts in Slack, only when it matters

Every weekday morning, we check your tracked competitors on Similarweb, log the numbers to a Google Sheet, and Slack you only when a move is meaningful.

Agentic Task
SimilarwebGoogle SheetsSlack BotMarketingOperationsNotifications & AlertsResearch & MonitoringAI Reports

Build an agent-based workflow that watches competitor website traffic for meaningful shifts and posts a short Slack alert only when something genuinely interesting happens. The whole point is to suppress noise: blanket daily reports get ignored, so this agent should stay silent on quiet days.

Trigger: cron, every weekday at 9am ET.

Inputs from Google Sheets. A spreadsheet I own has two tabs. A 'Competitors' tab lists the domains I track with columns for domain, country code, and a rolling baseline (e.g. trailing 14-day average of total visits, plus per-channel baselines). A 'History' tab stores every datapoint we've ever pulled, one row per (domain, date, metric) so we can chart it over time. Use the Google Sheets Get Values operation to read the Competitors tab at the start of each run.

For each domain on the Competitors tab, call two Similarweb operations for the most recent available day (or week, if daily isn't available for that domain's tier): Visits (Total & Desktop) to get the headline visit count, and Marketing Channel Visits (Desktop) to get the breakdown across Search, Social, Direct, Display Ads, Email, and Referrals. Pass the country code from the sheet. Use lowercase domains with no www. or paths (Similarweb requires this).

Append the new datapoints to the History tab using Google Sheets Append Values. If the rolling baseline on the Competitors tab needs refreshing (e.g. recomputed trailing 14-day or 4-week average), use Update Values to refresh those baseline cells.

For each domain, compare the new datapoint against the trailing baseline and decide whether the move is meaningful. The standard is: a sustained shift well outside normal variance, not a single noisy day. Use the recent history rows from the sheet to estimate variance. If the move looks real, inspect the channel mix delta to write a one-sentence likely driver (e.g. 'paid social surged', 'organic search dropped sharply', 'direct traffic spike likely from a press mention', 'display ad push').

If at least one competitor shows a meaningful move, post a single Slack message to the configured channel using the Slack Bot Send a Message operation. Keep it short and scannable: competitor name, magnitude and direction of the move (percentage), the timeframe, and the one-sentence likely driver. If multiple competitors moved on the same day, group them into one message with a short bullet per competitor.

If every competitor is within normal range, do not post anything at all. Silence is the correct outcome on quiet days. Do not post 'all quiet' messages.

Make the Slack channel ID, the spreadsheet ID, the country code default, the baseline window, and the sensitivity threshold easy to configure at the top of the agent's instructions so I can tune them later without rewriting the workflow.

Additional information

What does this prompt do?
  • Pulls fresh visit counts and marketing channel breakdowns from Similarweb for every competitor domain you're tracking.
  • Logs every new datapoint to a Google Sheet so you keep a tidy history without any manual upkeep.
  • Compares each new number against a trailing baseline and decides whether the change is a real shift or just daily noise.
  • Posts a short Slack alert only on meaningful moves, with a one-line explanation of the likely driver like a search surge or a paid push.
What do I need to use this?
  • A Similarweb account on a plan that includes API access (an admin can generate a key in account settings).
  • A Google account with edit access to a tracking spreadsheet listing the competitor domains you care about.
  • A Slack workspace where you can install our bot and pick a channel for the alerts.
How can I customize it?
  • Edit the list of tracked competitor domains in your Google Sheet at any time, no code changes needed.
  • Change the schedule, the country you measure, or whether you watch daily or weekly data.
  • Tighten or loosen the sensitivity so you only get pinged on bigger shifts.
  • Swap the destination Slack channel or route different competitors to different channels.

Frequently asked questions

Will I get a Slack message every single day?
No. The agent stays quiet unless a competitor's traffic actually moves outside its normal range. On a flat day, you hear nothing, so your team channel stays useful.
Where does the history live?
Every new datapoint gets appended to a Google Sheet you own. You can chart it, filter it, or share it with the rest of the team like any other spreadsheet.
How does it decide what counts as a real shift?
It compares the latest number against a rolling baseline of recent days or weeks. One spiky day in a noisy series will not trigger an alert. A sustained move well outside the typical range will.
Can it tell me why traffic moved?
Yes. It looks at the channel breakdown for each competitor across search, social, direct, paid, email, and referrals, and includes a short line on the likely driver in the Slack message.
Do I need an enterprise Similarweb plan?
You need a Similarweb plan that includes API access. Not every plan does, so check with whoever owns your subscription before setting this up.

Stop refreshing Similarweb dashboards every morning.

Connect Similarweb, Google Sheets, and Slack once, and Geni only pings you when a competitor's traffic actually moves.