Google Maps to Google Sheets, cold email icebreakers
You find a “perfect” local lead on Google Maps, then spend the next hour chasing their website, hunting for an email, and trying to write something that doesn’t sound like a template. Multiply that by 20 leads and your afternoon is gone. That’s what Google Maps leads automation fixes.
This hits outreach specialists first, because the list building never ends. But marketing freelancers and agency owners feel it too, especially when you’re trying to scale without sending boring, generic cold emails.
This workflow turns a single search phrase into a Google Sheet of real businesses, plus a short website summary and a warm GPT-4 icebreaker you can paste straight into your email tool. Here’s what’s happening under the hood, and how to use it without getting buried in setup.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Maps to Google Sheets, cold email icebreakers
flowchart LR
subgraph sg0["Form: Submit Search Keyword Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>Form: Submit Search Keyword"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Dumpling AI: Search Google M.."]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "🧮 Split: Extract Individual ..", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "🔁 Loop: Process Each Business", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>🧠 Dumpling AI: Extract Email.."]
n5@{ icon: "mdi:robot", form: "rounded", label: "✍️ GPT-4: Write Personalized..", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "✅ IF: Email Exists", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "📄 Log to Google Sheets", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>📤 Instantly API: Add to Camp.."]
n6 --> n7
n7 --> n3
n0 --> n1
n3 --> n8
n3 --> n4
n2 --> n3
n1 --> n2
n5 --> n6
n4 --> n5
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n5 ai
class n6 decision
class n7 database
class n1,n4,n8 api
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n8 customIcon
The Problem: Manual lead research kills your sending volume
Cold outreach falls apart in the “research” phase. You start with Google Maps, click into profiles, open five tabs per business, and still end up missing the one detail that would make your opener feel human. Then there’s email discovery. Sometimes it’s on the site, sometimes it’s not, and you only learn that after you’ve already sunk time into the lead. And even when you do find an email, writing a unique icebreaker for every company becomes a mental tax that slows you down fast. Honestly, the work isn’t hard. It’s just endless.
The friction compounds. Here’s where it usually breaks down.
- You spend about 10 minutes per lead just collecting basics you already “found” on Maps.
- Email addresses are inconsistent, so half your “finished” leads can’t actually be contacted.
- Personalization happens last, when you’re tired, which means your openers get generic.
- Your list lives in scattered notes until someone finally copies it into a spreadsheet.
The Solution: Google Maps → Sheet rows with summaries and icebreakers
This n8n workflow starts with a simple form where you type a search keyword like “Dentist in New York.” It uses Dumpling AI’s Google Maps API to pull back matching local businesses, then splits the results into individual items so each business can be processed cleanly. Next, it visits each company’s website through Dumpling AI extraction to pull a short site summary and an email address when available. That summary, plus the business details, gets sent to GPT-4 (through the OpenAI node) to generate a short, warm icebreaker that sounds like you actually looked them up. Finally, it filters out entries with missing emails and logs the usable leads into Google Sheets. If you want, it can also push those leads into Instantly.ai so your outreach can start right away.
The workflow begins with your keyword input. Then it alternates between collecting business data in batches and enriching each business with a summary and icebreaker. The final output is a clean spreadsheet row (and optionally an Instantly lead) that’s ready for sending.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you want 40 local leads for a niche campaign. Manually, you might spend about 10 minutes per business jumping between Google Maps, the website, and a spreadsheet, which is roughly 6–7 hours before you even write a single opener. With this workflow, you enter the keyword in the form (about 2 minutes), then let it process businesses in small batches (the default batch size is 2, so it’s steady and safer for rate limits). By the time you come back, you have a Google Sheet with emails, summaries, and a ready-to-paste icebreaker for each valid lead.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Dumpling AI for Google Maps search and site extraction
- Google Sheets to store leads, summaries, and icebreakers
- OpenAI API key (get it from the OpenAI API dashboard)
Skill level: Beginner. You’ll connect accounts, paste API keys, and edit a prompt without writing code.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You submit a search keyword. The workflow starts from an n8n form trigger where you type something like “plumbers in Austin” or “wedding photographers in Miami.” Keep it broad enough to return results, but specific enough that the leads match your offer.
Google Maps results get pulled and separated. Dumpling AI searches Google Maps, then n8n splits the response into individual businesses so each one can be enriched and written about on its own.
Each business gets enriched and personalized. The workflow runs through businesses in small batches and calls Dumpling AI again to extract a website summary and an email address (when it can find one). GPT-4 then uses that summary plus the business name and site to draft a short opener you can paste into your email.
Only usable leads go to your tools. If an email address is missing, the workflow filters that lead out. Valid rows land in Google Sheets with the business name, email, site, phone, summary, and icebreaker, and you can optionally send the same lead to Instantly.ai.
You can easily modify the keyword input to come from a spreadsheet instead of a form 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 incoming keyword form that kicks off the business search.
- Add and open Keyword Form Intake.
- Set Form Title to
Keyword. - In Form Fields, keep the field label as
Keywordto match downstream expressions. - Save and copy the test URL to use during the final test run.
Step 2: Connect Dumpling Search and Split Results
This step searches Dumpling Maps and splits results into individual businesses for batching.
- Open Dumpling Maps Business Search and set URL to
https://app.dumplingai.com/api/v1/search-mapswith MethodPOST. - Set JSON Body to
={"query":"{{$json.Keyword}}","page":""}. - Credential Required: Connect your
httpHeaderAuthcredentials in Dumpling Maps Business Search. - In 🧮 Split Out Locations, set Field To Split Out to
places. - In 🔁 Batch Through Businesses, set Batch Size to
2.
🔁 Batch Through Businesses outputs to both 📤 Instantly Add Lead and 🧠 Dumpling Extract Email+Summary in parallel.
Step 3: Set Up AI Extraction and GPT Icebreaker
Extract email and summary from each business website, then draft a personalized icebreaker.
- Open 🧠 Dumpling Extract Email+Summary and set URL to
https://app.dumplingai.com/api/v1/extractwith MethodPOST. - Set JSON Body to
={"url":"{{ $json.website }}","schema":{"email":"string","websiteSummary":"string"}}. - Credential Required: Connect your
httpHeaderAuthcredentials in 🧠 Dumpling Extract Email+Summary. - Open ✍️ GPT-4 Draft Icebreaker and set Model to
gpt-4o. - Keep the prompt structure and ensure the input message uses the expressions
{{ $('🧮 Split Out Locations').item.json.title }},{{ $('🧮 Split Out Locations').item.json.types[1] }},{{ $('🧮 Split Out Locations').item.json.types[0] }}, and{{ $json.results.websiteSummary }}. - Credential Required: Connect your
openAiApicredentials in ✍️ GPT-4 Draft Icebreaker. - In ✅ Validate Email Presence, keep the condition set to
{{ $('🧠 Dumpling Extract Email+Summary').item.json.results.email }}with the exists operator.
Step 4: Configure Output Destinations
Store qualified leads in Google Sheets and send them into Instantly.
- Open 📄 Record to Google Sheets and set Operation to
appendOrUpdate. - Select your spreadsheet in Document and set Sheet to the tab with
gid=0(Sheet1). - Keep the column mappings: Email
{{ $('🧠 Dumpling Extract Email+Summary').item.json.results.email }}, Phone{{ $('🧮 Split Out Locations').item.json.phoneNumber }}, Title{{ $('🧮 Split Out Locations').item.json.title }}, Ice Breaker{{ $json.message.content }}, Website URL{{ $('🧮 Split Out Locations').item.json.website }}, Website Summary{{ $('🧠 Dumpling Extract Email+Summary').item.json.results.websiteSummary }}. - Credential Required: Connect your
googleSheetsOAuth2Apicredentials in 📄 Record to Google Sheets. - Open 📤 Instantly Add Lead and set URL to
https://api.instantly.ai/api/v1/lead/addwith MethodPOST. - Set body parameters: campaign_id to
[YOUR_ID], email to{{ $json.title }}, personalization to{{ $('✍️ GPT-4 Draft Icebreaker').first().json.message.content }}, phone to{{ $('Dumpling Maps Business Search').first().json.places[1].phoneNumber }}, website to{{ $('Dumpling Maps Business Search').first().json.places[1].website }}. - Credential Required: Connect your
httpHeaderAuthcredentials in 📤 Instantly Add Lead.
{{ $json.title }}. If you want to send the extracted email address, replace it with {{ $('🧠 Dumpling Extract Email+Summary').item.json.results.email }}.Step 5: Add Error Handling
The extraction call is configured to continue even if the request fails, so downstream processing won’t stop.
- In 🧠 Dumpling Extract Email+Summary, verify On Error is set to
continueRegularOutput. - Keep ✅ Validate Email Presence in place to filter out items without an extracted email.
Step 6: Test and Activate Your Workflow
Run an end-to-end test to confirm data flows through the full sequence.
- Click Execute Workflow and submit a keyword via the Keyword Form Intake test URL.
- Confirm Dumpling Maps Business Search returns
placesand that 🧮 Split Out Locations outputs individual items. - Verify 🧠 Dumpling Extract Email+Summary returns
emailandwebsiteSummaryand that ✍️ GPT-4 Draft Icebreaker generates a message inmessage.content. - Check 📄 Record to Google Sheets for new rows and confirm 📤 Instantly Add Lead receives the lead payload.
- When everything looks correct, toggle the workflow to Active to run in production.
Common Gotchas
- Dumpling AI credentials can expire or need specific permissions. If things break, check your Dumpling dashboard key status and API limits 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 prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if you already have your API keys.
No. You’ll mostly paste credentials and tweak a couple of fields. The only “technical” part is editing the GPT-4 prompt, and that’s just writing.
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 usage (often just a few dollars for a decent batch) and whatever Dumpling AI charges for Maps and extraction calls.
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.
Yes, and it’s the first thing you should do. Change the region and niche in the Keyword Form Intake, then adjust the GPT-4 Draft Icebreaker prompt to match your voice (shorter, more direct, more formal, whatever fits). If you want to store extra fields, update the Record to Google Sheets mapping so the columns match. You can also swap the Instantly Add Lead HTTP step for HubSpot, Close, or Pipedrive using another HTTP Request node.
Usually it’s a permissions issue on the Google account or the spreadsheet is not shared with the connected user. Reconnect the Google Sheets credential in n8n, then confirm the Sheet ID and tab name still match. If you recently duplicated the spreadsheet, the workflow may still be pointing at the old file.
A lot, as long as your API limits and n8n plan can keep up. On n8n Cloud you’re limited by monthly executions, while self-hosting has no hard execution cap. Practically, batching is your friend here, because Dumpling AI and OpenAI calls can hit rate limits if you try to process hundreds of businesses at once. Most people run it in batches of 20–100 leads per keyword, check quality, then run the next keyword.
Often, yes, because this flow benefits from batching, filters, and multi-step enrichment without paying extra for every branch. n8n also gives you more control over how you pass data into GPT-4 and how you handle “missing email” cases, which is where a lot of outreach automations get messy. Zapier or Make can still work if your process is tiny and you want the simplest UI. But once you’re sourcing, enriching, generating copy, and logging results, n8n is usually the smoother fit. Talk to an automation expert if you want help choosing.
Set this up once, and your “lead research day” turns into a quick keyword entry and a spreadsheet that’s actually ready to send. The workflow handles the repetitive parts so you can focus on targeting, offers, and replies.
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.