🔓 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 Maps to Google Sheets, clean leads ready

Lisa Granqvist Partner Workflow Automation Expert

Copying businesses out of Google Maps is annoying on a good day. On a busy day, it turns into tabs everywhere, half-finished lists, and “I’ll clean it up later” leads that never get cleaned.

If you do outreach, agency owners feel this weekly. A marketing manager building local lists runs into the same mess. Even a solo consultant prospecting niche services gets stuck. This maps lead scraping automation takes a Google Maps search and turns it into a clean Sheet you can actually use.

You’ll see exactly what the workflow does, what you need to run it, and how to think about customizing it so your outreach list stays reliable.

How This Automation Works

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

n8n Workflow Template: Google Maps to Google Sheets, clean leads ready

Why This Matters: Google Maps Leads Get Messy Fast

Lead lists from Google Maps usually start with good intentions. Then reality shows up. You grab a few businesses, paste them into a spreadsheet, and immediately hit the usual problems: missing websites, no contact emails, duplicates, and “links” that are really Google redirect URLs. After about 30 minutes, you’re not prospecting anymore. You’re cleaning. Worse, the list looks done, but it’s quietly unreliable, which means outreach bounces, wasted follow-ups, and that nagging feeling you should double-check everything.

The friction compounds.

  • Manually opening listings and copying details turns one search into an hour of repetitive work.
  • Google/tracking links sneak in, so you end up scraping the wrong pages or saving unusable URLs.
  • Duplicates show up constantly once you run multiple searches across nearby cities or similar keywords.
  • Even when you collect websites, finding emails becomes a second project with even more tabs.

What You’ll Build: Google Maps Search → Clean Sheet Leads

This workflow starts with a Google Maps search URL (for example, “carpenters in Tarragona”) and automatically pulls the listings from the results page. It extracts the business website links, removes junk URLs that point back to Google or tracking redirects, then deduplicates the remaining sites so you’re not processing the same domain again and again. Next, it visits each website, grabs the HTML, and scans it for valid email addresses. When it finds emails, it splits them into clean, individual items, filters out empty results, removes duplicate emails, and finally appends the cleaned leads to Google Sheets. The end result is a spreadsheet-ready outreach list, built from a search you already know how to do.

The workflow begins when you run it manually inside n8n. From there, it fetches Google Maps HTML, turns that into a list of unique websites, then loops through each site to extract emails. At the end, Google Sheets receives a tidy set of results you can sort, enrich, and contact.

What You’re Building

Expected Results

Say you build a list for one niche in one city and you want 100 leads. Manually, if you spend about 2 minutes per listing to open it, grab the site, and hunt for an email, you’re looking at roughly 3 hours. With this workflow, you paste in the Google Maps search URL, hit test, and let it run. You might spend 10 minutes reviewing the final Sheet, while the scraping and parsing happens in the background.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for storing your cleaned lead list.
  • Google Maps search URL to define the niche and location.
  • Google Sheets OAuth2 credentials (get it from Google Cloud Console)

Skill level: Beginner. You’ll connect accounts, paste a URL, and tweak a limit or two.

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

Step by Step

You start the run manually. In n8n, you click “Test Workflow” (or execute the workflow) when you’re ready to generate a fresh batch of leads for a specific search.

Google Maps gets fetched and parsed. The workflow pulls the HTML from your Google Maps search URL, then a code step extracts the outgoing website links from the page.

Links get cleaned and deduplicated. It filters out Google URLs and tracking redirects, removes duplicates, and applies a record limit (the default is 100) so you control how big each run gets.

Each website is visited to find emails. n8n loops through the websites in batches, fetches each site’s HTML, waits briefly so you don’t overload anything, then parses for valid email addresses and drops empty results.

Results land in Google Sheets. Emails are split into individual rows, duplicates are removed again (now at the email level), and the final list is appended to your spreadsheet for outreach.

You can easily modify the record limit to process fewer sites per run, or change the search URL to target a new niche. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Start the workflow manually so you can validate each stage of the email collection pipeline.

  1. Add Manual Launch Trigger as the entry point of the workflow.
  2. Connect Manual Launch Trigger to Map Search Fetch to ensure the workflow starts with the search request.

The Flowpast Branding sticky note is informational only and does not affect execution.

Step 2: Connect Google Sheets

Prepare the output destination for captured email addresses.

  1. Open Append to Spreadsheet and select Operation as append.
  2. Set Spreadsheet to [YOUR_ID] and Sheet to Hoja 1 (value gid=0).
  3. Credential Required: Connect your googleSheetsOAuth2Api credentials.

Step 3: Set Up Website Discovery and Filtering

Fetch map search data, extract website URLs, and filter out non-relevant domains.

  1. In Map Search Fetch, set URL to https://www.google.[CONFIGURE_YOUR_API_KEY]/@41.1402229,1.0832014,56063m/data=!3m1!1e3?entry=ttu&g_ep=EgoyMDI1MTAwMS4wIKXMDSoASAFQAw%3D%3D.
  2. In Website Link Extractor, paste the JavaScript code that extracts URLs: const input = $input.first().json.data const regex = /https?:\/\/[^\/\s">]+/g const websites = input?.match?.(regex) || [] return websites.map(website => ({ json: { website } })).
  3. Configure Exclude Google Links with “does not contain” string filters using {{ $json.website }} against schema, google, gg, gstatic, sentry.wixpress.com, sentry.io, and sentry-next.wixpress.com.
  4. Keep Unique Website Filter to remove duplicates before processing.
  5. Set Record Limit Control Max Items to 100 to control request volume.

⚠️ Common Pitfall: Replace [CONFIGURE_YOUR_API_KEY] in Map Search Fetch with a valid API endpoint or your requests will fail.

Step 4: Set Up Email Extraction Loop

Iterate through each website, download the HTML, and parse for emails in a controlled loop.

  1. Connect Record Limit Control to Iterate Records to batch through website URLs.
  2. Iterate Records outputs to both Pause Before Filter and Site HTML Fetch in parallel to manage the loop timing and fetch requests.
  3. In Site HTML Fetch, set URL to {{ $json.website }} so each website is fetched dynamically.
  4. In Brief Delay, set Amount to 1 to add a short delay between fetch and parse.
  5. In Email Address Parser, paste the email regex code: const input = $input.first().json.data const regex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.(?!jpeg|jpg|png|gif|webp|svg)[a-zA-Z]{2,}/g const emails = input?.match?.(regex) || [] return { json: { emails } }.
  6. In Keep Nonempty Emails, add an “exists” array condition with Left Value set to {{ $json.emails }}.
  7. In Expand Email Items, set Field to Split Out to emails, then pass the results through Unique Email Filter.

If some websites block requests, Site HTML Fetch is already configured to continue on error, so the loop won’t break.

Step 5: Configure Output to Spreadsheet

Send the cleaned, unique emails into your Google Sheet.

  1. Connect Unique Email Filter to Append to Spreadsheet.
  2. Confirm the column schema in Append to Spreadsheet matches your sheet (e.g., Título, Texto, HECHO, TIKTOK, SHORTS, Fecha).
  3. Credential Required: Connect your googleSheetsOAuth2Api credentials if not already set.

Step 6: Test and Activate Your Workflow

Validate end-to-end execution before running it regularly.

  1. Click Execute Workflow from Manual Launch Trigger to run a full test.
  2. Confirm that Map Search Fetch returns data and Website Link Extractor outputs website items.
  3. Verify that Unique Email Filter outputs individual email records and Append to Spreadsheet appends new rows.
  4. Once verified, click Activate to enable the workflow for production use.
🔒

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 Google Sheets node credential selection and your Google Cloud OAuth consent/permissions first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • HTTP Request scraping can fail if the target site blocks bots or serves different HTML. If email extraction suddenly drops to zero, inspect the fetched HTML output in n8n and consider adding headers or slowing the batch size.

Quick Answers

What’s the setup time for this Maps lead scraping automation?

About 20 minutes if your Google Sheets connection is ready.

Is coding required for this lead scraping automation?

No. You’ll import the workflow, connect credentials, and paste your Google Maps search URL.

Is n8n free to use for this Maps lead scraping 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 HTTP usage and your time reviewing results, since this workflow doesn’t require paid AI APIs.

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 Maps lead scraping workflow for different use cases?

Yes, and you should. Most people swap the Google Maps search URL in the “Map Search Fetch” HTTP Request node, adjust the “Record Limit Control” node to run smaller batches, and change what gets written in “Append to Spreadsheet” (extra columns like niche, city, or source). If you want more aggressive scraping, tweak the wait nodes, but be careful because some sites will block fast repeated requests.

Why is my Google Sheets connection failing in this workflow?

Usually it’s expired or mismatched OAuth credentials. Reconnect Google Sheets in n8n, confirm you selected the right Google account, and make sure the target spreadsheet is shared with that account. If it still fails, check the node settings for the correct Sheet/tab name because renamed tabs are a silent workflow killer.

What volume can this Maps lead scraping workflow process?

The workflow is set to about 100 unique websites per run by default, and you can raise or lower that limit.

Is this Maps lead scraping automation better than using Zapier or Make?

Often, yes. Zapier and Make are great for moving data between apps, but scraping, parsing HTML, deduplicating, and looping through batches is where they get clunky fast (and pricey once you add steps). n8n handles branching, code steps, and batch processing in one place, and self-hosting removes execution anxiety when you scale. On the other hand, if you only need to append a few rows from a form, Zapier is simpler. Talk to an automation expert if you’re on the fence.

Once this is running, your “lead gen day” stops being a copy-paste marathon. You’ll get a cleaner list, faster, and you can put that time into actual outreach.

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