This article contains affiliate links. If you buy through them, we may earn a commission at no extra cost to you.
Weekly Competitor Benchmarking on Autopilot with n8n and Similarweb
Keeping tabs on competitors manually is tedious: you open a dozen browser tabs, copy traffic numbers into a spreadsheet, compare week-over-week deltas, and then format everything into a report before your Monday stand-up. With the right automation stack you can eliminate all of that. This guide shows you how to build a workflow in n8n — an open-source automation tool with 400+ integrations that you can self-host for free or run on n8n Cloud — that pulls fresh data from Similarweb every week and delivers a ready-to-read competitor report straight to your inbox.
What You Will Build
The finished workflow does five things automatically every Monday morning:
- Triggers on a weekly schedule
- Calls the Similarweb API for each competitor domain
- Formats the raw traffic and engagement data into a clean summary
- Compares the figures against the previous week stored in a Google Sheet
- Sends a formatted HTML email report to your team
Prerequisites
- n8n instance — cloud or self-hosted
- Similarweb API key — available on paid Similarweb plans
- Google Sheets — to store historical snapshots
- An SMTP or Gmail credential — for the email delivery step
Step 1 — Schedule the Trigger
Open n8n and create a new workflow. Add a Schedule Trigger node. Set it to run every Monday at 07:00 in your local timezone. This ensures the report lands in inboxes before the working week begins.
Step 2 — Define Your Competitor List
Add a Set node directly after the trigger. Create an array field called domains and populate it with the competitor domains you want to track, for example:
competitor-a.comcompetitor-b.comcompetitor-c.com
This single node is the only place you ever need to edit when your competitor list changes.
Step 3 — Split and Call the Similarweb API
Add a Split In Batches node (batch size 1) to loop through each domain. Then connect an HTTP Request node configured as follows:
- Method: GET
- URL:
https://api.similarweb.com/v1/website/{{$json["domain"]}}/total-traffic-and-engagement/visits - Query parameters:
start_date,end_date,granularity=weekly,country=world - Authentication: Header —
api_key: YOUR_KEY
The endpoint returns weekly visit counts, bounce rate, pages per visit, and average visit duration for the requested domain. Repeat the HTTP Request node (or use additional nodes) to also pull the referring-domains endpoint if you want backlink trend data alongside traffic.
Step 4 — Parse and Enrich the Data
Add a Function (or Code) node to extract only the fields you care about and compute useful derived metrics:
- Total visits (last 7 days)
- Week-over-week visit change (%)
- Bounce rate delta
- Pages per visit
- Average session duration
A simple JavaScript snippet inside the Code node can calculate percentage changes by dividing the current value by the prior week value retrieved from Google Sheets in the next step.
Step 5 — Read and Write Historical Data in Google Sheets
Add a Google Sheets node set to Read mode. Point it at a sheet named competitor_snapshots with columns: date, domain, visits, bounce_rate, pages_per_visit, avg_duration. Filter rows where date equals last Monday's date to retrieve the prior baseline.
After computing deltas in the Code node, add a second Google Sheets node in Append mode to write today's figures as a new row. Your sheet now doubles as a historical archive and a comparison source — no database required.
Step 6 — Build the HTML Report
Add another Code node to assemble the email body. Loop over all processed competitor objects and generate an HTML table row for each one. A minimal template looks like this:
- Green arrow + percentage if visits increased week-over-week
- Red arrow + percentage if visits dropped
- Neutral dash if change is under 1 %
Keep the HTML inline-styled so it renders correctly in every email client without an external stylesheet.
Step 7 — Send the Email
Connect a Send Email (SMTP) or Gmail node. Set the subject to something like 🔍 Weekly Competitor Report — {{current date}}. Paste the assembled HTML into the body field. Add your team distribution list as recipients. The node fires once per workflow run, not once per competitor, because the Code node already merged all competitors into a single HTML string.
Optional Enhancements
Add a Slack Notification
Insert a Slack node after the email step. Post a brief plain-text summary to a #competitive-intel channel so the team sees the headline numbers without opening their email.
Alert on Sudden Traffic Spikes
Add an IF node that checks whether any competitor's week-over-week change exceeds +20 %. If true, branch to a second Slack message flagged as urgent. This turns your scheduled report into a near-real-time alert system for significant competitor moves.
Track Keyword Traffic Share
The Similarweb API also exposes organic keyword data. Add a second HTTP Request node calling the organic-search/keywords endpoint and merge those results into your report to see which keywords are driving competitor growth each week.
Keeping the Workflow Reliable
- Error handling: Wrap each HTTP Request node in a Continue on Error setting so a single API failure does not kill the whole run.
- Rate limits: Add a Wait node (1–2 seconds) between domain calls to stay within Similarweb API rate limits.
- Credential rotation: Store the API key in n8n's built-in credential manager, not hardcoded in a node field.
- Logging: Write a summary row to a second Google Sheet tab after each successful run, including timestamp and number of domains processed, for quick audit trails.
What the Report Tells You
Once the bot has been running for four weeks you will have enough history to spot patterns: a competitor ramping up paid traffic before a product launch, a site that loses organic visits after a Google core update, or a new entrant growing 30 % week over week. These are signals that manual tab-switching never surfaces fast enough.
If you want to automate your weekly competitor intelligence without writing server code, you can build and host this entire workflow via n8n — including 400+ integrations and a free self-hosting option — to get actionable benchmarking reports delivered every Monday with zero manual effort.