Looking for a way to collect business leads and emails automatically from Google Maps? Whether you’re a freelancer, marketer, or part of a sales team β this free automation using n8n will help you generate quality leads without writing a single line of code.
π What You’ll Learn
- How to use a keyword and location to scrape business listings from Google Maps
- How to automatically extract emails and websites
- How to save leads into Google Sheets or Airtable
- All using a free, open-source automation platform β n8n
π§ Tools Used
- n8n (Free & open-source automation tool)
- Google Sheets or Airtable to store leads
π¦ Use Case
Letβs say you enter a keyword like "Gym in Pune"
. This workflow will:
- Search Google Maps for businesses matching that keyword
- Extract name, phone, website, and email (if available)
- Automatically save the data into a Google Sheet or Airtable
Flow

π― Perfect For:
- Freelancers looking for clients
- Digital marketing agencies
- Sales teams & outreach
- Cold emailing campaigns
π₯ Download the Workflow (JSON)
You can import this JSON directly into your n8n instance:
{
"name": "Email Scrap Working Clean",
"nodes": [
{
"parameters": {},
"id": "32eda36f-5bef-40c0-aaac-085760ec3712",
"name": "Remove Duplicate URLs",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
1560,
860
],
"typeVersion": 1.1
},
{
"parameters": {
"url": "=https://www.google.com/maps/search/{{ $json.keyword }} in {{ $json.location }}",
"options": {
"allowUnauthorizedCerts": false
}
},
"id": "ed1a6a61-d6d4-40df-a1ba-15d7a8ccf5f2",
"name": "Search Google Maps with query",
"type": "n8n-nodes-base.httpRequest",
"position": [
900,
860
],
"executeOnce": false,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"parameters": {
"jsCode": "const data = $input.first().json.data\n\nconst regex = /https?:\\/\\/[^\\/]+/g\n\nconst urls = data.match(regex)\n\nreturn urls.map(url => ({json: {url: url}}))"
},
"id": "5cae100f-5ad6-4ab7-901d-af646fb57ade",
"name": "Scrape URLs from results",
"type": "n8n-nodes-base.code",
"position": [
1120,
860
],
"typeVersion": 2
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "041797f2-2fe2-41dc-902a-d34050b9b304",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.url }}",
"rightValue": "=(google|gstatic|ggpht|schema\\.org|example\\.com|sentry-next\\.wixpress\\.com|imli\\.com|sentry\\.wixpress\\.com|ingest\\.sentry\\.io)"
},
{
"id": "eb499a7e-17bc-453c-be08-a47286f726dd",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "",
"rightValue": ""
}
]
},
"options": {}
},
"id": "6ecc7dba-5914-4d83-8d81-79fbe5433940",
"name": "Filter irrelevant URLs",
"type": "n8n-nodes-base.filter",
"position": [
1340,
680
],
"typeVersion": 2.2
},
{
"parameters": {
"url": "={{ $json.url }}",
"options": {}
},
"id": "b5dc599e-e1aa-4d6e-b775-33249f2ed353",
"name": "Request web page for URL",
"type": "n8n-nodes-base.httpRequest",
"position": [
2040,
840
],
"typeVersion": 4.2,
"alwaysOutputData": false,
"onError": "continueRegularOutput"
},
{
"parameters": {
"options": {
"reset": false
}
},
"id": "e36ec79e-a1d4-413d-a369-d2ad226abbeb",
"name": "Loop over URLs",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1800,
860
],
"typeVersion": 3,
"onError": "continueErrorOutput"
},
{
"parameters": {
"options": {}
},
"id": "f2d1db41-a1ce-4065-91bc-ce53b7a11707",
"name": "Loop over pages",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1980,
580
],
"typeVersion": 3,
"alwaysOutputData": false,
"onError": "continueErrorOutput"
},
{
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const data = $json.data\n\nconst emailRegex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.(?!png|jpg|gif|jpeg)[a-zA-Z]{2,}/g\n\nconst emails = data.match(emailRegex)\n\nreturn {json: {emails: emails}}"
},
"id": "2fc45bd1-8031-4b7c-b7d6-762955e36a9e",
"name": "Scrape emails from page",
"type": "n8n-nodes-base.code",
"position": [
2220,
800
],
"typeVersion": 2,
"onError": "continueRegularOutput"
},
{
"parameters": {
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "emails"
}
]
},
"options": {
"mergeLists": true
}
},
"id": "80e7257c-a2db-4f48-ba70-4c0224c8ccd3",
"name": "Aggregate arrays of emails",
"type": "n8n-nodes-base.aggregate",
"position": [
2220,
600
],
"typeVersion": 1
},
{
"parameters": {
"fieldToSplitOut": "emails",
"options": {}
},
"id": "656b29fc-cb42-4698-b604-40de4e2b713f",
"name": "Split out into default data structure",
"type": "n8n-nodes-base.splitOut",
"position": [
2440,
600
],
"typeVersion": 1
},
{
"parameters": {
"compare": "selectedFields",
"fieldsToCompare": "emails",
"options": {}
},
"id": "b5d8f439-d688-4ca1-b56f-38907db06bb6",
"name": "Remove duplicate emails",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
2660,
600
],
"typeVersion": 1.1
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "041797f2-2fe2-41dc-902a-d34050b9b304",
"operator": {
"type": "string",
"operation": "notRegex"
},
"leftValue": "={{ $json.emails }}",
"rightValue": "=(google|gstatic|ggpht|schema\\.org|example\\.com|sentry\\.wixpress\\.com|sentry-next\\.wixpress\\.com|ingest\\.sentry\\.io|sentry\\.io|imli\\.com)"
}
]
},
"options": {}
},
"id": "4cccc5a4-d060-499f-a318-0cb228665ecb",
"name": "Filter irrelevant emails",
"type": "n8n-nodes-base.filter",
"position": [
2880,
600
],
"typeVersion": 2.2
},
{
"parameters": {
"operation": "create",
"base": {
"__rl": true,
"value": "appaaPariNBw",
"mode": "list",
"cachedResultName": "Test Base",
"cachedResultUrl": "https://airtable.com/"
},
"table": {
"__rl": true,
"value": "tbl1oaq6",
"mode": "list",
"cachedResultName": "email_record",
"cachedResultUrl": "https://airtable.com/NSa"
},
"columns": {
"mappingMode": "autoMapInputData",
"value": {},
"matchingColumns": [],
"schema": [
{
"id": "Name",
"displayName": "Name",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "emails",
"displayName": "emails",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Assignee",
"displayName": "Assignee",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Status",
"displayName": "Status",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "options",
"options": [
{
"name": "Todo",
"value": "Todo"
},
{
"name": "In progress",
"value": "In progress"
},
{
"name": "Done",
"value": "Done"
}
],
"readOnly": false,
"removed": false
},
{
"id": "Attachments",
"displayName": "Attachments",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "array",
"readOnly": false,
"removed": false
},
{
"id": "Attachment Summary",
"displayName": "Attachment Summary",
"required": false,
"defaultMatch": false,
"canBeUsedToMatch": true,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.airtable",
"typeVersion": 2.1,
"position": [
3080,
600
],
"id": "8d3118ed-8959-489c-9ca2-aebdc930a076",
"name": "Create a record",
"credentials": {
"airtableTokenApi": {
"id": "Q1K",
"name": "Airtable Personal Access Token account"
}
}
},
{
"parameters": {
"formTitle": "Data",
"formFields": {
"values": [
{
"fieldLabel": "keyword"
},
{
"fieldLabel": "location"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.2,
"position": [
720,
860
],
"id": "50b5d026-5ac0-434d-a73d-37d482c88560",
"name": "On form submission",
"webhookId": "2bd808b6-84ad-46f0-93a8-f7b062d0ef70"
}
],
"pinData": {},
"connections": {
"Loop over URLs": {
"main": [
[
{
"node": "Loop over pages",
"type": "main",
"index": 0
}
],
[
{
"node": "Request web page for URL",
"type": "main",
"index": 0
}
]
]
},
"Loop over pages": {
"main": [
[
{
"node": "Aggregate arrays of emails",
"type": "main",
"index": 0
}
],
[
{
"node": "Scrape emails from page",
"type": "main",
"index": 0
}
]
]
},
"Remove Duplicate URLs": {
"main": [
[
{
"node": "Loop over URLs",
"type": "main",
"index": 0
}
]
]
},
"Filter irrelevant URLs": {
"main": [
[
{
"node": "Remove Duplicate URLs",
"type": "main",
"index": 0
}
]
]
},
"Remove duplicate emails": {
"main": [
[
{
"node": "Filter irrelevant emails",
"type": "main",
"index": 0
}
]
]
},
"Scrape emails from page": {
"main": [
[
{
"node": "Loop over pages",
"type": "main",
"index": 0
}
]
]
},
"Filter irrelevant emails": {
"main": [
[
{
"node": "Create a record",
"type": "main",
"index": 0
}
]
]
},
"Request web page for URL": {
"main": [
[
{
"node": "Loop over URLs",
"type": "main",
"index": 0
}
]
]
},
"Scrape URLs from results": {
"main": [
[
{
"node": "Filter irrelevant URLs",
"type": "main",
"index": 0
}
]
]
},
"Aggregate arrays of emails": {
"main": [
[
{
"node": "Split out into default data structure",
"type": "main",
"index": 0
}
]
]
},
"Search Google Maps with query": {
"main": [
[
{
"node": "Scrape URLs from results",
"type": "main",
"index": 0
}
]
]
},
"Split out into default data structure": {
"main": [
[
{
"node": "Remove duplicate emails",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Search Google Maps with query",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "dad5d505-1c22-431b-b234-e87d6723a480",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "724c09068b73e62790a410ce1296c78229e4fc22b10e27783b93d0f006a9928e"
},
"id": "uO4qSQmgzZ89hWQM",
"tags": []
}
Donβt know how to import JSON into n8n? Just go to your n8n dashboard β click on the top-right menu β Import from File β paste the above JSON. Done!
π Bonus
Want to go one step ahead? You can also integrate this with OpenAI to clean email data or write personalized cold emails β automatically!
πΊ Watch the Video Tutorial
Check out my full step-by-step video on YouTube here: [Watch Now]
π Final Thoughts
n8n is a powerful free tool that can save hours of manual work and boost your productivity. This Google Maps + Email automation can be a game-changer for anyone in sales, outreach, or freelancing. Try it out and let me know what leads you found!
Need help setting it up? Drop a comment or contact me
π Donβt forget to share this post with someone who needs automation in their life!