🔓 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, leads ready to pitch

Lisa Granqvist Partner Workflow Automation Expert

Copying businesses from Google Maps into a spreadsheet sounds simple until you do it for an hour and realize you’ve only captured 20 leads, half of them missing phone numbers, and you still need to dedupe.

Agency owners feel this when a client asks for “just 200 local leads by tomorrow.” A sales rep trying to hit daily outreach targets runs into the same wall. And if you manage marketing for a local service business, Google Maps leads automation is the difference between “we’ll do outreach this week” and “we did outreach today.”

This workflow scrapes Google Maps using BrowserAct, drops clean rows into Google Sheets, and pings you in Telegram the moment new leads land. You’ll see how it works, what you need, and what to watch out for before you run it at scale.

How This Automation Works

The full n8n workflow, from trigger to final output:

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

The Problem: Google Maps lead scraping is slow and messy

Manual Google Maps prospecting is sneaky expensive. You start with good intentions, then you’re bouncing between tabs, copying business names, trying to capture websites, guessing categories, and pasting everything into a sheet that quickly turns into chaos. Then come the duplicates, because the same business appears in multiple searches or you grabbed it last week and forgot. Worst part: by the time your list is “ready,” your competitors may have already emailed the best prospects.

The friction compounds, especially when you repeat it every week.

  • Each search session turns into an hour of copy-paste, and you still need to clean the sheet afterward.
  • Duplicates creep in fast, so outreach gets awkward (“Didn’t you email us yesterday?”).
  • It’s hard to stay consistent across teammates, which means lead quality swings day to day.
  • You don’t get notified when the list is ready, so scraping finishes and nobody acts on it.

The Solution: Scrape Maps, write to Sheets, get alerted

This n8n workflow turns Google Maps searching into a repeatable lead-capture system. You run it manually when you want a fresh batch of prospects, set your location and business category, and let BrowserAct handle the scraping job. When the scrape finishes, the workflow parses the results into individual businesses and writes them into Google Sheets. It also matches leads on the “Name” column, so you’re updating existing rows instead of creating duplicates. Finally, it sends you a Telegram message with the new lead’s details, so your next action is obvious: open the sheet and start outreach.

The workflow starts with your search criteria (location, category, and how many leads to pull). Then BrowserAct runs and the workflow waits until the task is complete. Once results are parsed, Google Sheets becomes your clean source of truth and Telegram becomes your real-time “new leads are ready” alert.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you need 100 roofers in a specific suburb. Manually, you might spend about 2 minutes per business between opening profiles, copying the name, website, phone number, and pasting into Sheets, which is roughly 3 hours for the list. With this workflow, you spend about 5 minutes setting the location and category, then wait while BrowserAct scrapes and n8n writes everything into Google Sheets. You get a Telegram alert when it’s done, and your “work” becomes outreach, not data entry.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • BrowserAct to scrape Google Maps search results.
  • Google Sheets to store and dedupe leads.
  • Telegram bot token (get it from BotFather in Telegram).

Skill level: Intermediate. You’ll connect accounts, add an API key, and edit a few fields like location and category.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

You trigger it when you need leads. This workflow is started manually, which is useful when you’re building lists on demand for a campaign, a new client, or a new territory.

BrowserAct runs the Google Maps scrape. You set the Location, Bussines_Category, and the number of leads to pull in the first BrowserAct node. Then a second BrowserAct node monitors the job and waits until the task is fully complete.

The raw output is cleaned up into usable rows. A code step parses the JSON string coming back from the scraper and splits it into individual items, one per business, so Sheets can handle it neatly.

Google Sheets becomes your live lead database. Each business is appended or updated, matching on “Name” to cut down duplicates. Once the sheet is updated, Telegram sends you a message with the new lead details.

You can easily modify the search criteria (location, category, and volume) to fit different niches or cities based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow starts with a manual run, then kicks off a scraping task and follows it through completion.

  1. Add and open Manual Execution Start to confirm it is the entry point.
  2. Connect Manual Execution Start to Launch Scrape Task to match the execution flow.

Tip: Flowpast Branding is a sticky note for documentation only and does not affect execution.

Step 2: Connect BrowserAct and Launch the Scrape

These nodes start the scraping job and wait for it to complete before parsing the results.

  1. Open Launch Scrape Task and set Workflow ID to [YOUR_ID].
  2. In Launch Scrape TaskInput Parameters, keep or update: Location = Brooklyn, Bussines_Category = Baby Care, Extracted_Data = 15.
  3. Credential Required: Connect your browserActApi credentials in Launch Scrape Task.
  4. Open Monitor Task Status and set Task ID to ={{ $json.id }}.
  5. Set Operation to getTask, Max Wait Time to 600, Wait For Finish to true, and Polling Interval to 30.
  6. Credential Required: Connect your browserActApi credentials in Monitor Task Status.

⚠️ Common Pitfall: If Launch Scrape Task does not return an id, Monitor Task Status will fail because ={{ $json.id }} will be empty.

Step 3: Set Up Data Parsing

The parsing step converts the scraper’s JSON string output into individual items for sheet updates and alerts.

  1. Open Parse Scrape Output and paste the provided JavaScript code exactly as shown in the workflow.
  2. Ensure the script reads $input.first().json.output.string and returns an array of items using return outputItems;.
  3. Confirm the connection from Monitor Task Status to Parse Scrape Output.

⚠️ Common Pitfall: If $input.first().json.output.string is missing, the code throws an error and stops the workflow.

Step 4: Configure Output Actions

These steps update Google Sheets and send a Telegram summary for each parsed lead.

  1. Open Update Spreadsheet Rows and set Operation to appendOrUpdate.
  2. Set Document to Test For BrowserAct and Sheet to Google Maps Local Lead Finder.
  3. Map columns in Update Spreadsheet Rows to the expressions: Url = {{ $json.Url }}, Name = {{ $json.Name }}, Phone = {{ $json.Phone }}, Rating = {{ $json.Rating }}, Address = {{ $json.Address }}, Category = {{ $json.Category}}, LastSummary = {{ $json.LastSummary }}.
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials in Update Spreadsheet Rows.
  5. Open Dispatch Telegram Alert and set Chat ID to [YOUR_ID].
  6. Set Text to the multi-line expression: ={{ $('Parse Scrape Output').item.json.Name }} {{ $('Parse Scrape Output').item.json.Address }} {{ $('Parse Scrape Output').item.json.LastSummary }} {{ $('Parse Scrape Output').item.json.Rating }} {{ $('Parse Scrape Output').item.json.Url }} {{ $('Parse Scrape Output').item.json.Category }}.
  7. Credential Required: Connect your telegramApi credentials in Dispatch Telegram Alert.

Tip: Update Spreadsheet Rows uses Matching Columns on Name, so duplicates will update instead of append.

Step 5: Test and Activate Your Workflow

Run a full test to confirm the scrape, parsing, sheet update, and alert steps work end-to-end.

  1. Click Execute Workflow on Manual Execution Start to start a manual test run.
  2. Verify that Monitor Task Status completes and Parse Scrape Output returns multiple items.
  3. Check Update Spreadsheet Rows to confirm rows are appended or updated in the target sheet.
  4. Confirm a Telegram message is sent by Dispatch Telegram Alert with lead details.
  5. When satisfied, switch the workflow status to Active to use it in production.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • BrowserAct credentials can expire or need specific permissions. If things break, check your BrowserAct API key and workflow/template access in the BrowserAct dashboard 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.
  • Default parsing assumptions can be brittle when Google Maps layouts change. If your “Parse Scrape Output” step starts returning missing fields, inspect the raw JSON output and adjust the code to match the new structure.

Frequently Asked Questions

How long does it take to set up this Google Maps leads automation?

About 30 minutes if your accounts are ready.

Do I need coding skills to automate Google Maps leads?

No. You’ll mostly connect BrowserAct, Google Sheets, and Telegram, then edit the location/category fields.

Is n8n free to use for this Google Maps 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 BrowserAct usage costs based on how many leads you scrape.

Where can I host n8n to run this Google Maps leads 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 customize this Google Maps leads automation workflow for multiple cities?

Yes, but you’ll want to plan it. Most people duplicate the workflow and change the Location and Bussines_Category in the “Launch Scrape Task” setup, then write into separate tabs (or separate Sheets) per city. You can also loop through a small list of cities by feeding items into the BrowserAct launch step, but start simple first. If you change dedupe logic, keep the “Update Spreadsheet Rows” match column consistent so your database stays clean.

Why is my BrowserAct connection failing in this workflow?

Usually it’s an expired or incorrect API key, so regenerate it in BrowserAct and update the credential in n8n. It can also be a missing permission for the “Google Maps Local Lead Finder” template, or a blocked run if you’ve hit BrowserAct limits. If the scrape launches but never completes, check the task status output in the “Monitor Task Status” node and confirm it reaches 100%.

How many leads can this Google Maps leads automation handle?

Practically, you can pull a few hundred leads per run comfortably, then repeat runs as needed. On n8n Cloud, your monthly execution limit depends on plan (Starter is meant for lighter volumes, Pro handles more). If you self-host, there’s no execution cap, but your server and BrowserAct usage limits still matter. For stability, most teams start with batches of about 100 to 300 leads per scrape and scale up once the sheet format is dialed in.

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

For this exact use case, n8n is usually the better fit because the “hard part” isn’t moving data from A to B, it’s handling a scraping job, waiting for completion, parsing JSON, and deduping in Sheets. Zapier and Make can do pieces of that, but the workflow gets expensive and awkward once you add branching, batching, and code-based parsing. n8n also gives you the self-hosting option, which is honestly a big deal when you’re doing lead gen regularly. If you only need a simple “new row in Sheets to Slack” automation, Zapier or Make is fine. Talk to an automation expert if you want help choosing.

Once this is running, lead capture becomes a button you click, not a chore you dread. The workflow handles the repetitive stuff. You handle the pitching.

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