8
n8n 中文网amn8n.com

使用ZoomInfo、Serper和Oxylabs到Google Sheets自动化公司数据丰富

高级

这是一个Lead Generation领域的自动化工作流,包含 19 个节点。主要使用 If, Code, Html, Wait, HttpRequest 等节点。 通过ZoomInfo、Serper和Oxylabs到Google Sheets自动化公司数据丰富

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "aff7017841e089b12fdff439d182db1ce6e6151977703d9243f6be0543724481",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6e9e0196-34b7-42ef-9cea-0ee2f29126d9",
      "name": "手动触发器",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -864,
        464
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f89efbed-6317-4875-9e70-829a9a4634ba",
      "name": "加载未处理域名",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -640,
        464
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "processed"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 2062802377,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY/edit#gid=2062802377",
          "cachedResultName": "ZoomInfoData"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY/edit?usp=drivesdk",
          "cachedResultName": "Get Addresses"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "Y43YNvASDhLxJg65",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "b38d94e0-1fc5-4f44-8a4d-e2c363f94c44",
      "name": "处理每个域名",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -416,
        464
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "240a748e-f3d7-47cd-b97e-6d1a31c366c1",
      "name": "通过 Serper 搜索 ZoomInfo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -192,
        176
      ],
      "parameters": {
        "url": "https://google.serper.dev/search",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "=where is \"{{ $json.domain }}\" Czech Republic headquarter? site:zoominfo.com"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "3ff4n7dWTTnGg27S",
          "name": "[Serper/Sophia] Header Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "538ae1c4-e301-4ad1-9be8-0ab40b371068",
      "name": "检查是否找到搜索结果",
      "type": "n8n-nodes-base.if",
      "position": [
        32,
        176
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f5f8619e-e07d-4cb7-9369-48a2882e4d35",
              "operator": {
                "type": "array",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.organic }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2d392b3b-0886-49a9-a69e-d0b2f455c613",
      "name": "提取域名和 ZoomInfo URL",
      "type": "n8n-nodes-base.code",
      "position": [
        256,
        80
      ],
      "parameters": {
        "jsCode": "const text = $input.first().json.organic[0].snippet;\nconst regex = /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/[a-zA-Z0-9]\\.[^\\s]{2,})(?<![\\\\.\\\\,])/g;\nconst matches = text.match(regex) || [];\n\nreturn matches.map(url => ({\n  json: {\n    url,\n    link: $input.first().json.organic[0].link\n  }\n})); "
      },
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "dd4bb8af-1d6f-414f-badd-93d6a4dc7202",
      "name": "验证域名是否匹配",
      "type": "n8n-nodes-base.if",
      "position": [
        480,
        80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "58571e85-2aa7-4383-953f-0135c985e27d",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.url }}",
              "rightValue": "={{ $('Process Each Domain').item.json.domain }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "41618147-b735-4a30-83d8-2a8a5f813fc4",
      "name": "抓取 ZoomInfo 页面",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        704,
        80
      ],
      "parameters": {
        "url": "https://realtime.oxylabs.io/v1/queries",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "source",
              "value": "universal"
            },
            {
              "name": "url",
              "value": "={{ $json.link }}"
            }
          ]
        },
        "genericAuthType": "httpBasicAuth"
      },
      "credentials": {
        "httpBasicAuth": {
          "id": "UJNOFcA65c1OotBi",
          "name": "[Naveen] Oxylabs"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bd7c4539-0f42-4b66-adb8-efd64638866e",
      "name": "提取公司数据",
      "type": "n8n-nodes-base.html",
      "position": [
        928,
        80
      ],
      "parameters": {
        "options": {
          "trimValues": true,
          "cleanUpText": true
        },
        "operation": "extractHtmlContent",
        "dataPropertyName": "results[0].content",
        "extractionValues": {
          "values": [
            {
              "key": "company_info",
              "cssSelector": "#ng-state"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "94931e87-9169-48f8-805d-118167195043",
      "name": "解析 JSON 公司信息",
      "type": "n8n-nodes-base.code",
      "onError": "continueRegularOutput",
      "position": [
        1152,
        80
      ],
      "parameters": {
        "jsCode": "\nreturn JSON.parse($input.first().json.company_info).pageData;"
      },
      "typeVersion": 2
    },
    {
      "id": "c5c398e4-7476-4636-913c-8489f0612af3",
      "name": "保存公司详情",
      "type": "n8n-nodes-base.googleSheets",
      "onError": "continueRegularOutput",
      "position": [
        1600,
        248
      ],
      "parameters": {
        "columns": {
          "value": {
            "city": "={{ $json.address.city }}",
            "phone": "={{ $json.about.phone.replace(\"+\", \"'+\") }}",
            "state": "={{ $json.address.state }}",
            "domain": "={{ $('Process Each Domain').item.json.domain }}",
            "address": "={{ $json.address.street }}",
            "company": "={{ $json.fullName }}",
            "country": "={{ $json.address.country }}",
            "revenue": "={{ $json.about.revenue }}",
            "industry": "={{ $json.about.industries.map(item => item.name) }}",
            "postCode": "={{ $json.address.zip }}",
            "employees": "={{ $json.numberOfEmployees }}",
            "processed": "true",
            "companyLinkedinUrl": "={{ $json.overview.socialNetworkUrls[0].socialNetworkUrl }}"
          },
          "schema": [
            {
              "id": "domain",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "address",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "address",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "city",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "city",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "state",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "state",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "postCode",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "postCode",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "phone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "employees",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "employees",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "revenue",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "revenue",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "industry",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "industry",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "companyLinkedinUrl",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "companyLinkedinUrl",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "source_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "source_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "processed",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "processed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "domain"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 2062802377,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY/edit#gid=2062802377",
          "cachedResultName": "ZoomInfoData"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY/edit?usp=drivesdk",
          "cachedResultName": "Get Addresses"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "Y43YNvASDhLxJg65",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6,
      "alwaysOutputData": true
    },
    {
      "id": "4b6515e0-4b48-475a-a4e8-2bacbb4ea754",
      "name": "标记域名为已处理",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        480,
        272
      ],
      "parameters": {
        "columns": {
          "value": {
            "domain": "={{ $('Process Each Domain').item.json.domain }}",
            "processed": "true"
          },
          "schema": [
            {
              "id": "domain",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "address",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "address",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "city",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "city",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "state",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "state",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "postCode",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "postCode",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "phone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "employees",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "employees",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "revenue",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "revenue",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "industry",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "industry",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "companyLinkedinUrl",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "companyLinkedinUrl",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "source_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "source_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "processed",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "processed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "domain"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 2062802377,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY/edit#gid=2062802377",
          "cachedResultName": "ZoomInfoData"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bdK8xskt-qfLlDwdzolM0zFyo9KxZ-HHpTVxcEw3ZMY/edit?usp=drivesdk",
          "cachedResultName": "Get Addresses"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "Y43YNvASDhLxJg65",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "2d0e61ec-65ee-4cee-b8c7-bc2b173f6987",
      "name": "速率限制延迟",
      "type": "n8n-nodes-base.wait",
      "position": [
        1376,
        80
      ],
      "webhookId": "05ac39a5-6d75-4156-8133-2bdbf1f047d6",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "16d10906-533b-4c3a-981b-7cfec0c11814",
      "name": "处理延迟",
      "type": "n8n-nodes-base.wait",
      "position": [
        256,
        272
      ],
      "webhookId": "57b27518-bce8-40c2-94af-42635ac335fa",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "d78a08b4-ca6b-46cd-9e42-fc6ee38c7e7d",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -640
      ],
      "parameters": {
        "width": 960,
        "height": 320,
        "content": "🏢 ZOOMINFO 公司数据抓取器"
      },
      "typeVersion": 1
    },
    {
      "id": "90ca76bc-4281-46a1-a978-62fd84433df3",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1152,
        -240
      ],
      "parameters": {
        "color": 5,
        "width": 912,
        "height": 880,
        "content": "🔧 设置要求"
      },
      "typeVersion": 1
    },
    {
      "id": "8dd2282f-ec88-42ca-9f12-d86202b9adc9",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -224,
        -240
      ],
      "parameters": {
        "color": 4,
        "width": 864,
        "height": 880,
        "content": "🔍 搜索策略"
      },
      "typeVersion": 1
    },
    {
      "id": "6e11fb54-7e54-433f-9cdb-9e94616eede1",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        -240
      ],
      "parameters": {
        "color": 6,
        "width": 624,
        "height": 880,
        "content": "📊 数据提取"
      },
      "typeVersion": 1
    },
    {
      "id": "4a275527-b722-47ea-99df-dde7206d080a",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1296,
        -240
      ],
      "parameters": {
        "color": 3,
        "width": 736,
        "height": 880,
        "content": "⚠️ 错误处理"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Load Unprocessed Domains",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Processing Delay": {
      "main": [
        [
          {
            "node": "Mark Domain as Processed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rate Limit Delay": {
      "main": [
        [
          {
            "node": "Save Company Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Each Domain": {
      "main": [
        [],
        [
          {
            "node": "Search ZoomInfo via Serper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Company Data": {
      "main": [
        [
          {
            "node": "Parse JSON Company Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Company Details": {
      "main": [
        [
          {
            "node": "Process Each Domain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape ZoomInfo Page": {
      "main": [
        [
          {
            "node": "Extract Company Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse JSON Company Info": {
      "main": [
        [
          {
            "node": "Rate Limit Delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Load Unprocessed Domains": {
      "main": [
        [
          {
            "node": "Process Each Domain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark Domain as Processed": {
      "main": [
        [
          {
            "node": "Process Each Domain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Search Results Found": {
      "main": [
        [
          {
            "node": "Extract Domain and ZoomInfo URL",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Processing Delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search ZoomInfo via Serper": {
      "main": [
        [
          {
            "node": "Check Search Results Found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate if Domain Matches": {
      "main": [
        [
          {
            "node": "Scrape ZoomInfo Page",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Process Each Domain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Domain and ZoomInfo URL": {
      "main": [
        [
          {
            "node": "Validate if Domain Matches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 潜在客户开发

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量19
分类1
节点类型9
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Naveen Choudhary

Naveen Choudhary

@n8nstein

I create AI-driven n8n workflows that turn repetitive tasks into smooth, hands-off automations. Want to explore an idea? Book a quick consult: https://cal.com/nickchoudhary/30min

外部链接
在 n8n.io 查看

分享此工作流