This workflow corresponds to n8n.io template #14505 — we link there as the canonical source.
This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "mG4GU5CVnAF2r12m",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Automated Google Maps Business Lead Scraper",
"tags": [],
"nodes": [
{
"id": "58eaee1b-04f4-4b04-9250-59bbb177b72c",
"name": "Remove Duplicates",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
-464,
1504
],
"parameters": {
"compare": "selectedFields",
"options": {},
"fieldsToCompare": "title"
},
"typeVersion": 2
},
{
"id": "ba84f688-8449-4d32-ac1d-d2856ebcc50f",
"name": "Notification message",
"type": "n8n-nodes-base.telegram",
"position": [
128,
1840
],
"parameters": {
"text": "=Map Scrape Successfully\nDate: {{ $today.format('dd-MMM-yyyy') }}\nTotal Collected Lead: {{ $json.total_execution }}\n",
"chatId": "=add_your_telegram_ID",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "04022ca1-a940-43bf-a03b-6e106aa757a9",
"name": "Extract Business Email from Website HTML (GPT-4)",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
928,
1504
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "=You are analyzing the HTML content of a business website to extract the most relevant contact email address.\n\nYour task:\n\nExtract only one email address, ideally belonging to the business owner, manager, or main contact person.\n\nIf multiple emails appear, choose the most authoritative or professional one (e.g., not \u201cinfo@\u201d or \u201csupport@\u201d unless it\u2019s the only option).\n\nIf no valid email is found, return exactly:\nNull\n\nOutput rules:\n\nOutput only the email address (no explanation, no JSON, no punctuation, no quotes).\n\nThe result must be a clean, valid email format (e.g., contact@company.com).\n\nWebsite HTML content:\n{{ $json.data }}"
}
]
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "c170ab39-6613-4a90-9879-8b5dd5c12165",
"name": "AI Company Description Generator",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
48,
1520
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "=You are an AI assistant specialized in generating professional, concise, and natural company summaries from structured data scraped from Google Maps.\n\nYour goal is to transform the provided company information into a fluent, human-like paragraph suitable for business directories or lead databases.\n\nFollow these principles:\n\nMaintain a professional and informative tone.\n\nWrite in one coherent paragraph (no lists or bullet points).\n\nSmoothly omit any fields that are missing without mentioning it.\n\nThe final text must sound natural and ready for direct publication.\n\nOutput only the final summary paragraph \u2014 no explanations, notes, or JSON."
},
{
"content": "=Generate a clear and concise summary of the following company based on its Google Maps data:\n\nCompany Name: {{ $json.title }}\nCategory: {{ $json.categoryName }}\nAddress: {{ $json.street }}\nCity: {{ $json.city }}\nCountry: {{ $json.countryCode }}\nPhone: {{ $json.phone }}\nGoogle Maps URL: {{ $json.url }}\n\nWrite a natural paragraph like this example (without quotes):\n\nThe company name is [Name]. It is a [category] located at [address] in [city, country]. You can contact them at [phone]. For more details, visit their Google Maps page: [URL].\n\nEnsure the output flows naturally and excludes any missing information.\n\n"
},
{
"content": "Output the result in the JSON format companySummary"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "1ffe127a-a6cf-4c68-bdd3-133b0225a628",
"name": "Get list of actors",
"type": "n8n-nodes-apify.apify",
"position": [
-800,
1136
],
"parameters": {
"my": false,
"resource": "Actors",
"operation": "Get list of actors",
"requestOptions": {}
},
"credentials": {
"apifyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "15ef4f47-a454-4b2b-8bd0-739dca478128",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-640,
1136
],
"parameters": {
"options": {},
"fieldToSplitOut": "data.items"
},
"typeVersion": 1
},
{
"id": "defd0f3d-a1b6-4a05-9003-5afc56f782b4",
"name": "Get list of tasks",
"type": "n8n-nodes-apify.apify",
"position": [
0,
1136
],
"parameters": {
"resource": "Actor tasks",
"operation": "Get list of tasks",
"requestOptions": {}
},
"credentials": {
"apifyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "368b9e2f-9345-4c9c-a5dd-b2cb0d811313",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
160,
1136
],
"parameters": {
"options": {},
"fieldToSplitOut": "data.items"
},
"typeVersion": 1
},
{
"id": "69c003e0-8acb-4bb7-96a2-71cc884d777e",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
1072
],
"parameters": {
"width": 752,
"height": 288,
"content": "# Get the Specific Scraper Task Group"
},
"typeVersion": 1
},
{
"id": "35051a6a-8c79-45d6-b33a-0ca9a4105dee",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1056,
1072
],
"parameters": {
"width": 992,
"height": 288,
"content": "# Trigger/start and Initial Data Processing Group"
},
"typeVersion": 1
},
{
"id": "71d91b70-3933-4be0-9bff-ec04377b34d5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1056,
1440
],
"parameters": {
"width": 912,
"height": 288,
"content": "# Run the Specific Scraper Task Group"
},
"typeVersion": 1
},
{
"id": "242a960b-868b-4305-ac05-0711d91a70d2",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
1408
],
"parameters": {
"width": 512,
"height": 320,
"content": "## Create Description for Company Information base on Task group data & update in sheet"
},
"typeVersion": 1
},
{
"id": "0f6c06c1-ec37-4fd8-ab22-a19850976ee5",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
528,
1440
],
"parameters": {
"width": 992,
"height": 288,
"content": "# Extract Business Emails from Websites and Save to Sheet"
},
"typeVersion": 1
},
{
"id": "9e1aadf6-397c-47a6-a8b4-c6e252d1ce02",
"name": "Rapiwa",
"type": "n8n-nodes-rapiwa.rapiwa",
"position": [
544,
1840
],
"parameters": {
"number": "your_whatsapp_number",
"message": "=Map Scrape Successfully\nDate: {{ $today.format('dd-MMM-yyyy') }}\nTotal Collected Lead: {{ $json.total_execution }}\n"
},
"credentials": {
"rapiwaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "00066e9b-aa86-4ba2-b326-e56aadd20dab",
"name": "Create message",
"type": "n8n-nodes-base.microsoftTeams",
"position": [
336,
1840
],
"parameters": {
"teamId": {
"__rl": true,
"mode": "id",
"value": "team_ID"
},
"message": "=Map Scrape Successfully\nDate: {{ $today.format('dd-MMM-yyyy') }}\nTotal Collected Lead: {{ $json.total_execution }}\n",
"options": {},
"resource": "channelMessage",
"channelId": {
"__rl": true,
"mode": "id",
"value": "channel_ID"
}
},
"credentials": {
"microsoftTeamsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "85d80d83-cf65-42fe-9be4-2ec713fd83e7",
"name": "Send a message",
"type": "n8n-nodes-base.slack",
"position": [
736,
1840
],
"parameters": {
"text": "=Map Scrape Successfully\nDate: {{ $today.format('dd-MMM-yyyy') }}\nTotal Collected Lead: {{ $json.total_execution }}\n",
"user": {
"__rl": true,
"mode": "username",
"value": "user_name"
},
"select": "user",
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "b904d2a7-683a-4d80-9d9c-92c448b84f4a",
"name": "Code (Count Toral Incoming Data)",
"type": "n8n-nodes-base.code",
"position": [
-96,
1840
],
"parameters": {
"jsCode": "const total = $input.all().length;\n\nreturn [\n {\n json: {\n total_execution: total\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "bcdd84c7-847b-4c0d-9ff0-ed0047d49b3b",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
1072
],
"parameters": {
"width": 448,
"height": 944,
"content": "\n## Overview\nThis workflow automates the process of scraping Google Maps data for businesses and generating lead generation emails. It uses the Apify \"Google Maps Scraper\" actor to collect business information (name, address, phone, website) based on a search query and location, then formats this data into a structured email template and sends it via Telegram for review or manual sending.\n\n## Requirements\n* **Apify Account**: An active Apify account with access to the \"Google Maps Scraper\" actor.\n* **Apify API Token**: Your secret API token from Apify to authenticate and run tasks.\n* **Telegram Bot**: A Telegram bot created using BotFather, providing a Bot Token and Chat ID to receive messages.\n* **n8n Workflow**: This workflow is built and executed within the n8n automation platform.\n\n## Customization\n* **Search Parameters**: Modify the \"searchString\" and \"locationString\" in the \"HTTP Request1\" node to scrape different types of businesses or in different geographic areas.\n* **Scraping Depth**: Adjust the `maxCrawXxXXXacesPerSearch` parameter in the Apify task input to control how many results you want to collect.\n* **Data Fields**: The workflow can be extended to extract and use more data points from the scraper, such as phone numbers, ratings, or addresses, to enrich the email content.\n* **Email Template**: Customize the prompt in the \"AI Response\" node to change the tone, style, or content of the generated lead generation email.\n* **Notification Channel**: Instead of Telegram, you can configure the workflow to send the final output to other platforms like Slack, email, or Discord by replacing the \"Telegram\" node.\n\n## Useful Links\n* **Apify Platform**: [Website](https://apify.com/)\n* **Google Maps Scraper Actor**: [Actor Page](https://apify.com/compass/crawler-google-places)\n* **Telegram Bot API**: [Documentation](https://core.telegram.org/bots/api)\n* **n8n Telegram Node**: [Documentation](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/) "
},
"typeVersion": 1
},
{
"id": "32b9c0bd-a114-4ba0-9e40-d737338da8ef",
"name": "If (Check specific actor)",
"type": "n8n-nodes-base.if",
"position": [
-208,
1152
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c375f509-e13b-46cc-97d1-9be0465f2b96",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.title }}",
"rightValue": "add_your_title/actore_name"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "5bc88541-cbbd-415c-a40d-8e5b2d501e62",
"name": "If (Check specific task)",
"type": "n8n-nodes-base.if",
"position": [
544,
1152
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8ae6ea9d-0b09-4578-8d5d-8bc87ee57003",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.id }}",
"rightValue": "add_you_task_ID"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "1b3085dd-d7a6-4930-9e42-fa8dab66cf90",
"name": "Loop Over Items (actor)",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-416,
1136
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "e03e6a29-c130-42f3-80eb-edf0ed74969f",
"name": "Loop Over Items (task)",
"type": "n8n-nodes-base.splitInBatches",
"position": [
336,
1136
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "1f7d2649-4ba5-4568-9687-cc7ef7bd4d8c",
"name": "Loop Over Items (lead)",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-288,
1504
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "9d7f2718-3ccc-4b73-ad9c-b1b6a76e18e8",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
1776
],
"parameters": {
"width": 992,
"height": 224,
"content": "# Notifying the Results Group"
},
"typeVersion": 1
},
{
"id": "9c8fa00d-1c38-4f62-bf5e-9ccc75afa4a2",
"name": "Start by clicking",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1024,
1136
],
"parameters": {},
"typeVersion": 1
},
{
"id": "22628c2d-f14c-4336-8ea2-fcc151c4a858",
"name": "HTTP (Run Scraper Task)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-992,
1504
],
"parameters": {
"url": "=https://api.apify.com/v2/actor-tasks/{{ $json.id }}/runs",
"method": "POST",
"options": {
"redirect": {
"redirect": {}
}
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer YOUR_TOKEN_HERE"
}
]
}
},
"typeVersion": 4.3
},
{
"id": "536c9cf2-ac5d-4d8d-ad32-f7ed98147552",
"name": "HTTP (Get Specific Task Result)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-640,
1504
],
"parameters": {
"url": "=https://api.apify.com/v2/datasets/{{ $json.data.defaultDatasetId }}/items?format=json&view=overview&clean=true",
"options": {}
},
"typeVersion": 4.3
},
{
"id": "26aabe6d-e4b4-45c4-aad6-987eee83b4ca",
"name": "Https (Get Raw HTML Content from Business Website)",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
752,
1520
],
"parameters": {
"url": "={{ $json['Site internet'] }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "f3fbf7f8-2ed9-4f35-804a-52418a494f76",
"name": "Get Website URLs",
"type": "n8n-nodes-base.set",
"position": [
560,
1520
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ccc11066-fad4-4931-acf6-6c45e5e7b117",
"name": "Site internet",
"type": "string",
"value": "={{ $('Loop Over Items (lead)').first().json.website }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "dfb9f0a7-87cc-46ac-8849-bf3c30f9ae1e",
"name": "Sheet (Store google maps/lead data)",
"type": "n8n-nodes-base.googleSheets",
"position": [
352,
1520
],
"parameters": {
"columns": {
"value": {
"URL": "={{ $('Loop Over Items (lead)').item.json.url }}",
"CITY": "={{ $('Loop Over Items (lead)').item.json.city }}",
"RANK": "={{ $('Loop Over Items (lead)').item.json.rank }}",
"EMAIL": "={{ $('Loop Over Items (lead)').item.json.email }}",
"PHONE": "={{ \n(() => {\n let num = $('Loop Over Items (lead)').item.json.phone || $('Loop Over Items (lead)').item.json.phoneUnformatted || '';\n num = num.toString().replace(/[^\\d]/g, '');\n return num.replace(/(\\d{3})(\\d{4})(\\d{4})/, '$1$2$3'); \n})() || 'No phone found'\n}}",
"TITLE": "={{ $('Loop Over Items (lead)').item.json.title }}",
"STREET": "={{ $('Loop Over Items (lead)').item.json.street }}",
"ADDRESS": "={{ ('Loop Over Items').item.json.address }}",
"WEBSITE": "={{ $('Loop Over Items (lead)').item.json.website }}",
"IMAGE URL": "={{ $('Loop Over Items (lead)').item.json.imageUrl }}",
"CATEGORIES": "={{ $('Loop Over Items (lead)').item.json.categories }}",
"POSTAL CODE": "={{ $('Loop Over Items (lead)').item.json.postalCode }}",
"TOTAL SCORE": "={{ $('Loop Over Items (lead)').item.json.totalScore }}",
"COUNTRY CODE": "={{ $('Loop Over Items (lead)').item.json.countryCode }}",
"TOTAL REVIEW": "={{ $('Loop Over Items (lead)').item.json.reviewsCount }}",
"CATEGORY NAME": "={{ $('Loop Over Items (lead)').item.json.categoryName }}",
"IS ADVERTISEMENT": "={{ $('Loop Over Items (lead)').item.json.isAdvertisement }}",
"PHONE UNFORMATTED": "={{ $('Loop Over Items (lead)').item.json.phonesUncertain || $('Loop Over Items (lead)').item.json.phoneUnformatted || 'No phone found' }}",
"COMPANY SUMMARY IN": "={{ $json.message.content }}"
},
"schema": [
{
"id": "TITLE",
"type": "string",
"display": true,
"required": false,
"displayName": "TITLE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORY NAME",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORY NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ADDRESS",
"type": "string",
"display": true,
"required": false,
"displayName": "ADDRESS",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "STREET",
"type": "string",
"display": true,
"required": false,
"displayName": "STREET",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CITY",
"type": "string",
"display": true,
"required": false,
"displayName": "CITY",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "POSTAL CODE",
"type": "string",
"display": true,
"required": false,
"displayName": "POSTAL CODE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "COUNTRY CODE",
"type": "string",
"display": true,
"required": false,
"displayName": "COUNTRY CODE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHONE",
"type": "string",
"display": true,
"required": false,
"displayName": "PHONE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHONE UNFORMATTED",
"type": "string",
"display": true,
"required": false,
"displayName": "PHONE UNFORMATTED",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "WEBSITE",
"type": "string",
"display": true,
"required": false,
"displayName": "WEBSITE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TOTAL SCORE",
"type": "string",
"display": true,
"required": false,
"displayName": "TOTAL SCORE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TOTAL REVIEW",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TOTAL REVIEW",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORIES",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORIES",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL",
"type": "string",
"display": true,
"required": false,
"displayName": "URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "RANK",
"type": "string",
"display": true,
"required": false,
"displayName": "RANK",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IS ADVERTISEMENT",
"type": "string",
"display": true,
"required": false,
"displayName": "IS ADVERTISEMENT",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE URL",
"type": "string",
"display": true,
"required": false,
"displayName": "IMAGE URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "COMPANY SUMMARY IN",
"type": "string",
"display": true,
"required": false,
"displayName": "COMPANY SUMMARY IN",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K-i-GXjv3J1k-t_JC9LA0_gGHT7F1ONLUsTpwcqyIt0/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1K-i-GXjv3J1k-t_JC9LA0_gGHT7F1ONLUsTpwcqyIt0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K-i-GXjv3J1k-t_JC9LA0_gGHT7F1ONLUsTpwcqyIt0/edit?usp=drivesdk",
"cachedResultName": "Scrape Google Maps Business Leads"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "34e2c7ac-d29e-41cc-896a-c05e3a3a6ad6",
"name": "Sheet (Update Email form website)",
"type": "n8n-nodes-base.googleSheets",
"position": [
1216,
1504
],
"parameters": {
"columns": {
"value": {
"EMAIL": "={{ $json.message.content }}",
"TITLE": "={{ $('Loop Over Items (lead)').item.json.title }}"
},
"schema": [
{
"id": "TITLE",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TITLE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORY NAME",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORY NAME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ADDRESS",
"type": "string",
"display": true,
"required": false,
"displayName": "ADDRESS",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "STREET",
"type": "string",
"display": true,
"required": false,
"displayName": "STREET",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CITY",
"type": "string",
"display": true,
"required": false,
"displayName": "CITY",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "POSTAL CODE",
"type": "string",
"display": true,
"required": false,
"displayName": "POSTAL CODE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "COUNTRY CODE",
"type": "string",
"display": true,
"required": false,
"displayName": "COUNTRY CODE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHONE",
"type": "string",
"display": true,
"required": false,
"displayName": "PHONE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PHONE UNFORMATTED",
"type": "string",
"display": true,
"required": false,
"displayName": "PHONE UNFORMATTED",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "WEBSITE",
"type": "string",
"display": true,
"required": false,
"displayName": "WEBSITE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EMAIL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TOTAL SCORE",
"type": "string",
"display": true,
"required": false,
"displayName": "TOTAL SCORE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TOTAL REVIEW",
"type": "string",
"display": true,
"required": false,
"displayName": "TOTAL REVIEW",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORIES",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORIES",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL",
"type": "string",
"display": true,
"required": false,
"displayName": "URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "RANK",
"type": "string",
"display": true,
"required": false,
"displayName": "RANK",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IS ADVERTISEMENT",
"type": "string",
"display": true,
"required": false,
"displayName": "IS ADVERTISEMENT",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IMAGE URL",
"type": "string",
"display": true,
"required": false,
"displayName": "IMAGE URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "COMPANY SUMMARY IN",
"type": "string",
"display": true,
"required": false,
"displayName": "COMPANY SUMMARY IN",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"TITLE"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K-i-GXjv3J1k-t_JC9LA0_gGHT7F1ONLUsTpwcqyIt0/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1K-i-GXjv3J1k-t_JC9LA0_gGHT7F1ONLUsTpwcqyIt0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K-i-GXjv3J1k-t_JC9LA0_gGHT7F1ONLUsTpwcqyIt0/edit?usp=drivesdk",
"cachedResultName": "Scrape Google Maps Business Leads"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "f035fc09-136c-4bed-babe-b87daf2e93d9",
"name": "Wait 5s",
"type": "n8n-nodes-base.wait",
"position": [
1376,
1504
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "88171669-e5e1-4863-a411-efbb96309215",
"name": "Wait 20s for run successfully and get data",
"type": "n8n-nodes-base.wait",
"position": [
-816,
1504
],
"parameters": {
"amount": 20
},
"typeVersion": 1.1
}
],
"active": false,
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "b5d89bc9-1eac-4dd1-810a-514dfa86e4ce",
"connections": {
"Wait 5s": {
"main": [
[
{
"node": "Loop Over Items (lead)",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Loop Over Items (actor)",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "Loop Over Items (task)",
"type": "main",
"index": 0
}
]
]
},
"Get Website URLs": {
"main": [
[
{
"node": "Https (Get Raw HTML Content from Business Website)",
"type": "main",
"index": 0
}
]
]
},
"Get list of tasks": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"Remove Duplicates": {
"main": [
[
{
"node": "Loop Over Items (lead)",
"type": "main",
"index": 0
}
]
]
},
"Start by clicking": {
"main": [
[
{
"node": "Get list of actors",
"type": "main",
"index": 0
}
]
]
},
"Get list of actors": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items (lead)": {
"main": [
[
{
"node": "Code (Count Toral Incoming Data)",
"type": "main",
"index": 0
}
],
[
{
"node": "AI Company Description Generator",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items (task)": {
"main": [
[],
[
{
"node": "If (Check specific task)",
"type": "main",
"index": 0
}
]
]
},
"HTTP (Run Scraper Task)": {
"main": [
[
{
"node": "Wait 20s for run successfully and get data",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items (actor)": {
"main": [
[],
[
{
"node": "If (Check specific actor)",
"type": "main",
"index": 0
}
]
]
},
"If (Check specific task)": {
"main": [
[
{
"node": "HTTP (Run Scraper Task)",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Items (task)",
"type": "main",
"index": 0
}
]
]
},
"If (Check specific actor)": {
"main": [
[
{
"node": "Get list of tasks",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Items (actor)",
"type": "main",
"index": 0
}
]
]
},
"HTTP (Get Specific Task Result)": {
"main": [
[
{
"node": "Remove Duplicates",
"type": "main",
"index": 0
}
]
]
},
"AI Company Description Generator": {
"main": [
[
{
"node": "Sheet (Store google maps/lead data)",
"type": "main",
"index": 0
}
]
]
},
"Code (Count Toral Incoming Data)": {
"main": [
[
{
"node": "Notification message",
"type": "main",
"index": 0
},
{
"node": "Rapiwa",
"type": "main",
"index": 0
},
{
"node": "Create message",
"type": "main",
"index": 0
},
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Sheet (Update Email form website)": {
"main": [
[
{
"node": "Wait 5s",
"type": "main",
"index": 0
}
]
]
},
"Sheet (Store google maps/lead data)": {
"main": [
[
{
"node": "Get Website URLs",
"type": "main",
"index": 0
}
]
]
},
"Wait 20s for run successfully and get data": {
"main": [
[
{
"node": "HTTP (Get Specific Task Result)",
"type": "main",
"index": 0
}
]
]
},
"Extract Business Email from Website HTML (GPT-4)": {
"main": [
[
{
"node": "Sheet (Update Email form website)",
"type": "main",
"index": 0
}
]
]
},
"Https (Get Raw HTML Content from Business Website)": {
"main": [
[
{
"node": "Extract Business Email from Website HTML (GPT-4)",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Items (lead)",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
apifyApigoogleSheetsOAuth2ApimicrosoftTeamsOAuth2ApiopenAiApirapiwaApislackOAuth2ApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is designed for business analysts, market researchers, lead generation specialists, and sales teams who need to gather detailed business intelligence from Google Maps. It's particularly valuable for anyone conducting competitor analysis, building prospect lists, or…
Source: https://n8n.io/workflows/14505/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Auto-create and publish AI social videos with Telegram, GPT-4 and Blotato. Uses httpRequest, stickyNote, telegramTrigger, telegram. Event-driven trigger; 42 nodes.
Splitout Code. Uses googleSheetsTrigger, httpRequest, splitInBatches, googleSheets. Event-driven trigger; 35 nodes.
This workflow automates the process of enriching company data by scraping employee emails and positions from company websites. It processes a list of URLs from a Google Sheet, handles anti-bot measure
This advanced n8n workflow is designed for SEO specialists, digital agency owners, webmasters, and marketing managers who need a comprehensive, automated solution to track and improve their website's
This n8n workflow is designed for SEO managers, content creators, and blog administrators who want to automate their blog publishing pipeline. The workflow creates an end-to-end AI-powered system that