Google Maps to Airtable, leads ready for Gmail outreach
Scraping Google Maps leads sounds simple until you’re juggling half-broken exports, missing emails, and a “lead list” that lives in five different spreadsheets. Then comes the worst part. Writing the same outreach email again and again.
This Google Maps outreach automation hits agency owners first, but freelancers doing prospecting and small sales teams feel it too. You get a clean Airtable lead database plus personalized Gmail outreach, without the copy-paste marathon.
Below you’ll see exactly what the workflow does, what you’ll need, and what changes when your lead gen stops being manual work.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Maps to Airtable, leads ready for Gmail outreach
flowchart LR
subgraph sg0["GO Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n1@{ icon: "mdi:play-circle", form: "rounded", label: "GO", pos: "b", h: 48 }
n2["<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/>APIFY SCRAPT GOOGLE MAPS"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "CLEAN DATA MAPPING", 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/airtable.svg' width='40' height='40' /></div><br/>AIRTABLE CREATE RECORD"]
n5@{ icon: "mdi:message-outline", form: "rounded", label: "SEND EMAIL AUTOMATIC", pos: "b", h: 48 }
n1 --> n2
n0 --> n3
n3 --> n4
n4 --> n5
n2 --> n0
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 n1 trigger
class n4 database
class n2 api
classDef customIcon fill:none,stroke:none
class n2,n4 customIcon
The Problem: Google Maps Leads Are Messy and Slow
Google Maps is full of perfect prospects, but getting that data into a usable list is where momentum dies. You scrape or export something, then spend the next hour cleaning columns, fixing weird formatting, and hunting down missing fields like websites or phone numbers. And even when the list looks “done,” it still isn’t actionable, because outreach lives somewhere else. One tab for leads, one tab for email drafts, and a third tab for “who did we already contact?” That mental overhead is real, and frankly it makes consistent prospecting hard to keep up with.
None of these alone is the problem. Together, they are.
- CSV exports often break your structure, so you waste time re-mapping the same fields every run.
- Manual copy-paste outreach is slow, and it’s easy to accidentally email the wrong company name.
- Leads end up scattered across tools, which means you can’t reliably filter, dedupe, or reuse the list later.
- When you try to scale beyond a handful of emails, quality drops fast and replies drop with it.
The Solution: Google Maps → Airtable → Personalized Gmail
This workflow turns Google Maps prospecting into a repeatable system you can run whenever you need fresh leads. It starts by sending a request to Apify (through an HTTP Request node) to scrape a Google Maps search you choose, like “training centers near Amiens” or any local niche you serve. After a short wait so the scraper can finish, n8n cleans and normalizes every lead into consistent fields (company name, email, phone, website, city, ratings, reviews, and Google Maps link). Then it stores each lead as a new record in Airtable, so your list stays filterable and reusable. Finally, Gmail sends a tailored outreach email that automatically inserts the company and local details, so each message feels written for that specific business.
The workflow begins with a manual start (or you can swap it to a webhook or schedule later). Apify pulls the raw Google Maps data, n8n formats it to match your Airtable columns, and Airtable becomes your source of truth. Gmail handles the outreach right after the record is created, so nothing slips through the cracks.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you’re prospecting for one niche and you want to contact 200 businesses from Google Maps. Manually, even “fast” work looks like 2 minutes to capture details per lead plus another minute to draft and send an email, which is about 10 hours total. With this workflow, you paste your Google Maps search URL into the scraper settings, run it, wait about 10 seconds, and the rest happens automatically. You’ll still spend time handling replies, but the list-building and first-touch outreach no longer eat your day.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Apify for scraping Google Maps results.
- Airtable to store and filter your lead database.
- Gmail to send the personalized outreach emails.
- Airtable Personal Access Token (get it from Airtable token creation page).
Skill level: Beginner. You will connect accounts, paste an Apify endpoint URL, and match a few Airtable fields.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You start the run (manually, scheduled, or via webhook). The included workflow uses a Manual Trigger, which is perfect for testing. Many teams switch this to a webhook once they’re happy, or run it weekly on a schedule for fresh leads.
Apify scrapes the Google Maps search you choose. n8n sends a POST request to Apify’s “run actor synchronously and get dataset items” endpoint, using your Google Maps search URL and a max results limit (the example is 200).
The workflow normalizes messy lead data into clean fields. A short wait gives Apify time to finish, then n8n maps raw properties into consistent Airtable-ready columns like Company, Email, Phone Number, Website, LinkedIn, Facebook, City, Category, and a combined “reviews + rating” field.
Airtable stores the lead, and Gmail sends the outreach. Each lead becomes one Airtable record, then Gmail sends a personalized email that can reference company name, city, website, and Google rating details pulled from that record.
You can easily modify the Google Maps search, the Airtable columns, and the email template 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 manually so you can control when the lead scraping and outreach runs.
- Add and open Manual Start.
- Leave default settings as-is (no fields required).
- Confirm the connection from Manual Start to Apify Maps Scrape.
Step 2: Connect Apify Maps Scraping
Configure the HTTP request that launches the Maps scraping job and passes the search parameters.
- Open Apify Maps Scrape and set Method to
POST. - Set URL to your Apify endpoint:
YOUR URL. - Enable Send Body and set Specify Body to
json. - Paste the JSON payload into JSON Body exactly as shown:
{ "area_height": 10, "area_width": 10, "emails_only": true, "gmaps_url": "https://www.google.com/maps/search/centres+de+formation+%C3%A0+proximit%C3%A9+de+Amiens/@49.7566146,2.2528038,9.75z?entry=ttu&g_ep=EgoyMDI1MDgxMy4wIKXMDSoASAFQAw%3D%3D", "max_results": 200, "search_query": "centre de formation" }. - Confirm the connection from Apify Maps Scrape to Pause Timer.
YOUR URL with your live Apify actor endpoint or the request will fail.Step 3: Set Up Timing and Lead Normalization
Delay the workflow if needed, then normalize the scraped data into consistent fields for Airtable and email.
- Open Pause Timer and adjust the wait settings if you want a delay between scraping and processing (defaults are fine if no pause is required).
- Open Normalize Lead Fields and confirm the field mappings using expressions like
{{ $json.name }},{{ $json.email }}, and{{ $json.phone_number }}. - Verify these key assignments in Normalize Lead Fields: Société →
{{ $json.name }}, Mail →{{ $json.email }}, Notes google maps →{{ $json.reviews_number }} avis avec une note de {{ $json.review_score }} / 5, and Lien Google MAP →{{ $json.google_maps_url }}. - Ensure the connection from Pause Timer to Normalize Lead Fields is intact.
Step 4: Configure Airtable Storage and Email Outreach
Store the normalized lead data in Airtable, then send a personalized email using the stored fields.
- Open Create Airtable Entry and set Operation to
create. - Select the Base
GOOGLE MAPS SCRAPTand TableGoogle maps scrapt. - Map fields exactly as shown, for example: Mail →
{{ $json.Mail }}, Société →{{ $json['Société'] }}, and Lien Google Maps →{{ $json['Lien Google MAP '] }}. - Credential Required: Connect your airtableTokenApi credentials in Create Airtable Entry.
- Open Send Personalized Email and set Send To to
{{ $json.fields.Mail }}. - Set Subject to
{{ $json.fields['Société'] }}and keep the HTML in Message (update[YOUR_ID]and[YOUR_NAME]). - Credential Required: Connect your gmailOAuth2 credentials in Send Personalized Email.
Step 5: Test and Activate Your Workflow
Run a manual test to confirm scraping, Airtable entry creation, and email delivery.
- Click Execute Workflow from Manual Start to run a test.
- Verify that Apify Maps Scrape returns lead data and that Normalize Lead Fields outputs the mapped fields.
- Check Airtable to confirm a new record appears in
Google maps scrapt. - Confirm the test email arrives with the personalized company details.
- When satisfied, toggle the workflow to Active for production use.
Common Gotchas
- Airtable credentials can expire or need specific permissions. If things break, check your Airtable token scopes and base access 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 your Airtable base and Apify account are ready.
No. You’ll paste the Apify endpoint, connect Airtable and Gmail, then map a few fields.
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 Apify usage and email sending limits on your Gmail account.
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 you should. Change the Google Maps search URL and query in the Apify scrape request, then edit the “Send Personalized Email” Gmail node to match your offer and tone. Common tweaks include only emailing leads with a website, inserting the review count/rating into the subject line, and sending to a shared inbox instead of a personal Gmail.
Usually it’s the Airtable Personal Access Token not having access to the right base, or the token expired. Confirm the base is included in the token permissions, then reselect the base and table inside the Airtable node so IDs refresh. Also double-check your field names match exactly (for example, “Phone Number” vs “Phone”).
In the example configuration, the scraper is set to pull up to 200 results per run, and n8n will process those leads one by one as it creates Airtable records and sends Gmail messages.
Often, yes, because this is not just “send a row to an app.” You’re calling an external scraper over HTTP, waiting for results, restructuring fields, and then chaining database + outreach in one place, which is where n8n tends to feel simpler and more flexible. Self-hosting can also matter when you’re running a lot of executions and don’t want per-task pricing. Zapier or Make can still be fine if you want a very basic flow and you don’t mind paying more as volume grows. If you’re unsure, Talk to an automation expert and we’ll point you to the cleanest option.
Once this is running, your prospecting stops being a recurring chore and starts being a button you press. The workflow handles the repetitive stuff. You handle the conversations.
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.