🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Airtable: competitor lists that stay fresh

Lisa Granqvist Partner Workflow Automation Expert

Your competitor list starts out neat. Then reality hits. New players pop up, brands re-position, and suddenly your “competitive landscape” doc is stale and a little embarrassing.

This is the kind of mess marketing managers feel every time they prep a launch brief. Agency strategists run into it when a client asks, “Who are we really up against?” And founders notice it when pricing pages stop converting. A solid competitor list automation keeps that list current without turning it into a weekly research chore.

This guide walks you through an n8n workflow that pulls company names from Google Sheets, finds competitors using SerpAPI, and logs clean results into Airtable (with sources). You’ll see what it automates, what outcomes to expect, and how to avoid the common gotchas.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Google Sheets + Airtable: competitor lists that stay fresh

Why This Matters: Competitor Lists Go Stale Fast

Competitor research is one of those tasks that looks simple until you do it at scale. One company is easy. Twenty is a time sink. And if you’re managing multiple products or clients, you end up repeating the same Google searches, copying names into a sheet, and trying to remember where you found each result. A month later, half the market has shifted. The worst part is the mental load: you’re never sure if you missed someone obvious or if your sources are even credible.

It adds up fast. Here’s where it breaks down in real teams.

  • You spend about 10 minutes per company just doing “{brand} competitors” searches and opening tabs.
  • Names get copied inconsistently, which means duplicates, spelling drift, and “is this the same company?” debates later.
  • Sources are often missing, so you can’t defend the list when a stakeholder challenges it.
  • When no competitors show up, that fact rarely gets tracked, so you re-check the same companies again next week.

What You’ll Build: A Daily Competitor Research Pipeline

This workflow turns a plain Google Sheet into a competitor discovery engine. Every day on a schedule (think 9 AM), n8n pulls your company list from Google Sheets, cleans it up, and then processes each company one-by-one so you don’t overload anything. For each entry, it sends a search request to SerpAPI for “{Company} competitors,” receives structured results, and extracts up to 10 competitor names plus a top source link you can click later. Then it writes the outcome back to a results sheet in Google Sheets and pushes the same record into Airtable so your team has a clean, filterable database. Companies with no results don’t get ignored; they’re logged into a separate “no competitors found” list for tracking.

The workflow starts with a scheduled trigger and a read from Google Sheets. SerpAPI does the heavy lifting for discovery, while n8n cleans, parses, and validates the results. Finally, Google Sheets and Airtable get updated so you can review quickly or build dashboards.

What You’re Building

Expected Results

Say you track 50 companies. Manually, if you spend about 10 minutes searching and capturing competitor names per company, that’s roughly 8 hours of work (and it’s never one clean block of time). With this workflow, you add companies to Google Sheets once, then the daily run does the searching and logging for you. Your “work” becomes a quick review in Airtable and the results sheet, maybe 15 minutes a day if you want to sanity-check new entries.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for your company input list.
  • Airtable to store and filter competitor records.
  • SerpAPI API key (get it from your SerpAPI dashboard)

Skill level: Beginner. You’ll mostly connect accounts, paste an API key, and map a few fields.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A scheduled daily run kicks things off. n8n triggers at your chosen time (many teams pick a morning run), then immediately pulls the latest list of companies from your Google Sheet.

Your company list gets cleaned before anything else happens. Empty rows are removed, names are trimmed, and each row is tagged with a row number so results stay traceable when you review later.

SerpAPI searches competitors one company at a time. n8n loops through the list in batches, sends “{Company} competitors” as the query, and receives structured search data. Then it parses out the core items you care about: up to 10 competitor names, a source URL, and a count of results.

Results land in two places you already use. If competitors exist, the workflow appends them to a results Google Sheet. If not, it logs the company into a “missing competitors” section so you can follow up. Either way, Airtable is updated so you have one place to filter, tag, and compare across time.

You can easily modify the schedule and the number of competitors captured based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Set the workflow to run automatically each day so competitor research starts without manual input.

  1. Add the 🕒 Scheduled Auto Trigger node as the workflow trigger.
  2. Set the schedule rule to run daily at 9 for Trigger At Hour.
  3. Connect 🕒 Scheduled Auto Trigger to 📄 Fetch Company Sheet.

Tip: Align the trigger time with your reporting window to avoid API rate-limit spikes.

Step 2: Connect Google Sheets

Configure the Google Sheets nodes that supply company inputs and capture competitor results.

  1. Open 📄 Fetch Company Sheet and select the spreadsheet with Document [YOUR_ID] and Sheet gid=0.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in 📄 Fetch Company Sheet.
  3. Open 📊 Append to Results Sheet and confirm Operation is appendOrUpdate with matching on Company.
  4. Map columns to values in 📊 Append to Results Sheet: Source ={{ $json.top_source }}, Company ={{ $json.company }}, Competitors ={{ $json.competitors }}, Total Results ={{ $json.total_results }}.
  5. Credential Required: Connect your googleSheetsOAuth2Api credentials in 📊 Append to Results Sheet and ❌ Record Missing Competitors.
  6. In ❌ Record Missing Competitors, keep Operation as appendOrUpdate and set fixed values: Source Null, Competitors No Competetitors Found, Total Results 0, Company ={{ $json.company }}.

⚠️ Common Pitfall: Make sure the input sheet column is named List—the next step depends on that exact key.

Step 3: Set Up Processing and Batching

Normalize the input companies and process them in batches to control API usage.

  1. In 🧹 Normalize Company Entries, keep the provided JavaScript that reads company names from item.json.List and returns { company, row }.
  2. Connect 📄 Fetch Company Sheet to 🧹 Normalize Company Entries, then to 🔁 Iterate Company Batch.
  3. Set Batch Size to 100 in 🔁 Iterate Company Batch.
  4. Connect the output of 🔁 Iterate Company Batch to 🌍 Competitor Search Request.

Step 4: Configure Search and Parsing

Call SerpAPI for competitor results and parse the response into a structured format.

  1. In 🌍 Competitor Search Request, set URL to https://serpapi.com/search.json and keep Send Query enabled.
  2. Set query parameters in 🌍 Competitor Search Request: q ={{ $json.company }} competitors, hl en, gl us, api_key [CONFIGURE_YOUR_API_KEY].
  3. Connect 🌍 Competitor Search Request to 🧠 Parse Competitor Results and keep the provided parsing code intact.

⚠️ Common Pitfall: Replace [CONFIGURE_YOUR_API_KEY] or requests will fail with authorization errors.

Step 5: Configure Routing and Outputs

Route results based on competitor availability and ensure both paths are recorded.

  1. In 🧐 Competitor Presence Check, set the condition to compare ={{ $json.competitors }} notEquals No competitors found.
  2. Connect 🧠 Parse Competitor Results to 🧐 Competitor Presence Check.
  3. Route the true output to 📊 Append to Results Sheet and the false output to ❌ Record Missing Competitors.
  4. Confirm that 📊 Append to Results Sheet then flows to 🗃️ Update Airtable Records, and ❌ Record Missing Competitors also flows to 🗃️ Update Airtable Records.

Step 6: Configure Airtable Upsert

Upsert final competitor results into Airtable for reporting and tracking.

  1. In 🗃️ Update Airtable Records, set Operation to upsert and match on Company.
  2. Map fields: Source ={{ $json.Source }}, Company ={{ $json.Company }}, Competitors ={{ $json.Competitors }}, Total Results ={{ $json["Total Results"] }}.
  3. Credential Required: Connect your airtableTokenApi credentials in 🗃️ Update Airtable Records.

Step 7: Test and Activate Your Workflow

Validate the full data path from Google Sheets to Airtable before enabling scheduled runs.

  1. Click Execute Workflow and confirm 📄 Fetch Company Sheet returns items with a List field.
  2. Verify 🌍 Competitor Search Request returns JSON and 🧠 Parse Competitor Results outputs company, competitors, and top_source.
  3. Check that records are appended in 📊 Append to Results Sheet or ❌ Record Missing Competitors, and that 🗃️ Update Airtable Records performs an upsert.
  4. Once successful, switch the workflow status to Active to enable the daily schedule.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Sheets credentials can expire or need specific permissions. If things break, check the connected Google account in n8n’s Credentials section first, then confirm the sheet is shared correctly.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • SerpAPI can return different structures depending on the query and region. If parsing fails, inspect the HTTP Request node output and adjust the “Parse Competitor Results” code to match what you’re receiving.

Quick Answers

What’s the setup time for this competitor list automation?

About 30 minutes if your accounts and sheets are ready.

Is coding required for this competitor list automation?

No. You’ll connect Google Sheets, Airtable, and SerpAPI, then confirm the field mappings.

Is n8n free to use for this competitor list automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in SerpAPI usage, which depends on your plan and how many searches you run daily.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I modify this competitor list automation workflow for different use cases?

Yes, and it’s pretty straightforward. You can change the scheduled trigger to run weekly, or switch the Google Sheets input to a different spreadsheet without touching the rest. Want more or fewer competitors per company? Adjust the logic in the “Parse Competitor Results” step where it caps the list at 10. You can also redirect outputs by swapping the Airtable update step for a CRM update (HubSpot is commonly used) if you want competitors attached to accounts.

Why is my Airtable connection failing in this workflow?

Usually it’s an API token or base permission issue. Reconnect the Airtable credential in n8n, then confirm the token has access to the right base and table. If the workflow used to work and suddenly doesn’t, check if the table fields were renamed because n8n will still try to write to the old field names.

What volume can this competitor list automation workflow process?

Hundreds of companies per day is realistic, as long as your SerpAPI plan and n8n execution limits support that load.

Is this competitor list automation better than using Zapier or Make?

Often, yes, because this workflow benefits from batching, branching, and custom parsing. n8n makes it easier to loop through a long list of companies and handle “no results” cleanly without building a mess of separate Zaps or scenarios. It’s also more flexible when you need to transform data before saving it (which you do here). That said, Zapier or Make can be fine for a tiny list and a simple “search then log” flow. Talk to an automation expert if you want a quick recommendation based on your volume.

Once this is running, your competitor list updates itself while you’re doing real work. Honestly, that’s the point: fewer tabs, fewer doubts, and a research system you can trust.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal