🔓 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 21, 2026

Google Maps to Google Sheets, lead lists done fast

Lisa Granqvist Partner Workflow Automation Expert

Copying business details out of Google Maps is the kind of task that looks “quick” until you’re 40 tabs deep, missing half the phone numbers, and your sheet still isn’t usable.

This Maps Sheets leads automation hits marketing managers and growth folks first, but agency owners building client lists and small local businesses doing their own outreach feel it too. You end up with cleaner lead lists, faster, without re-checking every row.

Below, you’ll see what the workflow does, what it replaces, and how to set it up so you can open your sheet and start outreach.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Google Maps to Google Sheets, lead lists done fast

The Challenge: Turning Google Maps into a clean lead list

You find the right search in Google Maps (like “Accountants London”), and the first few results look promising. Then reality kicks in. Phone numbers are formatted differently, websites are missing, and addresses get pasted into the wrong columns. After an hour, you don’t just have a messy spreadsheet. You have a list you don’t trust, which means you’ll double-check everything later (and later never comes). Honestly, it’s not the research that drains you. It’s the repetitive extracting, formatting, and fixing.

It adds up fast. Here’s where it breaks down.

  • Manually pulling names, phones, sites, and addresses takes about 2–3 minutes per business, and the time multiplies as the list grows.
  • Google Maps results are not “lead-list ready,” so your columns end up inconsistent and outreach gets delayed.
  • You miss fields because some listings hide details behind extra clicks, and it is easy to skip one when you’re moving fast.
  • Scaling becomes painful since doing the next location or industry means repeating the same process from scratch.

The Fix: Google Places results appended straight to Google Sheets

This workflow turns a simple “Industry + Location” query into a structured Google Sheet that’s ready for outreach. It starts with a form submission (for example, “Accountants London”), then calls the Google Places Text Search endpoint to fetch the first page of matching businesses. If Google returns a “next page” token, the workflow waits a few seconds (because the token needs time to activate), then fetches page two, and optionally page three. After that, it merges the results into one list, loops through each place, and calls Place Details to pull the specific fields you actually need: company name, formatted phone number, website, and formatted address. Finally, it formats those results into clean rows and appends them to your Google Sheet.

The workflow starts when you submit an industry/location search. From there, it fetches up to three pages of Google Places results, then enriches each business using Place Details. The finished output lands in Google Sheets as one row per business, mapped to your columns.

What Changes: Before vs. After

Real-World Impact

Say you build a weekly list for two niches in two cities (4 searches total). If you collect 50 businesses per search and spend roughly 2 minutes per business copying details, that’s about 7 hours of repetitive work. With this workflow, you submit each query in a form (maybe 1 minute), let it run while it fetches up to three pages and details (often under 10 minutes per query), and your Google Sheet fills itself. Most teams get back an afternoon every week, and the sheet is cleaner too.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for storing the lead list.
  • Google Cloud Places API to fetch Text Search and Details.
  • Google Places API key (get it from Google Cloud Console).

Skill level: Intermediate. You’ll paste an API key, connect Google Sheets OAuth, and map columns once.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A simple query kicks things off. You submit an “Industry + Location” phrase via the built-in form trigger, which becomes the search term for Google Places.

Google Places returns results in pages. The workflow pulls page one, checks for a next_page_token, waits a few seconds, then pulls page two and page three when available. Those waits are there for a reason.

Each business gets enriched. After merging all pages, the workflow loops through every place_id and calls Place Details to fetch the fields you care about (name, phone, website, address). If a field doesn’t exist, it’s left blank instead of breaking the run.

Your sheet is updated automatically. The results are formatted into rows and appended to a Google Sheet with your chosen document ID and tab name, using the columns you created.

You can easily modify which Place Details fields are pulled (like opening hours) or increase/decrease the number of pages fetched based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the intake form that collects the search query used for Google Places lookups.

  1. Add and open Form Query Intake.
  2. Set Form Title to Enter your Query.
  3. Set Form Description to Enter Industry + Location.
  4. Ensure the form field label is Query with placeholder Ex. Accountants London and mark it required.

Step 2: Configure the Google Places Text Search Requests

Set up the three paginated Places Text Search calls to gather results across multiple pages.

  1. Open Initial Text Search and set URL to https://maps.googleapis.com/maps/api/place/textsearch/json.
  2. In Initial Text Search, set the query parameter query to {{ $json.Query }} and key to [CONFIGURE_YOUR_API_KEY].
  3. Open Second Text Lookup and set URL to https://maps.googleapis.com/maps/api/place/textsearch/json.
  4. In Second Text Lookup, set pagetoken to {{ $json.next_page_token }} and key to [CONFIGURE_YOUR_API_KEY].
  5. Open Third Text Lookup and set URL to https://maps.googleapis.com/maps/api/place/textsearch/json.
  6. In Third Text Lookup, set pagetoken to {{ $json.next_page_token }} and key to [CONFIGURE_YOUR_API_KEY].

Initial Text Search outputs to both Next Page Check 2 and Combine Page Results in parallel, and Second Text Lookup outputs to both Next Page Check 3 and Combine Page Results in parallel.

⚠️ Common Pitfall: The Google Places API will return errors if [CONFIGURE_YOUR_API_KEY] is not replaced with a valid key or if the Places API is not enabled in your Google Cloud project.

Step 3: Configure Pagination and Result Merging

Handle pagination tokens, add delays for token readiness, and combine results from all pages.

  1. Open Next Page Check 2 and confirm the condition checks for existence of {{ $json.next_page_token }}.
  2. Open Pause 5s A and keep the default wait settings to delay before the next page request.
  3. Open Next Page Check 3 and confirm the condition checks for existence of {{ $json.next_page_token }}.
  4. Open Pause 5s B and keep the default wait settings to delay before the third page request.
  5. Open Combine Page Results and set Number of Inputs to 3 to merge results from all pages.

Step 4: Expand Items and Retrieve Place Details

Split the results array into individual items, then request detailed place data for each result.

  1. Open Expand Result Items and set Field to Split Out to results.
  2. Open Retrieve Place Details and set URL to https://maps.googleapis.com/maps/api/place/details/json.
  3. In Retrieve Place Details, set place_id to {{ $json.place_id }}.
  4. Set fields to name,formatted_phone_number,website,formatted_address and key to [CONFIGURE_YOUR_API_KEY].

Tip: If you add more fields to Retrieve Place Details, update the output mapping in Prepare Sheet Rows to match.

Step 5: Set Up Row Preparation and Google Sheets Output

Transform the place details into structured row data and append it to your Google Sheet.

  1. Open Prepare Sheet Rows and keep the JavaScript code as provided to map companyName, number, address, and website.
  2. Open Append to Sheet and set Operation to append.
  3. Set Document and Sheet Name to your target spreadsheet values (replace [YOUR_ID]).
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append to Sheet.

⚠️ Common Pitfall: Ensure your sheet has headers that align with the fields produced by Prepare Sheet Rows or the append may create mismatched columns.

Step 6: Test and Activate Your Workflow

Run a full test to confirm pagination, detail retrieval, and sheet output before activating.

  1. Click Execute Workflow and submit the form in Form Query Intake with a query like Accountants London.
  2. Verify that Initial Text Search, Second Text Lookup, and Third Text Lookup run, and that Combine Page Results merges three inputs.
  3. Confirm that Retrieve Place Details returns phone, address, and website fields, and that Append to Sheet adds rows to your Google Sheet.
  4. When the test succeeds, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Google Places API credentials can expire or be restricted too tightly. If things break, check your Google Cloud Console API key restrictions and that “Places API” is enabled 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.
  • Google Sheets OAuth can fail silently when the connected Google account loses access to the spreadsheet. Confirm the OAuth user can edit the specific file and tab you mapped in the Google Sheets node.

Common Questions

How quickly can I implement this Maps Sheets leads automation?

About 30 minutes if your Google accounts are ready.

Can non-technical teams implement this lead list automation?

Yes. You won’t write code, but you will paste an API key and point the Google Sheets node to the right spreadsheet.

Is n8n free to use for this Maps Sheets leads 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 Google Places API usage, which depends on how many searches and Place Details calls you run.

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.

How do I adapt this Maps Sheets leads solution to my specific challenges?

You can change what gets pulled by editing the Place Details HTTP Request fields (for example, adding opening_hours or address_components) and then updating the mapping in the “Prepare Sheet Rows” code node. If you need more or fewer results, adjust the paging logic by removing page 3 or adding more pages (with an extra wait and request). Common customizations include adding a “Search Query” column for traceability, inserting a dedupe check before appending, or branching the output into a CRM after the sheet write.

Why is my Google Sheets connection failing in this workflow?

Most of the time it’s OAuth access: the connected Google account doesn’t have edit permission on the target file or the spreadsheet was moved. Reconnect Google Sheets credentials in n8n, then verify the documentId and sheetName match a real tab. If the spreadsheet is in a shared drive, permissions can be stricter, so double-check sharing. And if you’re testing with a brand-new sheet, add the exact column headers first so appends don’t land in the wrong place.

What’s the capacity of this Maps Sheets leads solution?

It’s built to fetch up to three pages per query, which is often around 60 businesses. On n8n Cloud Starter you can run a healthy number of executions per month for list-building; if you self-host there’s no execution cap, but you’ll still be limited by Google Places quota and how aggressively you call Place Details. If you plan to do high volume, throttle the loop or add waits so you don’t hit rate limits.

Is this Maps Sheets leads automation better than using Zapier or Make?

For multi-page fetches plus per-item enrichment, n8n is usually the cleaner fit because it handles branching (page tokens), looping, and merging in one workflow without turning it into a fragile chain of zaps. It’s also easier to self-host if you don’t want usage-based pricing surprises. Zapier or Make can still work if you keep it simple, like one search and a single write to Sheets. If you’re deciding, Talk to an automation expert and we’ll sanity-check your use case.

Once this is running, list building stops being “a project” and becomes a quick input you can repeat whenever you need new leads. The workflow handles the repetitive stuff. You handle the 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