HTTPリクエストとJavaScriptを使用したGoogle Mapsメール収集ツール
上級
これはLead Generation分野の自動化ワークフローで、19個のノードを含みます。主にCode, Wait, Limit, Filter, SplitOutなどのノードを使用。 リード生成システム:Google Mapsからメール収集ツールへ、Googleスプレッドシートにエクスポート
前提条件
- •ターゲットAPIの認証情報が必要な場合あり
- •Google Sheets API認証情報
使用ノード (19)
カテゴリー
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "xiabGWCXUOe469Nm",
"meta": {
"instanceId": "d7661a849ead114a9aa6d9ceaf4160465aeb79532a35bde62160c840ffba9fc8"
},
"name": "Google Maps Email Scraper with HTTP Requests & JavaScript",
"tags": [
{
"id": "l8MPK4ZirgwFWMno",
"name": "N8N Course",
"createdAt": "2025-01-23T18:12:52.273Z",
"updatedAt": "2025-01-23T18:12:52.273Z"
}
],
"nodes": [
{
"id": "sticky-note-1",
"type": "n8n-nodes-base.stickyNote",
"position": [
100,
-280
],
"parameters": {
"width": 350,
"height": 180,
"content": "## 🗺️ STEP 1: Google Maps Data Extraction\n\nThis workflow starts by scraping Google Maps for business listings:\n\n**Process:** Uses HTTP requests to search Google Maps with queries like \"Calgary dentists\"\n**Output:** Raw HTML containing business listings and website URLs\n**Key:** No APIs required - direct HTML scraping\n\n**Note:** Replace search URL with your target location and business type"
},
"typeVersion": 1,
"name": ""
},
{
"id": "sticky-note-2",
"type": "n8n-nodes-base.stickyNote",
"position": [
300,
-320
],
"parameters": {
"width": 380,
"height": 200,
"content": "## 🔗 STEP 2: Website URL Processing\n\nExtracts and cleans business website URLs:\n\n1. **Extract URLs:** JavaScript regex finds all website URLs in Google Maps data\n2. **Filter Google URLs:** Removes irrelevant domains (google.com, gstatic, etc.)\n3. **Remove Duplicates:** Eliminates duplicate websites\n4. **Limit:** Controls batch size for testing (adjust for production)\n\n**Result:** Clean list of actual business websites ready for email extraction"
},
"typeVersion": 1,
"name": ""
},
{
"id": "sticky-note-3",
"type": "n8n-nodes-base.stickyNote",
"position": [
700,
-320
],
"parameters": {
"width": 380,
"height": 200,
"content": "## 🔄 STEP 3: Smart Website Scraping\n\nProcesses each website individually to prevent IP blocking:\n\n**Loop Over Items:** Processes websites one by one with built-in delays\n**Scrape Site:** Downloads HTML content from each business website\n**Wait Nodes:** Prevent rate limiting and IP blocking\n**Error Handling:** Continues processing even if some sites fail\n\n**Critical:** The batching and delays are essential for reliable operation at scale"
},
"typeVersion": 1,
"name": ""
},
{
"id": "sticky-note-4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1100,
-340
],
"parameters": {
"width": 400,
"height": 220,
"content": "## 📧 STEP 4: Email Extraction & Export\n\nFinal processing pipeline:\n\n1. **Extract Emails:** JavaScript regex finds all email addresses in website HTML\n2. **Filter Out Empties:** Removes websites with no emails found\n3. **Split Out:** Converts email arrays into individual items\n4. **Remove Duplicates:** Final deduplication across all sources\n5. **Add to Sheet:** Exports clean email list to Google Sheets\n\n**Result:** Organized database of business emails ready for outreach"
},
"typeVersion": 1,
"name": ""
},
{
"id": "4a6f9faa-5b11-41fe-88c9-cc8a262a2de2",
"name": "ワークフローをテストする際",
"type": "n8n-nodes-base.manualTrigger",
"position": [
140,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "47d741e7-a53f-40c7-bf7c-09a446b0d229",
"name": "重複を削除",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
940,
0
],
"parameters": {
"options": {}
},
"typeVersion": 2
},
{
"id": "6cd049c8-425e-45e0-8d45-6a4883c2f496",
"name": "アイテムをループ処理",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1340,
0
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "3c3a3870-034d-4147-936a-4b0f19b7727d",
"name": "待機",
"type": "n8n-nodes-base.wait",
"position": [
1700,
100
],
"webhookId": "19cc6ed4-4fe7-485b-b879-c679e4b3374d",
"parameters": {
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "a377879d-517d-4c90-a3d4-a7a0c190787e",
"name": "制限",
"type": "n8n-nodes-base.limit",
"position": [
1120,
0
],
"parameters": {
"maxItems": 10
},
"typeVersion": 1
},
{
"id": "5f4ae91a-29c7-4fb3-b535-34bc5194b183",
"name": "待機1",
"type": "n8n-nodes-base.wait",
"position": [
1520,
-60
],
"webhookId": "0fe34756-6e43-4603-8891-5747a9a6500a",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "645bf31c-4b3c-4f4c-b90b-610fc2d6007c",
"name": "分割",
"type": "n8n-nodes-base.splitOut",
"position": [
1880,
-60
],
"parameters": {
"options": {},
"fieldToSplitOut": "emails"
},
"typeVersion": 1
},
{
"id": "7e9c227c-2321-429a-a3f3-4c3a77bc6cf3",
"name": "メールを抽出",
"type": "n8n-nodes-base.code",
"onError": "continueRegularOutput",
"position": [
1880,
100
],
"parameters": {
"jsCode": "const input = $input.first().json.data\nconst regex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.(?!jpeg|jpg|png|gif|webp|svg)[a-zA-Z]{2,}/g\nconst emails = input.match(regex)\nreturn {json: {emails:emails}}"
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "fb76c70c-385d-4e7f-93cd-43023690076a",
"name": "URLを抽出",
"type": "n8n-nodes-base.code",
"position": [
540,
0
],
"parameters": {
"jsCode": "const input = $input.first().json.data\nconst regex = /https?:\\/\\/[^\\/\\s\"'>]+/g\nconst websites = input.match(regex)\nreturn websites.map(website => ({json:{website}}))"
},
"typeVersion": 2
},
{
"id": "b10c0ed6-5a94-4272-b65c-bd19bd674fa0",
"name": "Google Mapsをスクレイピング",
"type": "n8n-nodes-base.httpRequest",
"position": [
340,
0
],
"parameters": {
"url": "https://www.google.com/maps/search/calgary+dentists",
"options": {
"response": {
"response": {
"fullResponse": true
}
},
"allowUnauthorizedCerts": true
}
},
"typeVersion": 4.2
},
{
"id": "58a0d85d-f6eb-47d1-ba9c-3af69ddd30fb",
"name": "サイトをスクレイピング",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
1520,
100
],
"parameters": {
"url": "={{ $json.website }}",
"options": {
"redirect": {
"redirect": {
"followRedirects": false
}
}
}
},
"typeVersion": 4.2
},
{
"id": "4618e775-d14d-4355-b3a2-cd6a6bbc70e8",
"name": "空データを除外",
"type": "n8n-nodes-base.filter",
"position": [
1700,
-60
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a6786c58-424a-409a-b87f-8a7592cb7944",
"operator": {
"type": "array",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.emails }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "74513e7e-a7dc-4b19-b23e-01efd82c9d6d",
"name": "Google URLを除外",
"type": "n8n-nodes-base.filter",
"position": [
740,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bf0a5053-9660-457c-9581-964793bb6d7d",
"operator": {
"type": "string",
"operation": "notContains"
},
"leftValue": "={{ $json.website }}",
"rightValue": "schema"
},
{
"id": "9110b9e0-12aa-45cc-bde0-9eda8c10970e",
"operator": {
"type": "string",
"operation": "notContains"
},
"leftValue": "={{ $json.website }}",
"rightValue": "google"
},
{
"id": "fb9b6ed6-96a5-4560-ab10-b8a4b9a61a2b",
"operator": {
"type": "string",
"operation": "notContains"
},
"leftValue": "={{ $json.website }}",
"rightValue": "gg"
},
{
"id": "10500c0b-cdbd-4816-aba3-df60d69845dc",
"operator": {
"type": "string",
"operation": "notContains"
},
"leftValue": "={{ $json.website }}",
"rightValue": "gstatic"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "035fbbe8-7758-4c7b-be8e-c1cba8fc48bc",
"name": "重複を削除 (2)",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
2080,
-60
],
"parameters": {
"options": {}
},
"typeVersion": 2
},
{
"id": "aa3e9285-235d-4fda-ab0e-45134cf825dd",
"name": "シートに追加(または任意の処理)",
"type": "n8n-nodes-base.googleSheets",
"position": [
2280,
-60
],
"parameters": {
"columns": {
"value": {
"emails": "={{ $json.emails }}"
},
"schema": [
{
"id": "emails",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "emails",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"emails"
]
},
"options": {
"useAppend": true
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fcijyZM1oU73i2xUbXYJ4j6RshmVEduOkCJji2SJP68/edit#gid=0",
"cachedResultName": "emails"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1fcijyZM1oU73i2xUbXYJ4j6RshmVEduOkCJji2SJP68",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fcijyZM1oU73i2xUbXYJ4j6RshmVEduOkCJji2SJP68/edit?usp=drivesdk",
"cachedResultName": "Scrape WITHOUT Paying for APIs"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "EOibXIc4U8wcXyRR",
"name": "YouTube"
}
},
"typeVersion": 4.5
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "9e487a0d-a606-4859-a6e2-b70372b61388",
"connections": {
"3c3a3870-034d-4147-936a-4b0f19b7727d": {
"main": [
[
{
"node": "7e9c227c-2321-429a-a3f3-4c3a77bc6cf3",
"type": "main",
"index": 0
}
]
]
},
"a377879d-517d-4c90-a3d4-a7a0c190787e": {
"main": [
[
{
"node": "6cd049c8-425e-45e0-8d45-6a4883c2f496",
"type": "main",
"index": 0
}
]
]
},
"5f4ae91a-29c7-4fb3-b535-34bc5194b183": {
"main": [
[
{
"node": "4618e775-d14d-4355-b3a2-cd6a6bbc70e8",
"type": "main",
"index": 0
}
]
]
},
"645bf31c-4b3c-4f4c-b90b-610fc2d6007c": {
"main": [
[
{
"node": "035fbbe8-7758-4c7b-be8e-c1cba8fc48bc",
"type": "main",
"index": 0
}
]
]
},
"58a0d85d-f6eb-47d1-ba9c-3af69ddd30fb": {
"main": [
[
{
"node": "3c3a3870-034d-4147-936a-4b0f19b7727d",
"type": "main",
"index": 0
}
]
]
},
"fb76c70c-385d-4e7f-93cd-43023690076a": {
"main": [
[
{
"node": "74513e7e-a7dc-4b19-b23e-01efd82c9d6d",
"type": "main",
"index": 0
}
]
]
},
"7e9c227c-2321-429a-a3f3-4c3a77bc6cf3": {
"main": [
[
{
"node": "6cd049c8-425e-45e0-8d45-6a4883c2f496",
"type": "main",
"index": 0
}
]
]
},
"6cd049c8-425e-45e0-8d45-6a4883c2f496": {
"main": [
[
{
"node": "5f4ae91a-29c7-4fb3-b535-34bc5194b183",
"type": "main",
"index": 0
}
],
[
{
"node": "58a0d85d-f6eb-47d1-ba9c-3af69ddd30fb",
"type": "main",
"index": 0
}
]
]
},
"47d741e7-a53f-40c7-bf7c-09a446b0d229": {
"main": [
[
{
"node": "a377879d-517d-4c90-a3d4-a7a0c190787e",
"type": "main",
"index": 0
}
]
]
},
"74513e7e-a7dc-4b19-b23e-01efd82c9d6d": {
"main": [
[
{
"node": "47d741e7-a53f-40c7-bf7c-09a446b0d229",
"type": "main",
"index": 0
}
]
]
},
"4618e775-d14d-4355-b3a2-cd6a6bbc70e8": {
"main": [
[
{
"node": "645bf31c-4b3c-4f4c-b90b-610fc2d6007c",
"type": "main",
"index": 0
}
]
]
},
"b10c0ed6-5a94-4272-b65c-bd19bd674fa0": {
"main": [
[
{
"node": "fb76c70c-385d-4e7f-93cd-43023690076a",
"type": "main",
"index": 0
}
]
]
},
"035fbbe8-7758-4c7b-be8e-c1cba8fc48bc": {
"main": [
[
{
"node": "aa3e9285-235d-4fda-ab0e-45134cf825dd",
"type": "main",
"index": 0
}
]
]
},
"4a6f9faa-5b11-41fe-88c9-cc8a262a2de2": {
"main": [
[
{
"node": "b10c0ed6-5a94-4272-b65c-bd19bd674fa0",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - リード獲得
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Googleマップリストから商業メールアドレスを抽出してリード generation
Googleマップ一覧から商業メールアドレスを抽出してリード生成
Code
Wait
Limit
+
Code
Wait
Limit
20 ノードJose Castillo
リード獲得
潜在顧客開掘とメールワーキングフロー
Google Maps、SendGrid、AIを使用してB2Bリード獲得とメールマーケティングを自動化
If
Set
Code
+
If
Set
Code
141 ノードEzema Kingsley Chibuzo
リード獲得
私のワークフロー
Apify、GPT-4o、Facebook 広告ライブラリを使用して競合広告の研究と画像生成
Set
Wait
Limit
+
Set
Wait
Limit
32 ノードNick Saraev
コンテンツ作成
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
AI生成されたPDFファイルの改訂职场自動化方案提出
Google Mapsを使ってリードを生成する
If
Set
Code
+
If
Set
Code
42 ノードAlex Kim
営業
AIを活用したリードジェネレーションシステム(メールパーソナライズとLinkedIn)
AIを活用したリードジェネレーションシステム:メールパーソナライズとLinkedIn機能を含む
If
Code
Limit
+
If
Code
Limit
51 ノードMatthieu
リード獲得
ワークフロー情報
難易度
上級
ノード数19
カテゴリー1
ノードタイプ11
作成者
Nick Saraev
@nicksaraevHi 👋 I'm Nick. I make money with automation & teach others how they can too. If you have any questions about my templates or about my n8n builds, feel free to ask and I'll happily respond in the comments. Thanks for reading!
外部リンク
n8n.ioで表示 →
このワークフローを共有