Skip to main content

Scrape Yelp business data with Scrape.do API & Google Sheets storage

Workflow preview

Workflow preview
100%
Scrape Yelp business data with Scrape.do API & Google Sheets storage preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Yelp Business Scraper by URL via Scrape.do API with Google Sheets Storage Overview This n8n workflow automates the process of scraping comprehen...

Best for

  • Market Research automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.formtrigger, n8n-nodes-base.httprequest, n8n-nodes-base.wait, n8n-nodes-base.if, n8n-nodes-base.code, n8n-nodes-base.googlesheets

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Onur.

Original n8n.io source

1.1 Workflow description

Title
Scrape Yelp business data with Scrape.do API & Google Sheets storage
Workflow name
Scrape Yelp business data with Scrape.do API & Google Sheets storage

īģŋ# Yelp Business Scraper by URL via Scrape.do API with Google Sheets Storage

Overview

This n8n workflow automates the process of scraping comprehensive business information from Yelp using individual business URLs. It integrates with Scrape.do for professional web scraping with anti-bot bypass capabilities and Google Sheets for centralized data storage, providing detailed business intelligence for market research, competitor analysis, and lead generation.


Workflow Components

1. đŸ“Ĩ Form Trigger

Property Value
Type Form Trigger
Purpose Initiates the workflow with user-submitted Yelp business URL
Input Fields Yelp Business URL
Function Captures target business URL to start the scraping process

2. 🔍 Create Scrape.do Job

Property Value
Type HTTP Request (POST)
Purpose Creates an async scraping job via Scrape.do API
Endpoint https://q.scrape.do/api/v1/jobs
Authentication X-Token header

Request Parameters:

  • Targets: Array containing the Yelp business URL
  • Super: true (uses residential/mobile proxies for better success rate)
  • GeoCode: us (targets US-based content)
  • Device: desktop
  • Render: JavaScript rendering enabled with networkidle2 wait condition

Function: Initiates comprehensive business data extraction from Yelp with headless browser rendering to handle dynamic content.

3. 🔧 Parse Yelp HTML

Property Value
Type Code Node (JavaScript)
Purpose Extracts structured business data from raw HTML
Mode Run once for each item

Function: Parses the scraped HTML content using regex patterns and JSON-LD extraction to retrieve:

  • Business name
  • Overall rating
  • Review count
  • Phone number
  • Full address
  • Price range
  • Categories
  • Website URL
  • Business hours
  • Image URLs

4. 📊 Store to Google Sheet

Property Value
Type Google Sheets Node
Purpose Stores scraped business data for analysis and storage
Operation Append rows
Target "Yelp Scraper Data - Scrape.do" sheet

Data Mapping:

  • Business Name, Overall Rating, Reviews Count
  • Business URL, Phone, Address
  • Price Range, Categories, Website
  • Hours, Images/Videos URLs, Scraped Timestamp

Workflow Flow

Form Input → Create Scrape.do Job → Parse Yelp HTML → Store to Google Sheet
     │              │                      │                    │
     â–ŧ              â–ŧ                      â–ŧ                    â–ŧ
 User submits   API creates job      JavaScript code      Data appended
 Yelp URL       with JS rendering    extracts fields      to spreadsheet

Configuration Requirements

API Keys & Credentials

Credential Purpose
Scrape.do API Token Required for Yelp business scraping with anti-bot bypass
Google Sheets OAuth2 For data storage and export access
n8n Form Webhook For user input collection

Setup Parameters

Parameter Description
YOUR_SCRAPEDO_TOKEN Your Scrape.do API token (appears in 3 places)
YOUR_GOOGLE_SHEET_ID Target spreadsheet identifier
YOUR_GOOGLE_SHEETS_CREDENTIAL_ID OAuth2 authentication reference

Key Features

đŸ›Ąī¸ Anti-Bot Bypass Technology

  • Residential Proxy Rotation: 110M+ proxies across 150 countries
  • WAF Bypass: Handles æ‰˜įŽĄåšŗå°, Akamai, DataDome, and PerimeterX
  • Dynamic TLS Fingerprinting: Authentic browser signatures
  • CAPTCHA Handling: Automatic bypass for uninterrupted scraping

🌐 JavaScript Rendering

  • Full headless browser support for dynamic Yelp content
  • networkidle2 wait condition ensures complete page load
  • Custom wait times for complex page elements
  • Real device fingerprints for detection avoidance

📊 Comprehensive Data Extraction

Field Description Example
name Business name "Joe's Pizza Restaurant"
overall_rating Average customer rating "4.5"
reviews_count Total number of reviews "247"
url Original Yelp business URL "https://www.yelp.com/biz/..."
phone Business phone number "(555) 123-4567"
address Full street address "123 Main St, New York, NY 10001"
price_range Price indicator "$$"
categories Business categories "Pizza, Italian, Delivery"
website Business website URL "https://joespizza.com"
hours Operating hours "Mon-Fri 11:00-22:00"
images_videos_urls Media content links "https://s3-media1.fl.yelpcdn.com/..."
scraped_at Extraction timestamp "2025-01-15T10:30:00Z"

đŸ—‚ī¸ Centralized Data Storage

  • Automatic Google Sheets export
  • Organized business data format with 12 data fields
  • Historical scraping records with timestamps
  • Easy sharing and collaboration

Use Cases

📈 Market Research

  • Competitor business analysis
  • Local market intelligence gathering
  • Industry benchmark establishment
  • Service offering comparison

đŸŽ¯ Lead Generation

  • Business contact information extraction
  • Potential client identification
  • Market opportunity assessment
  • Sales prospect development

📊 Business Intelligence

  • Customer sentiment analysis through ratings
  • Competitor performance monitoring
  • Market positioning research
  • Brand reputation tracking

📍 Location Analysis

  • Geographic business distribution
  • Local competition assessment
  • Market saturation evaluation
  • Expansion opportunity identification

Technical Notes

Specification Value
Processing Time 15-45 seconds per business URL
Data Accuracy 95%+ for publicly available business information
Success Rate 99.98% (Scrape.do guarantee)
Proxy Pool 110M+ residential, mobile, and datacenter IPs
JS Rendering Full headless browser with networkidle2 wait
Data Format JSON with structured field mapping
Storage Format Structured Google Sheets with 12 predefined columns

Setup Instructions

Step 1: Import Workflow

  1. Copy the JSON workflow configuration
  2. Import into n8n: Workflows → Import from JSON
  3. Paste configuration and save

Step 2: Configure Scrape.do

Get your API token:

  1. Sign up at Scrape.do
  2. Navigate to Dashboard → API Token
  3. Copy your token

Update workflow references (3 places):

  • 🔍 Create Scrape.do Job node → Headers → X-Token
  • 📡 Check Job Status node → Headers → X-Token
  • đŸ“Ĩ Fetch Task Results node → Headers → X-Token

Replace YOUR_SCRAPEDO_TOKEN with your actual API token.

Step 3: Configure Google Sheets

Create target spreadsheet:

  1. Create new Google Sheet named "Yelp Business Data" or similar
  2. Add header row with columns:
    name | overall_rating | reviews_count | url | phone | address | price_range | categories | website | hours | images_videos_urls | scraped_at
    
  3. Copy the Sheet ID from URL (the long string between /d/ and /edit)

Set up OAuth2 credentials:

  1. In n8n: Credentials → Add Credential → Google Sheets OAuth2
  2. Complete the Google authentication process
  3. Grant access to Google Sheets

Update workflow references:

  • Replace YOUR_GOOGLE_SHEET_ID with your actual Sheet ID
  • Update YOUR_GOOGLE_SHEETS_CREDENTIAL_ID with credential reference

Step 4: Test and Activate

Test with sample URL:

  1. Use a known Yelp business URL (e.g., https://www.yelp.com/biz/example-business-city)
  2. Submit through the form trigger
  3. Monitor execution progress in n8n
  4. Verify data appears in Google Sheet

Activate workflow:

  1. Toggle workflow to "Active"
  2. Share form URL with users

Sample Business Data

The workflow captures comprehensive business information including:

Category Data Points
Basic Information Name, category, location
Performance Metrics Ratings, review counts, popularity
Contact Details Phone, website, address
Visual Content Photos, videos, gallery URLs
Operational Data Hours, services, price range

Advanced Configuration

Batch Processing

Modify the input to accept multiple URLs by updating the job creation body:

{
  "Targets": [
    "https://www.yelp.com/biz/business-1",
    "https://www.yelp.com/biz/business-2",
    "https://www.yelp.com/biz/business-3"
  ],
  "Super": true,
  "GeoCode": "us",
  "Render": {
    "WaitUntil": "networkidle2",
    "CustomWait": 3000
  }
}

Enhanced Rendering Options

For complex Yelp pages, add browser interactions:

{
  "Render": {
    "BlockResources": false,
    "WaitUntil": "networkidle2",
    "CustomWait": 5000,
    "WaitSelector": ".biz-page-header",
    "PlayWithBrowser": [
      { "Action": "Scroll", "Direction": "down" },
      { "Action": "Wait", "Timeout": 2000 }
    ]
  }
}

Notification Integration

Add alert mechanisms:

  • Email notifications for completed scrapes
  • Slack messages for team updates
  • Webhook triggers for external systems

Error Handling

Common Issues

Issue Cause Solution
Invalid URL URL is not a valid Yelp business page Ensure URL format: https://www.yelp.com/biz/...
401 Unauthorized Invalid or missing API token Verify X-Token header value
Job Timeout Page too complex or slow Increase CustomWait value
Empty Data HTML parsing failed Check page structure, update regex patterns
Rate Limiting Too many concurrent requests Reduce request frequency or upgrade plan

Troubleshooting Steps

  1. Verify URLs: Ensure Yelp business URLs are correctly formatted
  2. Check Credentials: Validate Scrape.do token and Google OAuth
  3. Monitor Logs: Review n8n execution logs for detailed errors
  4. Test Connectivity: Verify network access to all external services
  5. Check Job Status: Use Scrape.do dashboard to monitor job progress

Performance Specifications

Metric Value
Processing Time 15-45 seconds per business URL
Data Accuracy 95%+ for publicly available information
Success Rate 99.98% (with Scrape.do anti-bot bypass)
Concurrent Processing Depends on Scrape.do plan limits
Storage Capacity Unlimited (Google Sheets based)
Proxy Pool 110M+ IPs across 150 countries

Scrape.do API Reference

Async API Endpoints

Endpoint Method Purpose
/api/v1/jobs POST Create new scraping job
/api/v1/jobs/{jobID} GET Check job status
/api/v1/jobs/{jobID}/{taskID} GET Retrieve task results
/api/v1/me GET Get account information

Job Status Values

Status Description
queuing Job is being prepared
queued Job is in queue waiting to be processed
pending Job is currently being processed
rotating Job is retrying with different proxies
success Job completed successfully
error Job failed
canceled Job was canceled by user

For complete API documentation, visit: Scrape.do Documentation


Support & Resources


This workflow is powered by Scrape.do - Reliable, Scalable, Unstoppable Web Scraping

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - 📋 Workflow Overview

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Scraping Section

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Processing Section

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - đŸ“Ĩ Form Trigger

Type / Role
n8n-nodes-base.formTrigger - formTrigger
Config choices
Version 2.2

Block 5 - 🔍 Create Scrape.do Job

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 6 - âŗ Wait 15s

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 7 - 📡 Check Job Status

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 8 - 🔁 Is Job Complete?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 9 - âŗ Wait 10s Retry

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 10 - đŸ“Ĩ Fetch Task Results

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 11 - 🔧 Parse Yelp HTML

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 12 - 📊 Store to Google Sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 13 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 14 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 15 - Sticky Note - Parse

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 16 - Sticky Note6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Scrape Yelp business data with Scrape.do API & Google Sheets storage
Complexity advanced
Nodes 16
Categories Market Research
Author Onur
Published 03 Dec 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/11454/11454.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Scrape Yelp business data with Scrape.do API & Google Sheets storage do?

Yelp Business Scraper by URL via Scrape.do API with Google Sheets Storage Overview This n8n workflow automates the process of scraping comprehen...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Market Research use case.