SERP competitor research with Scrape.do API & Google Sheets
🔍 Extract Competitor SERP Rankings from Google Search to Sheets with Scrape.do
This template requires a self-hosted n8n instance to run.
A complete n8n automation that extracts competitor data from Google search results for specific keywords and target countries using Scrape.do SERP API, and saves structured results into Google Sheets for SEO, competitive analysis, and market research.
📋 Overview
This workflow provides a lightweight competitor analysis solution that identifies ranking websites for chosen keywords across different countries. Ideal for SEO specialists, content strategists, and digital marketers who need structured SERP insights without manual effort.
Who is this for?
- SEO professionals tracking keyword competitors
- Digital marketers conducting market analysis
- Content strategists planning based on SERP insights
- Business analysts researching competitor positioning
- Agencies automating SEO reporting
What problem does this workflow solve?
- Eliminates manual SERP scraping
- Processes multiple keywords across countries
- Extracts structured data (position, title, URL, description)
- Automates saving results into Google Sheets
- Ensures repeatable & consistent methodology
⚙️ What this workflow does
- Manual Trigger → Starts the workflow manually
- Get Keywords from Sheet → Reads keywords + target countries from a Google Sheet
- URL Encode Keywords → Converts keywords into URL-safe format
- Process Keywords in Batches → Handles multiple keywords sequentially to avoid rate limits
- Fetch Google Search Results → Calls Scrape.do SERP API to retrieve raw HTML of Google SERPs
- Extract Competitor Data from HTML → Parses HTML into structured competitor data (top 10 results)
- Append Results to Sheet → Writes structured SERP results into a Google Sheet
📊 Output Data Points
| Field | Description | Example | |--------------------|------------------------------------------|-------------------------------------------| | Keyword | Original search term | digital marketing services | | Target Country | 2-letter ISO code of target region | US | | position | Ranking position in search results | 1 | | websiteTitle | Page title from SERP result | Digital Marketing Software & Tools | | websiteUrl | Extracted website URL | https://www.hubspot.com/marketing | | websiteDescription | Snippet/description from search results | Grow your business with HubSpot’s tools… |
⚙️ Setup
Prerequisites
- n8n instance (self-hosted)
- Google account with Sheets access
- Scrape.do account with SERP API token
Google Sheet Structure
This workflow uses one Google Sheet with two tabs:
Input Tab: "Keywords"
| Column | Type | Description | Example |
|----------|------|-------------|---------|
| Keyword | Text | Search query | digital marketing |
| Target Country | Text | 2-letter ISO code | US |
Output Tab: "Results"
| Column | Type | Description | Example |
|--------------------|-------|-------------|---------|
| Keyword | Text | Original search term | digital marketing |
| position | Number| SERP ranking | 1 |
| websiteTitle | Text | Title of the page | Digital Marketing Software & Tools |
| websiteUrl | URL | Website/page URL | https://www.hubspot.com/marketing |
| websiteDescription | Text | Snippet text | Grow your business with HubSpot’s tools |
🛠 Step-by-Step Setup
- Import Workflow: Copy the JSON → n8n → Workflows → + Add → Import from JSON
- Configure Scrape.do API:
- Endpoint:
https://api.scrape.do/ - Parameter:
token=YOUR_SCRAPEDO_TOKEN - Add
render=truefor full HTML rendering
- Endpoint:
- Configure Google Sheets:
- Create a sheet with two tabs: Keywords (input), Results (output)
- Set up Google Sheets OAuth2 credentials in n8n
- Replace placeholders:
YOUR_GOOGLE_SHEET_IDandYOUR_GOOGLE_SHEETS_CREDENTIAL_ID
- Run & Test:
- Add test data in
Keywordstab - Execute workflow → Check results in
Resultstab
- Add test data in
🧰 How to Customize
- Add more fields: Extend HTML parsing logic in the “Extract Competitor Data” node to capture extra data (e.g., domain, sitelinks).
- Filtering: Exclude domains or results with custom rules.
- Batch Size: Adjust “Process Keywords in Batches” for speed vs. rate-limits.
- Rate Limiting: Insert a Wait node (e.g., 10–30 seconds) if API rate limits apply.
- Multi-Sheet Output: Save per-country or per-keyword results into separate tabs.
📊 Use Cases
- SEO Competitor Analysis: Identify top-ranking sites for target keywords
- Market Research: See how SERPs differ by region
- Content Strategy: Analyze titles & descriptions of competitor pages
- Agency Reporting: Automate competitor SERP snapshots for clients
📈 Performance & Limits
- Single Keyword: ~10–20 seconds (depends on Scrape.do response)
- Batch of 10: 3–5 minutes typical
- Large Sets (50+): 20–40 minutes depending on API credits & batching
- API Calls: 1 Scrape.do request per keyword
- Reliability: 95%+ extraction success, 98%+ data accuracy
🧩 Troubleshooting
- API error → Check
YOUR_SCRAPEDO_TOKENand API credits - No keywords loaded → Verify Google Sheet ID & tab name =
Keywords - Permission denied → Re-authenticate Google Sheets OAuth2 in n8n
- Empty results → Check parsing logic and verify search term validity
- Workflow stops early → Ensure batching loop (
SplitInBatches) is properly connected
🤝 Support & Community
- n8n Forum: https://community.n8n.io
- n8n Docs: https://docs.n8n.io
- Scrape.do Dashboard: https://dashboard.scrape.do
🎯 Final Notes
This workflow provides a repeatable foundation for extracting competitor SERP rankings with Scrape.do and saving them to Google Sheets.
You can extend it with filtering, richer parsing, or integration with reporting dashboards to create a fully automated SEO intelligence pipeline.
Serp Competitor Research with Scrapedo API and Google Sheets
This n8n workflow automates the process of performing competitor research using the Scrapedo API and storing the results in Google Sheets. It's designed to help you quickly gather SERP (Search Engine Results Page) data for specified keywords and organize it for analysis.
What it does
This workflow simplifies competitor analysis by:
- Triggering Manually: The workflow is initiated manually, allowing you to control when the research is performed.
- Fetching Data from Google Sheets: It reads a list of keywords or competitor URLs from a Google Sheet.
- Making HTTP Requests to Scrapedo API: For each entry from Google Sheets, it sends a request to the Scrapedo API to retrieve SERP data.
- Processing API Responses: A Code node is included, likely to parse, transform, or filter the data received from the Scrapedo API before further processing.
- Storing Results in Google Sheets: The processed SERP data is then written back into another Google Sheet, providing a structured record of your competitor research.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n Instance: A running n8n instance.
- Google Account: Access to Google Sheets with appropriate permissions to read from and write to spreadsheets.
- Scrapedo API Key: An API key for the Scrapedo service to perform SERP data scraping.
Setup/Usage
- Import the Workflow: Import the provided JSON into your n8n instance.
- Configure Google Sheets Credentials:
- Add a new Google Sheets credential in n8n.
- Configure the "Google Sheets" nodes with your Google Sheet IDs and sheet names for both input (keywords/competitors) and output (results).
- Configure Scrapedo API Key:
- Configure the "HTTP Request" node to include your Scrapedo API key in the request headers or URL parameters as required by the Scrapedo API documentation.
- Adjust the URL and body of the HTTP request to match the Scrapedo API's endpoint for SERP data.
- Review and Customize Code Node: Examine the "Code" node. This node is typically used for custom data manipulation. You may need to adjust the JavaScript code within it to correctly parse and format the Scrapedo API response according to your specific needs.
- Execute the Workflow: Click the "Execute workflow" button on the "Manual Trigger" node to run the workflow.
This workflow provides a robust foundation for automating your SERP competitor research, saving you time and ensuring consistent data collection.
Related Templates
Automate RSS to social media pipeline with AI, Airtable & GetLate for multiple platforms
Overview Automates your complete social media content pipeline: sources articles from Wallabag RSS, generates platform-specific posts with AI, creates contextual images, and publishes via GetLate API. Built with 63 nodes across two workflows to handle LinkedIn, Instagram, and Bluesky—with easy expansion to more platforms. Ideal for: Content marketers, solo creators, agencies, and community managers maintaining a consistent multi-platform presence with minimal manual effort. How It Works Two-Workflow Architecture: Content Aggregation Workflow Monitors Wallabag RSS feeds for tagged articles (to-share-linkedin, to-share-instagram, etc.) Extracts and converts content from HTML to Markdown Stores structured data in Airtable with platform assignment AI Generation & Publishing Workflow Scheduled trigger queries Airtable for unpublished content Routes to platform-specific sub-workflows (LinkedIn, Instagram, Bluesky) LLM generates optimized post text and image prompts based on custom brand parameters Optionally generates AI images and hosts them on Imgbb CDN Publishes via GetLate API (immediate or draft mode) Updates Airtable with publication status and metadata Key Features: Tag-based content routing using Wallabag's native system Swappable AI providers (Groq, OpenAI, Anthropic) Platform-specific optimization (tone, length, hashtags, CTAs) Modular design—duplicate sub-workflows to add new platforms in \~30 minutes Centralized Airtable tracking with 17 data points per post Set Up Steps Setup time: \~45-60 minutes for initial configuration Create accounts and get API keys (\~15 min) Wallabag (with RSS feeds enabled) GetLate (social media publishing) Airtable (create base with provided schema—see sticky notes) LLM provider (Groq, OpenAI, or Anthropic) Image service (Hugging Face, Fal.ai, or Stability AI) Imgbb (image hosting) Configure n8n credentials (\~10 min) Add all API keys in n8n's credential manager Detailed credential setup instructions in workflow sticky notes Set up Airtable database (\~10 min) Create "RSS Feed - Content Store" base Add 19 required fields (schema provided in workflow sticky notes) Get Airtable base ID and API key Customize brand prompts (\~15 min) Edit "Set Custom SMCG Prompt" node for each platform Define brand voice, tone, goals, audience, and image preferences Platform-specific examples provided in sticky notes Configure platform settings (\~10 min) Set GetLate account IDs for each platform Enable/disable image generation per platform Choose immediate publish vs. draft mode Adjust schedule trigger frequency Test and deploy Tag test articles in Wallabag Monitor the first few executions in draft mode Activate workflows when satisfied with the output Important: This is a proof-of-concept template. Test thoroughly with draft mode before production use. Detailed setup instructions, troubleshooting tips, and customization guidance are in the workflow's sticky notes. Technical Details 63 nodes: 9 Airtable operations, 8 HTTP requests, 7 code nodes, 3 LangChain LLM chains, 3 RSS triggers, 3 GetLate publishers Supports: Multiple LLM providers, multiple image generation services, unlimited platforms via modular architecture Tracking: 17 metadata fields per post, including publish status, applied parameters, character counts, hashtags, image URLs Prerequisites n8n instance (self-hosted or cloud) Accounts: Wallabag, GetLate, Airtable, LLM provider, image generation service, Imgbb Basic understanding of n8n workflows and credential configuration Time to customize prompts for your brand voice Detailed documentation, Airtable schema, prompt examples, and troubleshooting guides are in the workflow's sticky notes. Category Tags social-media-automation, ai-content-generation, rss-to-social, multi-platform-posting, getlate-api, airtable-database, langchain, workflow-automation, content-marketing
Ai website scraper & company intelligence
AI Website Scraper & Company Intelligence Description This workflow automates the process of transforming any website URL into a structured, intelligent company profile. It's triggered by a form, allowing a user to submit a website and choose between a "basic" or "deep" scrape. The workflow extracts key information (mission, services, contacts, SEO keywords), stores it in a structured Supabase database, and archives a full JSON backup to Google Drive. It also features a secondary AI agent that automatically finds and saves competitors for each company, building a rich, interconnected database of company intelligence. --- Quick Implementation Steps Import the Workflow: Import the provided JSON file into your n8n instance. Install Custom Community Node: You must install the community node from: https://www.npmjs.com/package/n8n-nodes-crawl-and-scrape FIRECRAWL N8N Documentation https://docs.firecrawl.dev/developer-guides/workflow-automation/n8n Install Additional Nodes: n8n-nodes-crawl-and-scrape and n8n-nodes-mcp fire crawl mcp . Set up Credentials: Create credentials in n8n for FIRE CRAWL API,Supabase, Mistral AI, and Google Drive. Configure API Key (CRITICAL): Open the Web Search tool node. Go to Parameters → Headers and replace the hardcoded Tavily AI API key with your own. Configure Supabase Nodes: Assign your Supabase credential to all Supabase nodes. Ensure table names (e.g., companies, competitors) match your schema. Configure Google Drive Nodes: Assign your Google Drive credential to the Google Drive2 and save to Google Drive1 nodes. Select the correct Folder ID. Activate Workflow: Turn on the workflow and open the Webhook URL in the “On form submission” node to access the form. --- What It Does Form Trigger Captures user input: “Website URL” and “Scraping Type” (basic or deep). Scraping Router A Switch node routes the flow: Deep Scraping → AI-based MCP Firecrawler agent. Basic Scraping → Crawlee node. Deep Scraping (Firecrawl AI Agent) Uses Firecrawl and Tavily Web Search. Extracts a detailed JSON profile: mission, services, contacts, SEO keywords, etc. Basic Scraping (Crawlee) Uses Crawl and Scrape node to collect raw text. A Mistral-based AI extractor structures the data into JSON. Data Storage Stores structured data in Supabase tables (companies, company_basicprofiles). Archives a full JSON backup to Google Drive. Automated Competitor Analysis Runs after a deep scrape. Uses Tavily web search to find competitors (e.g., from Crunchbase). Saves competitor data to Supabase, linked by company_id. --- Who's It For Sales & Marketing Teams: Enrich leads with deep company info. Market Researchers: Build structured, searchable company databases. B2B Data Providers: Automate company intelligence collection. Developers: Use as a base for RAG or enrichment pipelines. --- Requirements n8n instance (self-hosted or cloud) Supabase Account: With tables like companies, competitors, social_links, etc. Mistral AI API Key Google Drive Credentials Tavily AI API Key (Optional) Custom Nodes: n8n-nodes-crawl-and-scrape --- How It Works Flow Summary Form Trigger: Captures “Website URL” and “Scraping Type”. Switch Node: deep → MCP Firecrawler (AI Agent). basic → Crawl and Scrape node. Scraping & Extraction: Deep path: Firecrawler → JSON structure. Basic path: Crawlee → Mistral extractor → JSON. Storage: Save JSON to Supabase. Archive in Google Drive. Competitor Analysis (Deep Only): Finds competitors via Tavily. Saves to Supabase competitors table. End: Finishes with a No Operation node. --- How To Set Up Import workflow JSON. Install community nodes (especially n8n-nodes-crawl-and-scrape from npm). Configure credentials (Supabase, Mistral AI, Google Drive). Add your Tavily API key. Connect Supabase and Drive nodes properly. Fix disconnected “basic” path if needed. Activate workflow. Test via the webhook form URL. --- How To Customize Change LLMs: Swap Mistral for OpenAI or Claude. Edit Scraper Prompts: Modify system prompts in AI agent nodes. Change Extraction Schema: Update JSON Schema in extractor nodes. Fix Relational Tables: Add Items node before Supabase inserts for arrays (social links, keywords). Enhance Automation: Add email/slack notifications, or replace form trigger with a Google Sheets trigger. --- Add-ons Automated Trigger: Run on new sheet rows. Notifications: Email or Slack alerts after completion. RAG Integration: Use the Supabase database as a chatbot knowledge source. --- Use Case Examples Sales Lead Enrichment: Instantly get company + competitor data from a URL. Market Research: Collect and compare companies in a niche. B2B Database Creation: Build a proprietary company dataset. --- WORKFLOW IMAGE --- Troubleshooting Guide | Issue | Possible Cause | Solution | |-------|----------------|-----------| | Form Trigger 404 | Workflow not active | Activate the workflow | | Web Search Tool fails | Missing Tavily API key | Replace the placeholder key | | FIRECRAWLER / find competitor fails | Missing MCP node | Install n8n-nodes-mcp | | Basic scrape does nothing | Switch node path disconnected | Reconnect “basic” output | | Supabase node error | Wrong table/column names | Match schema exactly | --- Need Help or More Workflows? Want to customize this workflow for your business or integrate it with your existing tools? Our team at Digital Biz Tech can tailor it precisely to your use case from automation logic to AI-powered enhancements. Contact: shilpa.raju@digitalbiz.tech For more such offerings, visit us: https://www.digitalbiz.tech ---
Dynamic Hubspot lead routing with GPT-4 and Airtable sales team distribution
AI Agent for Dynamic Lead Distribution (HubSpot + Airtable) 🧠 AI-Powered Lead Routing and Sales Team Distribution This intelligent n8n workflow automates end-to-end lead qualification and allocation by integrating HubSpot, Airtable, OpenAI, Gmail, and Slack. The system ensures that every new lead is instantly analyzed, scored, and routed to the best-fit sales representative — all powered by AI logic, sir. --- 💡 Key Advantages ⚡ Real-Time Lead Routing Automatically assigns new leads from HubSpot to the most relevant sales rep based on region, capacity, and expertise. 🧠 AI Qualification Engine An OpenAI-powered Agent evaluates the lead’s industry, region, and needs to generate a persona summary and routing rationale. 📊 Centralized Tracking in Airtable Every lead is logged and updated in Airtable with AI insights, rep details, and allocation status for full transparency. 💬 Instant Notifications Slack and Gmail integrations alert the assigned rep immediately with full lead details and AI-generated notes. 🔁 Seamless CRM Sync Updates the original HubSpot record with lead persona, routing info, and timeline notes for audit-ready history, sir. --- ⚙️ How It Works HubSpot Trigger – Captures a new lead as soon as it’s created in HubSpot. Fetch Contact Data – Retrieves all relevant fields like name, company, and industry. Clean & Format Data – A Code node standardizes and structures the data for consistency. Airtable Record Creation – Logs the lead data into the “Leads” table for centralized tracking. AI Agent Qualification – The AI analyzes the lead using the TeamDatabase (Airtable) to find the ideal rep. Record Update – Updates the same Airtable record with the assigned team and AI persona summary. Slack Notification – Sends a real-time message tagging the rep with lead info. Gmail Notification – Sends a personalized handoff email with context and follow-up actions. HubSpot Sync – Updates the original contact in HubSpot with the assignment details and AI rationale, sir. --- 🛠️ Setup Steps Trigger Node: HubSpot → Detect new leads. HubSpot Node: Retrieve complete lead details. Code Node: Clean and normalize data. Airtable Node: Log lead info in the “Leads” table. AI Agent Node: Process lead and match with sales team. Slack Node: Notify the designated representative. Gmail Node: Email the rep with details. HubSpot Node: Update CRM with AI summary and allocation status, sir. --- 🔐 Credentials Required HubSpot OAuth2 API – To fetch and update leads. Airtable Personal Access Token – To store and update lead data. OpenAI API – To power the AI qualification and matching logic. Slack OAuth2 – For sending team notifications. Gmail OAuth2 – For automatic email alerts to assigned reps, sir. --- 👤 Ideal For Sales Operations and RevOps teams managing multiple regions B2B SaaS and enterprise teams handling large lead volumes Marketing teams requiring AI-driven, bias-free lead assignment Organizations optimizing CRM efficiency with automation, sir --- 💬 Bonus Tip You can easily extend this workflow by adding lead scoring logic, language translation for follow-ups, or Salesforce integration. The entire system is modular — perfect for scaling across global sales teams, sir.