Google Maps Deep Scraping and Lead Generation Tracker - n8n Workflow

Use this powerful n8n workflow template to scrape Google Maps results deeply for targeted leads (dentists, plumbers, etc.), deduplicate new contacts using Google Sheets, and receive real-time notifications via Gmail and Slack. This n8n workflow ensures high-quality data extraction.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?

Lead generation specialists looking for automated data sourcing.
Marketing agencies needing fresh local business contact information.
Sales teams requiring verifiable leads (phone, website, reviews) without manual searching.
Technical users seeking advanced n8n templates for robust web scraping.


  • Anyone needing a reliable n8n workflow to monitor specific business categories (e.g., dentists) in multiple cities.

Overview

Manually searching Google Maps for business data, tracking leads, and ensuring deduplication is extremely time-consuming and prone to errors. This specialized n8n workflow solves this challenge by automating the entire process. Utilizing the dedicated ScrapeOps n8n node, the automation first performs a high-fidelity scrape of the Google Maps search results for a chosen city and keyword (defaulting to 'dentist').

It then scrapes the individual detail pages to capture rich data—including phone numbers, websites, full addresses, and customer reviews—often hidden or dynamically loaded. The intelligence of this n8n template lies in its custom code steps, which intelligently parse the volatile HTML structure of Google Maps. Finally, the system checks the newly acquired leads against previous entries in a Google Sheet spreadsheet, ensuring only truly new leads are saved to the database and immediately trigger alerts via Gmail and Slack. This robust n8n workflow is ideal for continuous lead tracking.

How it Works

This advanced n8n workflow operates in four main phases:


  1. Input and Configuration: The automation starts with a Form - City Input n8n trigger, allowing the user to specify the target city. The subsequent Set node creates the necessary Google Maps search URL, dynamically inserting the city and the defined keyword (e.g., 'dentist').

  2. Deep Web Scraping: The ScrapeOps - Google Maps Search n8n node fetches the initial search result HTML. The critical Parse Business Details code n8n node then extracts core information and the unique map URL for each business. The workflow then iterates, using the ScrapeOps - Business Details n8n node to fetch the full detail page for every single lead. The Parse Full Business Info code n8n node performs a deep extraction, gathering contact details, reviews, and address information, even identifying specific attributes like 'LGBTQ+ friendly' status.

  3. Deduplication: The Read Previous Entries from Sheet n8n node pulls all existing records from the linked Google Sheets database. The Compare With Previous Run code n8n node intelligently checks the new leads against the old data using normalized names and phone numbers, marking each item's status as 'new' or 'old'.

  4. Save and Notify: The Filter New Leads n8n node ensures that only items marked 'new' proceed. These new leads are appended to the master list using the Save to Google Sheets n8n node. Finally, the successful capture triggers the Send Gmail Alert for New Leads and Send a message Slack n8n node, providing immediate notification to the sales or marketing team. This automated flow makes this a highly efficient n8n workflow.

Installation Guide

To deploy and utilize this n8n workflow template, follow these steps:


  1. Import the n8n Workflow: Copy the provided JSON data and import it directly into your n8n instance.

  2. ScrapeOps API Key: You must acquire and configure credentials for ScrapeOps (used by the ScrapeOps - Google Maps Search and ScrapeOps - Business Details n8n node). This service is essential for reliably handling JavaScript rendering and anti-bot measures on Google Maps.

  3. Google Sheets Credentials: Configure a Google Sheets credential and link it to a spreadsheet. Ensure your sheet contains the mandatory headers: businessName, phone, website, rating, totalReviews, address, city, mapUrl, status, checkedAt, lgbtqFriendly, review1, review2, review3.

* In the Read Previous Entries from Sheet and Save to Google Sheets n8n nodes, select your created Google Sheet and worksheet.

  1. Gmail/Slack Credentials: Set up credentials for the Gmail and Slack n8n nodes and update the recipient fields in the final nodes (Send Gmail Alert for New Leads and Send a message).

  2. Activation: Activate the n8n workflow. Use the unique form link from the initial n8n trigger node to execute the lead search for a specified city.

Node Details

This n8n workflow leverages several powerful nodes:

Form - City Input (n8n trigger): Initiates the automation on demand by capturing the required City Name input from a user, defining the scope of the search.
Set Google Maps Configuration (Set n8n node): Dynamically constructs the search parameters, setting the keyword (default 'dentist') and the necessary searchUrl based on the user's city input.
ScrapeOps - Google Maps Search/Business Details (ScrapeOps n8n node): Uses the ScrapeOps API to perform highly reliable scraping, enabling JavaScript rendering (render_js: true) necessary to retrieve the complete data from Google Maps search results and individual detail pages.
Parse Business Details / Parse Full Business Info (Code n8n node): These custom JavaScript n8n nodes contain intricate logic (regex patterns and HTML traversal) optimized for Google Maps' structure. They are responsible for extracting structured fields like business name, phone, website, and three specific customer reviews from the complex raw HTML.
Read Previous Entries from Sheet (Google Sheets n8n node): Retrieves all existing leads from the database for the deduplication process.
Compare With Previous Run (Code n8n node): This code n8n node performs the crucial deduplication logic by normalizing names and phone numbers to accurately compare new leads against previous runs, setting the status field to 'new' if a match is not found.
Filter New Leads (If n8n node): Filters the data stream, allowing only items where $json.status equals 'new' to proceed to the saving and alert steps.
Save to Google Sheets (Google Sheets n8n node): Appends the fully processed, new, and rich lead data to the designated Google Sheet spreadsheet.


  • Send Gmail Alert for New Leads (Gmail n8n node) & Send a message (Slack n8n node): Provides instant notification of newly identified leads, completing the reactive aspect of this automated n8n workflow.

Related n8n Workflows

Free

Nodes: 9 Nodes
Updated: December 26 2025
View all
Created by

Featured*