🎣 Google Maps business phone no scraper with Bright Data & Sheets

⚑ 3,420 views · 🎣 Lead Generation & Enrichment

πŸ’‘ Pro Tip β€” HTTP Request scraping tends to break when sites update their markup. If you’re scraping a major platform, check if ScraperNode covers it β€” it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.

View All Scrapers

Description

Google Maps Business Phone No Scraper with Bright Data & Sheets

Overview

This n8n workflow automates the process of scraping business phone numbers and information from Google Maps using the Bright Data API and saves the results to Google Sheets.

Workflow Components

1. Form Trigger - Submit Location and Keywords

Type: Form Trigger
Purpose: Start the workflow when a form is submitted
Fields:

Configuration:

2. Bright Data API - Request Business Data

Type: HTTP Request
Purpose: Sends scraping request to Bright Data API
Method: POST
URL: https://api.brightdata.com/datasets/v3/trigger

Query Parameters:

Headers:

Request Body:

{
  "input": [
    {
      "country": "{{ $json.Location }}",
      "keyword": "{{ $json.keywords }}",
      "lat": ""
    }
  ],
  "custom_output_fields": [
    "url",
    "country",
    "name",
    "address",
    "description",
    "open_hours",
    "reviews_count",
    "rating",
    "reviews",
    "services_provided",
    "open_website",
    "phone_number",
    "permanently_closed",
    "photos_and_videos",
    "people_also_search"
  ]
}

3. Check Scraping Status

Type: HTTP Request
Purpose: Check if data scraping is completed
Method: GET
URL: https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}

Query Parameters:

Headers:

4. Check If Status Ready

Type: Conditional (IF)
Purpose: Determine if scraping is ready or needs to wait
Condition: {{ $json.status }} equals "ready"

5. Wait Before Retry

Type: Wait
Purpose: Pause 1 minute before checking status again
Duration: 1 minute
Webhook ID: 7047efad-de41-4608-b95c-d3e0203ef620

6. Check Records Exist

Type: Conditional (IF)
Purpose: Proceed only if business records are found
Condition: {{ $json.records }} not equals 0

7. Fetch Business Data

Type: HTTP Request
Purpose: Get business information including phone numbers
Method: GET
URL: https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}

Query Parameters:

Headers:

8. Save to Google Sheets

Type: Google Sheets
Purpose: Store business data in Google Sheets
Operation: Append
Document ID: YOUR_GOOGLE_SHEET_ID
Sheet Name: GMB

Column Mapping:

Workflow Flow

  1. Start: User submits form with location and keywords
  2. Request: Send scraping request to Bright Data API
  3. Monitor: Check scraping status periodically
  4. Wait Loop: If not ready, wait 1 minute and check again
  5. Validate: Ensure records exist before proceeding
  6. Fetch: Retrieve the scraped business data
  7. Save: Store results in Google Sheets

Setup Requirements

API Keys & Credentials

Google Sheets Setup

Workflow Status

Notes

For any questions or support, please contact: info@incrementors.com or fill out this form: https://www.incrementors.com/contact-us/

πŸ”— Nodes Used

Google Sheets, HTTP Request, n8n Form Trigger

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup