🔓 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 email

Lisa Granqvist Partner Workflow Automation Expert

You find a solid business on Google Maps, open ten tabs, hunt for a real website, skim for “what they do,” then try to write an email that doesn’t sound copied. It’s exhausting. And the worst part is how slow it is.

Sales reps feel this when pipeline is thin. A marketing agency doing local outreach feels it when they need volume without sounding spammy. Even a freelancer pitching SEO or web design runs into the same wall. This Google Maps leads automation turns “research + draft” into a repeatable, mostly hands-off workflow.

You’ll see how it pulls leads from Google Maps, analyzes each business website, and drops ready-to-review email drafts into Google Sheets so you can send faster (and with more confidence).

How This Automation Works

See how this solves the problem:

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

The Challenge: Turning Map Listings Into Outreach That Doesn’t Suck

Google Maps is great for discovery, but terrible for doing outreach at scale. You can find 30 promising businesses in a search, then spend the next couple hours copying names, addresses, phone numbers, and URLs into a sheet. After that comes the “personalization” part: reading each website, trying to understand what makes them different, and writing an email that sounds like you actually looked. Miss a detail, and you send a message with the wrong service, the wrong city, or a generic pitch that gets ignored. It’s not hard work. It’s grindy work.

The friction compounds once you try to do it daily.

  • Copy-pasting Google Maps data into a list is repetitive, and small mistakes sneak in fast.
  • Website research becomes a tab explosion, so you lose context and start writing vague emails.
  • Even “personalized” templates still take about 10 minutes per lead to tweak properly.
  • Your sheet ends up inconsistent, which makes follow-ups and reporting a mess later.

The Fix: Google Maps → Website Context → Email Drafts in Sheets

This workflow automates the lead sourcing and first-pass personalization in one run. You start by defining what you want (like “Cafes in Shibuya” or “Gyms in London”) plus how many results to pull and what you’re selling. n8n then triggers an Apify Google Maps Scraper run to fetch the business listings. For each business, it checks if a website exists, pulls the site HTML, and extracts useful text so you’re not reading raw markup. Next, OpenAI uses that site context to generate a tailored email subject and body that connects what the business seems to care about with your service. Finally, everything is appended into Google Sheets, giving you a clean lead list and a draft you can review, edit lightly, and send.

The workflow starts with your search query and offer details. It then loops through results, enriches them with website information, and asks OpenAI to draft outreach. Google Sheets becomes the single place your leads and drafts live, ready for quality control and sending.

What Changes: Before vs. After

Real-World Impact

Say you want 30 leads from Google Maps and you normally spend about 10 minutes per business to copy details, check the website, and write a first email draft. That’s about 5 hours for one list. With this workflow, you spend maybe 10 minutes setting the query and offer, then let n8n run while it scrapes and drafts. You’ll still review the emails, but now that’s a quick pass in Google Sheets, not a research marathon.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Apify to scrape Google Maps business listings
  • OpenAI to generate personalized email drafts
  • Google Sheets to store leads and draft emails
  • OpenAI API key (get it from the OpenAI dashboard)

Skill level: Intermediate. You’ll connect credentials, edit a few fields, and test a small batch before running bigger pulls.

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

The Workflow Flow

Manual launch with your targeting details. You start the run when you’re ready, then set the search query, how many businesses to fetch, and the basics of your offer (service name and what makes it strong).

Google Maps scraping via Apify. n8n triggers an Apify actor run and then retrieves the results, which means you’re not doing any copy-paste from Maps. The output becomes a list of businesses you can process one by one.

Website check and content extraction. For each business, the workflow confirms there’s a website URL, fetches the page HTML with an HTTP Request, and parses it down to readable text. That text is the “why you’re reaching out” fuel for the email draft.

Email drafting and storage. OpenAI generates a subject and body, then n8n appends the business details plus the draft content into Google Sheets. From there, you can review, edit, and optionally push into sending workflows.

You can easily modify the search query and the email prompt to match different niches, languages, and offers. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Start the workflow manually and ensure the initial parameter setup is ready before pulling lead data.

  1. Add the Manual Launch Trigger node as the trigger to run the workflow on demand.
  2. Open Setup Parameters and keep Include Other Fields enabled to pass through extra fields.
  3. In Setup Parameters, set searchQuery to 渋谷 カフェ, maxPlaces to 5, apifyActorId to compass/google-maps-scraper, serviceName to 飲食店向け予約管理システム「yoyaku-kun」, and serviceStrength to 忙しいランチタイムでも電話を取らずに予約完結。オーガニック食材などこだわりをアピールするページ作成機能あり。.
  4. Confirm Manual Launch Trigger connects to Setup Parameters in the canvas.

Step 2: Connect Apify and Lead Iteration

Pull scraped results from Apify and process them one-by-one through the batch loop.

  1. Add Fetch Actor Runs and set Resource to Actor runs.
  2. Connect Setup Parameters to Fetch Actor Runs, then connect Fetch Actor Runs to Iterate Records.
  3. Ensure Iterate Records is configured to process items in batches (defaults are fine).
Credential Required: Connect your Apify API credentials in Fetch Actor Runs. This node requires credentials even though none are configured yet.

Step 3: Validate Websites and Extract Site Text

Only process leads with valid websites, then retrieve and parse their HTML to produce clean text for the email prompt.

  1. In Validate Website Presence, set the condition to check leftValue as {{ $json.website }} with Operation set to notEmpty.
  2. Connect the second output of Iterate Records to Validate Website Presence, then connect its true output to Retrieve Site HTML.
  3. In Retrieve Site HTML, set URL to {{ $json.website }}.
  4. Configure Parse Site Text with Mode set to runOnceForEachItem and paste the provided JavaScript in JS Code to generate site_text and carry forward lead fields.
⚠️ Common Pitfall: If a website field is missing or malformed, Validate Website Presence prevents Retrieve Site HTML from running, which keeps downstream nodes safe from empty HTML.

Step 4: Set Up AI Email Composition

Generate a personalized email message using the extracted site text and lead metadata.

  1. Add Compose Tailored Email and set Operation to message.
  2. Connect Parse Site Text to Compose Tailored Email.

Credential Required: Connect your openAiApi credentials in Compose Tailored Email.

Step 5: Configure Google Sheets Output

Append or update each processed lead with the generated email content and extracted site text.

  1. Add Append to Sheets with Operation set to appendOrUpdate.
  2. Set Document ID to <__PLACEHOLDER_VALUE__Google Sheets Document ID__> and Sheet Name to <__PLACEHOLDER_VALUE__Sheet Name (e.g., Sheet1)__>.
  3. Map columns with expressions: 住所{{ $('Iterate Records').item.json.address }}, 店舗名{{ $('Iterate Records').item.json.title }}, Webサイト{{ $('Iterate Records').item.json.website }}, 電話番号{{ $('Iterate Records').item.json.phone }}, 生成されたメール件名{{ $json.message.content }}, 生成されたメール本文{{ $json.message.content }}, サイトから取得した情報{{ $('Parse Site Text').item.json.site_text }}.
  4. Connect Compose Tailored Email to Append to Sheets, then route Append to Sheets back to Iterate Records to continue the batch loop.
Credential Required: Connect your Google Sheets credentials in Append to Sheets. This node requires credentials even though none are configured yet.

Step 6: Test and Activate Your Workflow

Validate the end-to-end flow and enable it for ongoing use.

  1. Click Execute Workflow to run Manual Launch Trigger and watch data flow through Fetch Actor Runs, Iterate Records, Validate Website Presence, and Append to Sheets.
  2. Confirm that Append to Sheets writes rows with generated email content and site_text in your target Google Sheet.
  3. Once validated, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Apify credentials can expire or need specific permissions. If things break, check your Apify token in n8n Credentials first, then confirm the actor access in your Apify account.
  • 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 prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this Google Maps leads automation?

About an hour if you already have your Apify, OpenAI, and Google credentials ready.

Can non-technical teams implement this Google Maps leads automation?

Yes, but plan for one careful setup pass. You’ll mostly be pasting API keys, selecting your Google Sheet, and testing with a small batch.

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 OpenAI API costs and Apify usage based on how many leads you scrape.

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 Google Maps leads automation solution to my specific challenges?

Start by editing the “Setup Parameters” node to change your search query, lead limit, and service positioning. Then adjust the prompt inside “Compose Tailored Email” so the tone matches your brand (formal, casual, short, bilingual, whatever you need). Common customizations include filtering out businesses without websites in “Validate Website Presence,” changing what text gets extracted in “Parse Site Text,” and adding extra columns in “Append to Sheets” for campaign tracking.

Why is my Apify connection failing in this workflow?

Usually it’s an expired or incorrect Apify token saved in n8n credentials.

What’s the capacity of this Google Maps leads automation solution?

In practice, most people run this in batches of 20–100 leads to keep scraping and AI costs predictable. On n8n Cloud, capacity depends on your plan’s monthly executions; if you self-host, you’re mainly limited by your server and how quickly Apify returns results. The workflow processes leads one-by-one through a loop, so bigger pulls simply take longer to finish. If you need scale, the easiest win is running multiple small campaigns instead of one huge run.

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

Often, yes, because this kind of flow needs looping, conditional logic, and data shaping that gets awkward (and pricey) in simpler tools. n8n also gives you the option to self-host, which is a big deal when you’re iterating on lead gen and don’t want to worry about task limits. Another advantage is how easily you can edit the “Parse Site Text” and “Compose Tailored Email” steps when you want better personalization. Zapier or Make can still work if your process is just “new row in Sheets → send email,” but this workflow is closer to a mini research assistant. Talk to an automation expert if you’re not sure which fits.

Once this is set up, your lead list and your first drafts appear in Google Sheets like clockwork. Honestly, it’s a relief to spend your time on real selling instead of tab-hopping.

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