使用 BrowserAct 从 Google Maps 到 Google Sheets 的自动化 B2B 潜在客户生成
中级
这是一个Lead Generation领域的自动化工作流,包含 15 个节点。主要使用 Code、Telegram、GoogleSheets、ManualTrigger、BrowserAct 等节点。 自动化B2B潜在客户生成:从Google Maps到Sheets,集成BrowserAct和Telegram提醒
前置要求
- •Telegram Bot Token
- •Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "xD9CDu3GF1TNqfBQ",
"meta": {
"instanceId": "88804d8e264d231c18413147cc92e4245b20ae7b97d774bad847556f645c8192",
"templateCredsSetupCompleted": true
},
"name": "使用 BrowserAct 从 Google Maps 到 Google Sheets 的自动化 B2B 潜在客户生成",
"tags": [],
"nodes": [
{
"id": "cad3e086-dac4-4ca5-80a3-e492c6368940",
"name": "当点击\"执行工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-16,
208
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9c04e503-f939-4c28-89bc-2cc22776cd0d",
"name": "运行工作流任务",
"type": "n8n-nodes-browseract-workflows.browserAct",
"position": [
128,
208
],
"parameters": {
"workflowId": "56755932300135031",
"inputParameters": {
"parameters": [
{
"name": "Location",
"value": "Brooklyn"
},
{
"name": "Bussines_Category",
"value": "Baby Care "
},
{
"name": "Extracted_Data",
"value": "15"
}
]
},
"additionalFields": {}
},
"credentials": {
"browserActApi": {
"id": "AzKMhR2eAlOjzDiJ",
"name": "BrowserAct account"
}
},
"typeVersion": 1
},
{
"id": "2a2affd0-5b77-455e-a9e5-c08ec7d4b726",
"name": "获取工作流任务详情",
"type": "n8n-nodes-browseract-workflows.browserAct",
"position": [
288,
208
],
"parameters": {
"taskId": "={{ $json.id }}",
"operation": "getTask",
"maxWaitTime": 600,
"waitForFinish": true,
"pollingInterval": 30
},
"credentials": {
"browserActApi": {
"id": "AzKMhR2eAlOjzDiJ",
"name": "BrowserAct account"
}
},
"typeVersion": 1
},
{
"id": "f509147d-1705-4a59-b043-0465a776fda9",
"name": "JavaScript 代码",
"type": "n8n-nodes-base.code",
"position": [
528,
208
],
"parameters": {
"jsCode": "// Get the JSON string using the exact path provided by the user.\nconst jsonString = $input.first().json.output.string;\n\nlet parsedData;\n\n// Check if the string exists before attempting to parse\nif (!jsonString) {\n // Return an empty array or throw an error if no string is found\n // Throwing an error is usually better to stop the workflow if data is missing.\n throw new Error(\"Input string is empty or missing at the specified path: $input.first().json.output.string\");\n}\n\ntry {\n // 1. Parse the JSON string into a JavaScript array of objects\n parsedData = JSON.parse(jsonString);\n} catch (error) {\n // Handle JSON parsing errors (e.g., if the string is malformed)\n throw new Error(`Failed to parse JSON string: ${error.message}`);\n}\n\n// 2. Ensure the parsed data is an array\nif (!Array.isArray(parsedData)) {\n throw new Error('Parsed data is not an array. It cannot be split into multiple items.');\n}\n\n// 3. Map the array of objects into the n8n item format { json: object }\n// Each element in this array will be treated as a new item by n8n, achieving the split.\nconst outputItems = parsedData.map(item => ({\n json: item,\n}));\n\n// 4. Return the new array of items\nreturn outputItems;"
},
"typeVersion": 2
},
{
"id": "dfed60e0-2757-4b52-9c0c-7d7e776c47d7",
"name": "在表格中追加或更新行",
"type": "n8n-nodes-base.googleSheets",
"position": [
784,
208
],
"parameters": {
"columns": {
"value": {
"Url": "={{ $json.Url }}",
"Name": "={{ $json.Name }}",
"Phone": "={{ $json.Phone }}",
"Rating": "={{ $json.Rating }}",
"Address": "={{ $json.Address }}",
"Category": "={{ $json.Category}}",
"LastSummary": "={{ $json.LastSummary }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Rating",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Rating",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LastSummary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "LastSummary",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Name"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1084488211,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit#gid=1084488211",
"cachedResultName": "Google Maps Local Lead Finder"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/18sw7io0yJOTDzvcknGmjBBqtK154CLk3k0FoWJZbfI0/edit?usp=drivesdk",
"cachedResultName": "Test For BrowserAct"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wAMAqU43zjVjlpuA",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "d497ae80-0325-4b81-86cf-c7138340471a",
"name": "发送短信",
"type": "n8n-nodes-base.telegram",
"position": [
944,
208
],
"webhookId": "7757ea9c-2858-4c7d-9c9d-ed42690743d0",
"parameters": {
"text": "={{ $('Code in JavaScript').item.json.Name }}\n{{ $('Code in JavaScript').item.json.Address }}\n{{ $('Code in JavaScript').item.json.LastSummary }}\n{{ $('Code in JavaScript').item.json.Rating }}\n{{ $('Code in JavaScript').item.json.Url }}\n{{ $('Code in JavaScript').item.json.Category }}",
"chatId": "@shoaywbs",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "wUJ9mIGYnNi3pR0h",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "f61586d9-57b9-4834-9ad6-9111f66bbb8c",
"name": "便利贴 - 介绍",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
-16
],
"parameters": {
"width": 592,
"height": 450,
"content": "## 试试看!"
},
"typeVersion": 1
},
{
"id": "23ee6098-c6ee-4b34-b0be-7961e1e0e91b",
"name": "便利贴 - 使用方法",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
448
],
"parameters": {
"width": 592,
"height": 192,
"content": "## 使用方法"
},
"typeVersion": 1
},
{
"id": "b378f720-cd97-49ee-ba44-7d0ba5def18c",
"name": "便利贴 - 需要帮助",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
448
],
"parameters": {
"width": 592,
"height": 184,
"content": "### 需要帮助?"
},
"typeVersion": 1
},
{
"id": "1a151165-a2a8-449e-b86a-ba9041276cb8",
"name": "便利贴 - 抓取阶段",
"type": "n8n-nodes-base.stickyNote",
"position": [
96,
-16
],
"parameters": {
"color": 5,
"width": 336,
"height": 184,
"content": "### 🌐 1. 抓取和等待"
},
"typeVersion": 1
},
{
"id": "0b656160-6845-465a-9214-8d42af212d07",
"name": "便利贴 - 处理阶段",
"type": "n8n-nodes-base.stickyNote",
"position": [
448,
-16
],
"parameters": {
"color": 6,
"width": 272,
"height": 180,
"content": "### 🧹 2. 解析和拆分数据"
},
"typeVersion": 1
},
{
"id": "bdf3eaa7-ce2d-4016-a42e-b23d500044a5",
"name": "便利贴 - 输出阶段",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
400
],
"parameters": {
"color": 3,
"width": 384,
"height": 152,
"content": "### 💾 3. 保存和通知"
},
"typeVersion": 1
},
{
"id": "11f15220-b2db-45fe-b267-d430b45152da",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
96,
176
],
"parameters": {
"color": 5,
"width": 336,
"height": 192,
"content": ""
},
"typeVersion": 1
},
{
"id": "e1330d28-8edb-45ae-8609-45d93cc7ad3d",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
448,
176
],
"parameters": {
"color": 6,
"width": 272,
"height": 192,
"content": ""
},
"typeVersion": 1
},
{
"id": "4ac8d392-6e06-4b7a-bef3-1db2db27988c",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
192
],
"parameters": {
"color": 3,
"width": 384,
"height": 192,
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "a8ab25ec-e003-404c-ab7e-f41dc7dec543",
"connections": {
"Code in JavaScript": {
"main": [
[
{
"node": "Append or update row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Run a workflow task": {
"main": [
[
{
"node": "Get details of a workflow task",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
},
"Get details of a workflow task": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Run a workflow task",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
这是一个中级难度的工作流,适用于Lead Generation等场景。适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用BrowserAct将目录抓取自动化到Google Sheets
使用BrowserAct将YP.com目录抓取自动化到Google Sheets
Code
Google Sheets
Manual Trigger
+2
15 节点Madame AI Team | Kai
Lead Generation
使用 BrowserAct 和 Gemini 查找并筛选有资金支持的线索
通过 BrowserAct 和 Gemini 查找并筛选有资金支持的潜在客户
If
Code
Merge
+9
29 节点Madame AI Team | Kai
Lead Generation
GitHub 用户活动与数据抓取器(数据丰富引擎)
使用 BrowserAct 抓取详细 GitHub 个人资料到 Google Sheets
Set
Code
Merge
+7
30 节点Madame AI Team | Kai
Lead Generation
AI 驱动的 GitHub 人才搜寻(按语言和位置)到 Google Sheet
基于 Gemini AI 和 BrowserAct 按语言和位置搜寻 GitHub 顶尖人才至 Google Sheet
Code
Slack
Google Sheets
+6
19 节点Madame AI Team | Kai
Lead Generation
使用 BrowserAct 从 Google Sheets 向多个招聘网站发布职位
使用 Google Sheets 和 BrowserAct 自动化多平台职位发布
If
Code
Slack
+5
20 节点Madame AI Team | Kai
HR
从任何网站抓取并导入产品到 Shopify(含变体和图片)(针对鞋类优化 - NIKE 到 Shopify)
使用 BrowserAct 抓取并导入鞋类产品到 Shopify(含变体和图片)
Set
Code
Merge
+9
25 节点Madame AI Team | Kai
Miscellaneous
工作流信息
难度等级
中级
节点数量15
分类1
节点类型6
作者
Madame AI Team | Kai
@madame-aiI’m a PhD in Physics turned AI enthusiast, passionate about uncovering how AI is transforming content creation, business, and daily life.
外部链接
在 n8n.io 上查看 →
分享此工作流