Cha GPT驱动的破冰生成器
高级
这是一个Lead Generation, AI Summarization领域的自动化工作流,包含 19 个节点。主要使用 If, Set, Code, Html, Limit 等节点。 使用GPT-4和谷歌表格从网站生成个性化冷邮件开场白
前置要求
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (19)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "5jm27UVaH8DXL977",
"meta": {
"instanceId": "81fbc47f2c7361dad100f5803eda7f24983f8844d7b7d1688ed0eec2a021756c"
},
"name": "icebraker Generator powered with Cha GPT",
"tags": [],
"nodes": [
{
"id": "29e0adaa-63f0-4c3e-9f0f-f2b0ed627c9f",
"name": "When clicking ‘Test workflow’",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-304,
64
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e594e245-8166-42a2-ac36-4ab8a142f24a",
"name": "HTML",
"type": "n8n-nodes-base.html",
"position": [
480,
-80
],
"parameters": {
"options": {
"trimValues": true,
"cleanUpText": true
},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "links",
"attribute": "href",
"cssSelector": "a",
"returnArray": true,
"returnValue": "attribute"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ef72e925-a84f-4069-a2d6-96ff01cc3bb8",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
112,
336
],
"parameters": {
"options": {},
"fieldToSplitOut": "links"
},
"typeVersion": 1
},
{
"id": "87ba5626-9f37-44a2-bbd0-ea5fbd802ad0",
"name": "Request web page for URL",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
784,
-32
],
"parameters": {
"url": "={{ $json.links }}",
"options": {}
},
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "7558da57-950a-4612-bea2-3669d6a4f6ad",
"name": "Markdown",
"type": "n8n-nodes-base.markdown",
"position": [
944,
-32
],
"parameters": {
"html": "={{ $json.data ? $json.data : \"<div>empty</div>\" }}",
"options": {}
},
"typeVersion": 1
},
{
"id": "ebb5b419-7279-4a0c-bc85-4f6555e6d0e0",
"name": "Summarize Website Page",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1232,
-160
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "GPT-4.1"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You're a helpful, intelligent website scraping assistant."
},
{
"content": "You're provided a Markdown scrape of a website page. Your task is to provide a two-paragraph abstract of what this page is about.\n\nReturn in this JSON format:\n\n{\"abstract\":\"your abstract goes here\"}\n\nRules:\n- Your extract should be comprehensive—similar level of detail as an abstract to a published paper.\n- Use a straightforward, spartan tone of voice.\n- If it's empty, just say \"no content\"."
},
{
"content": "={{ $json.data }}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "sp1N9oDRVcWik32U",
"name": "rifff"
}
},
"typeVersion": 1.6
},
{
"id": "8aba364b-58a7-4f96-8361-0cbb05cf6b65",
"name": "Limit",
"type": "n8n-nodes-base.limit",
"position": [
416,
336
],
"parameters": {
"maxItems": 3
},
"typeVersion": 1
},
{
"id": "6afb479b-b40d-4d9c-999d-dfb3f99b540f",
"name": "Scrape Home",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
64,
64
],
"parameters": {
"url": "={{ $json['organization_website_url'] }}",
"options": {
"redirect": {
"redirect": {}
},
"allowUnauthorizedCerts": false
}
},
"executeOnce": false,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "169e1261-8eeb-4e3c-bfe6-246d55374559",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
1552,
-160
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "message.content.abstract"
}
]
}
},
"typeVersion": 1
},
{
"id": "aae4a930-5349-4019-a231-5fa3b41b2969",
"name": "Generate Multiline Icebreaker",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1232,
64
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "GPT-4.1"
},
"options": {
"temperature": 0.5
},
"messages": {
"values": [
{
"role": "system",
"content": "You're a helpful, intelligent sales assistant."
},
{
"content": "=We just scraped a series of web pages for a business. Your task is to take their summaries and turn them into catchy, personalized openers for a cold email campaign to imply that the rest of the campaign is personalized.\n\nYou'll return your icebreakers in the following JSON format:\n\n{\"icebreaker\":\"Hey {name}. I noticed your recent work on {thing} and thought it was brilliant. I’m also involved in {otherThing} and wanted to share something with you.\\n\\nI spent some time exploring your site and saw how much emphasis you place on {anotherThing}. A few months ago I built a tool that could make that even easier.\"}\n\nWe’ve been working with web agencies like LeenWeb, GreatNash and Galax media on something simple but highly effective:\n\nA system that finds businesses from local business directories.\nAudits their site (design, SEO, speed, accessibility)\nThen sends them a cold email that feels like it came from a real person\n\nLast 2 months: $70K+ generated through this approach\n\nNo fluff. No hand-holding. You get leads with prewritten emails and audits — ready to send.\n\nTo make a long story short, it's an outreach system that uses AI automation to handle outreach for web agencies. Costs just a few cents to run, very high converting, and I think it's in line with {someImpliedBeliefTheyHave}\"}\n\nIf you're curious, I’d love to show you a short video of it in action, or we can hop on a 10-min call if that’s easier. Just let me know what works for you.\n\nRules:\n- Write in a spartan/laconic tone of voice.\n- Make sure to use the above format when constructing your icebreakers. We wrote it this way on purpose.\n- Shorten the company name wherever possible (say, \"XYZ\" instead of \"XYZ Agency\"). More examples: \"Love AMS\" instead of \"Love AMS Professional Services\", \"Love Mayo\" instead of \"Love Mayo Inc.\", etc.\n- Do the same with locations. \"San Fran\" instead of \"San Francisco\", \"BC\" instead of \"British Columbia\", etc.\n- For your variables, focus on small, non-obvious things to paraphrase. The idea is to make people think we *really* dove deep into their website, so don't use something obvious. Do not say cookie-cutter stuff like \"Love your website!\" or \"Love your take on marketing!\".\n-Do not use hipens and Emojies"
},
{
"content": "=Profile: Aina Rakotoarinaly, CEO founder - Maki Agency / Ti'bouffe, Maki agency, outsourcing/offshoring, Antananarivo, Madagascar\n\nWebsite: \n\nThis webpage presents Maki Agency, a professional digital outsourcing company based in Madagascar that specializes in tailored web development, integration, design, SEO, content creation, community management, and more. The agency offers a range of white-label and dedicated resource solutions, targeting businesses that wish to outsource various digital projects. Maki Agency emphasizes its team's versatile technical expertise across major web technologies, including CSS, HTML, JQuery, WordPress, PHP, WooCommerce, Laravel, and Odoo. The company positions itself as an ideal partner for comprehensive digital support, ensuring that client's digital and branding needs are met through experienced personnel and rigorous project management.\\n\\nThe website details the specific services provided, such as graphic and web design (logos, banners, retouching), web integration (landing pages, newsletters, site layouts), development (showcase sites, e-commerce, intranets, bespoke applications, maintenance), content writing (SEO-optimized texts, articles, product sheets, social media posts), search engine optimization (audits, optimizations, submissions), and social media management. The agency highlights its strengths in quality of work, experience, and discretion, especially in white-label arrangements. Visitors are encouraged to contact Maki Agency for new or existing projects, and convenient contact options (phone, QR codes, social media, chat) are provided for initiating discussions.\n\nThis page presents Maki Agency, a Madagascar-based digital agency specializing in web outsourcing and subcontracting services. The agency emphasizes its experience and dedicated team capable of handling diverse digital tasks such as web development, design, SEO, content writing, integration, community management, and maintenance. Maki Agency offers both white-label and dedicated resource solutions for clients seeking to externalize parts of their workflow to a specialized offshore partner. The descriptions highlight the agency's proficiency in popular web technologies, frameworks, and CMS platforms (such as HTML, CSS, PHP, WordPress, Laravel, WooCommerce, and Odoo), as well as its ability to execute projects ranging from landing pages, e-commerce platforms, and intranets to detailed graphic design and content creation.\\n\\nThe site underscores Maki Agency's core values and competitive advantages, such as meticulous attention to detail, experienced professionals, creativity, discretion, and a client-focused approach. It provides detailed breakdowns of service offerings, ranging from graphic materials (logos, flyers, banners), technical integration, app and website development, staff outsourcing (developers, designers, writers), SEO strategies, community management, and digital content production. Contact details and multiple avenues for communication (phone, WhatsApp, Skype, QR codes) are prominently featured, along with encouragements for clients to reach out for consultations or ongoing projects requiring outsourcing. The agency also highlights its longevity and adaptability in the digital sector, supporting clients across various industries and digital competencies"
},
{
"role": "assistant",
"content": "{\"icebreaker\":\"Hey Aina,\\n\\nLove what you're doing at Maki. Also doing some outsourcing right now, wanted to run something by you.\\n\\nSo I hope you'll forgive me, but I creeped you/Maki quite a bit. I know that discretion is important to you guys (or at least I'm assuming this given the part on your website about white-labelling your services) and I put something together a few months ago that I think could help. To make a long story short, it's an outreach system that uses AI to find people hiring website devs. Then pitches them with templates (actually makes them a white-labelled demo website). Costs just a few cents to run, very high converting, and I think it's in line with Maki's emphasis on scalability.\"}"
},
{
"content": "=Profile: {{ $node[\"Get Search URL\"].json.first_name }} {{ $node[\"Get Search URL\"].json.last_name }} {{ $node[\"Get Search URL\"].json.headline }}\n\nWebsite: {{ $json.abstract.join(\"/n\") }}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "sp1N9oDRVcWik32U",
"name": "rifff"
}
},
"typeVersion": 1.6
},
{
"id": "f8a7c57a-bdc7-4ad7-9147-bac53ae5deec",
"name": "Get Search URL",
"type": "n8n-nodes-base.googleSheets",
"position": [
-96,
64
],
"parameters": {
"options": {
"returnFirstMatch": true
},
"filtersUI": {
"values": [
{
"lookupValue": "=",
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1034888960,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY/edit#gid=1034888960",
"cachedResultName": "Marketing Companies (AUS)(Fully verified)"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY/edit?usp=drivesdk",
"cachedResultName": "Marketing Companies (AUS)(Fully verified)"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "DCXUL4CTk4ontMrn",
"name": "Google Sheets account"
}
},
"executeOnce": false,
"typeVersion": 4.5,
"alwaysOutputData": true
},
{
"id": "3cd8a65f-c415-4e9f-89df-e0c6aa256e86",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
-64,
336
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "40fd7130-c65d-4826-a713-ecca24d23b07",
"name": "links",
"type": "array",
"value": "={{ $json.links }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "dc0acad3-6f5f-4a7e-9c2a-8cfb51dd3968",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
288,
336
],
"parameters": {
"jsCode": "const items = $input.all();\n\n// Get base URL from previous node (make sure it's executed!)\nconst BASE_URL_RAW = $('Get Search URL').first().json.organization_website_url?.trim();\nif (!BASE_URL_RAW) {\n throw new Error(\"Missing organization_website_url from 'Code1' node.\");\n}\n\nconst BASE_URL = BASE_URL_RAW.replace(/\\/$/, \"\"); // remove trailing slash\n\nconst getHostname = (url) => {\n return url\n .replace(/^https?:\\/\\//, \"\")\n .replace(/^www\\./, \"\")\n .split(\"/\")[0];\n};\n\nconst baseHostname = getHostname(BASE_URL);\n\n// Initialize result\nconst seen = new Set();\nconst updatedItems = [\n { json: { links: `${BASE_URL}/` } }\n];\nseen.add(`${BASE_URL}/`);\n\nitems.forEach((item) => {\n const link = item?.json?.links;\n if (typeof link !== \"string\") return;\n\n const cleanLink = link.trim().toLowerCase();\n\n const isAnchor = cleanLink.startsWith(\"#\");\n const isMailOrPhone = cleanLink.startsWith(\"mailto:\") || cleanLink.startsWith(\"tel:\");\n const isEmpty = cleanLink === \"\" || cleanLink === \"#\" || cleanLink === \"#.\";\n const isSocial = [\n \"facebook.com\", \"instagram.com\", \"linkedin.com\", \"twitter.com\",\n \"youtube.com\", \"tiktok.com\", \"pinterest.com\", \"snapchat.com\"\n ].some(domain => cleanLink.includes(domain));\n\n if (isAnchor || isMailOrPhone || isEmpty || isSocial) return;\n\n let fullUrl = null;\n\n if (cleanLink.startsWith(\"http://\") || cleanLink.startsWith(\"https://\")) {\n const linkHostname = getHostname(cleanLink);\n if (linkHostname !== baseHostname) return;\n\n // Extract path manually\n const pathParts = cleanLink.split(linkHostname);\n const path = pathParts[1]?.split(/[?#]/)[0] || \"/\";\n const cleanPath = path.endsWith(\"/\") && path !== \"/\" ? path.slice(0, -1) : path;\n\n fullUrl = `${BASE_URL}${cleanPath}`;\n } else if (cleanLink.startsWith(\"/\")) {\n const cleanPath = cleanLink.endsWith(\"/\") && cleanLink !== \"/\" ? cleanLink.slice(0, -1) : cleanLink;\n fullUrl = `${BASE_URL}${cleanPath}`;\n }\n\n if (fullUrl && !seen.has(fullUrl)) {\n seen.add(fullUrl);\n updatedItems.push({ json: { links: fullUrl } });\n }\n});\n\nreturn updatedItems;\n"
},
"typeVersion": 2
},
{
"id": "b6b2bfc9-0e5c-4495-9145-dc329bd00e88",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1552,
64
],
"parameters": {
"columns": {
"value": {
"Status": "Done",
"IceBreaker": "={{ $json.message.content.icebreaker }}",
"linkedin_url": "={{ $node[\"Get Search URL\"].json.linkedin_url}}"
},
"schema": [
{
"id": "first_name",
"type": "string",
"display": true,
"required": false,
"displayName": "first_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "last_name",
"type": "string",
"display": true,
"required": false,
"displayName": "last_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "name",
"type": "string",
"display": true,
"required": false,
"displayName": "name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "personal_email",
"type": "string",
"display": true,
"required": false,
"displayName": "personal_email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin_url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "linkedin_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_website_url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "organization_website_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IceBreaker",
"type": "string",
"display": true,
"required": false,
"displayName": "IceBreaker",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "headline",
"type": "string",
"display": true,
"required": false,
"displayName": "headline",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company LinkedIn URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_phone",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_postal_code",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_postal_code",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_primary_domain",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_primary_domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_raw_address",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_raw_address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "photo_url",
"type": "string",
"display": true,
"required": false,
"displayName": "photo_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "seniority",
"type": "string",
"display": true,
"required": false,
"displayName": "seniority",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "state",
"type": "string",
"display": true,
"required": false,
"displayName": "state",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "twitter_url",
"type": "string",
"display": true,
"required": false,
"displayName": "twitter_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "username",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "username",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "domain",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "overall_score",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "overall_score",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"linkedin_url"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1034888960,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY/edit#gid=1034888960",
"cachedResultName": "Marketing Companies (AUS)(Fully verified)"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY/edit?usp=drivesdk",
"cachedResultName": "Marketing Companies (AUS)(Fully verified)"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "DCXUL4CTk4ontMrn",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "4d6b8c53-4800-4e55-9a33-e353e4442c36",
"name": "Google Sheets1",
"type": "n8n-nodes-base.googleSheets",
"position": [
288,
64
],
"parameters": {
"columns": {
"value": {
"Status": "Error",
"linkedin_url": "={{ $('Get Search URL').item.json.linkedin_url }}"
},
"schema": [
{
"id": "first_name",
"type": "string",
"display": true,
"required": false,
"displayName": "first_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "last_name",
"type": "string",
"display": true,
"required": false,
"displayName": "last_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "name",
"type": "string",
"display": true,
"required": false,
"displayName": "name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "personal_email",
"type": "string",
"display": true,
"required": false,
"displayName": "personal_email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin_url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "linkedin_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_website_url",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_website_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IceBreaker",
"type": "string",
"display": true,
"required": false,
"displayName": "IceBreaker",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "headline",
"type": "string",
"display": true,
"required": false,
"displayName": "headline",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company LinkedIn URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Company LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_phone",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_postal_code",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_postal_code",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_primary_domain",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_primary_domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "organization_raw_address",
"type": "string",
"display": true,
"required": false,
"displayName": "organization_raw_address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "photo_url",
"type": "string",
"display": true,
"required": false,
"displayName": "photo_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "seniority",
"type": "string",
"display": true,
"required": false,
"displayName": "seniority",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "state",
"type": "string",
"display": true,
"required": false,
"displayName": "state",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "twitter_url",
"type": "string",
"display": true,
"required": false,
"displayName": "twitter_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "username",
"type": "string",
"display": true,
"required": false,
"displayName": "username",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "domain",
"type": "string",
"display": true,
"required": false,
"displayName": "domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "overall_score",
"type": "string",
"display": true,
"required": false,
"displayName": "overall_score",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"linkedin_url"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1034888960,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY/edit#gid=1034888960",
"cachedResultName": "Marketing Companies (AUS)(Fully verified)"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1z4_JWLSsO7V_2U9duotxaCXdhcDACwFLWtKkX9KRxOY/edit?usp=drivesdk",
"cachedResultName": "Marketing Companies (AUS)(Fully verified)"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "DCXUL4CTk4ontMrn",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "6e97138a-79df-40d2-bb7a-6e1aba55ef56",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
480,
144
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0f0accc3-f769-43ee-9d8c-350748f3edfb",
"operator": {
"type": "array",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.links }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "91e0c802-23a7-4ea7-9acf-d90b5cb39303",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
-448
],
"parameters": {
"color": 4,
"width": 776,
"height": 1016,
"content": "# Step-1\n## This section downloads one web page from your list of leads and creates a list of all pages and subpages. \n\n\nIn the google sheet create credential with the google account where you have sheet with lead and link it in the nodes\n\nIf the system encounters a problem while scraping the home page (incorrect domain, non-functional website, etc.), it will mark it as ERROR in your leads and start scraping the next lead's page.\nIf the HTML node cannot find the page links, it will also return this as an error.\n\nAfter scraping the page, everything goes to the CODE node, which:\nRetrieves a list of links (e.g., collected from the page).\n\nRemoves junk (emails, anchors, social media, external domains).\n\nNormalizes addresses (e.g., adds missing /, removes duplicates).\n\nReturns a list of clean, unique, internal links belonging to a single domain."
},
"typeVersion": 1
},
{
"id": "c2c3a848-0581-4a8a-9a5b-1c024d2a5284",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
-224
],
"parameters": {
"color": 6,
"width": 420,
"height": 408,
"content": "# Step-2 \n## In this section, the node visits each collected page and converts it to HTML text."
},
"typeVersion": 1
},
{
"id": "391c5fdb-6681-4c31-a28c-12152e88e026",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1184,
-544
],
"parameters": {
"color": 5,
"width": 580,
"height": 840,
"content": "# Step-3\n## Summarize each page & generate icebreaker\n\nHere you need to create your openai credentials\n\nIn the first node, the GPT chatbot summarizes all data, text, etc. from the collected pages and provides a two-paragraph summary of the page content.\nAnd returns in JSON \n\nThen, all summaries are collected into one using the Aggregate node and forwarded to the next node with the gpt chat, where our wonderful personalized icebreaker is generated.\n\nNext, the icebreaker is entered into the lead sheet, and the system repeats with the next lead."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "3408c389-77cf-42c7-bae3-f80db5af7ef8",
"connections": {
"If": {
"main": [
[
{
"node": "Google Sheets1",
"type": "main",
"index": 0
}
],
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"HTML": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Request web page for URL",
"type": "main",
"index": 0
}
]
]
},
"Markdown": {
"main": [
[
{
"node": "Summarize Website Page",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Generate Multiline Icebreaker",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Scrape Home": {
"main": [
[
{
"node": "HTML",
"type": "main",
"index": 0
}
],
[
{
"node": "Google Sheets1",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "Get Search URL",
"type": "main",
"index": 0
}
]
]
},
"Get Search URL": {
"main": [
[
{
"node": "Scrape Home",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets1": {
"main": [
[
{
"node": "Get Search URL",
"type": "main",
"index": 0
}
]
]
},
"Summarize Website Page": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Request web page for URL": {
"main": [
[
{
"node": "Markdown",
"type": "main",
"index": 0
}
]
]
},
"Generate Multiline Icebreaker": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Get Search URL",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 潜在客户开发, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
潜在客户开发与邮件工作流
使用Google Maps、SendGrid和AI自动化B2B潜在客户开发与邮件营销
If
Set
Code
+21
141 节点Ezema Kingsley Chibuzo
潜在客户开发
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
基于AI的潜在客户生成系统(邮件个性化和LinkedIn)
基于AI的潜在客户生成系统:包含邮件个性化和LinkedIn功能
If
Code
Limit
+11
51 节点Matthieu
潜在客户开发
使用LinkedIn、OpenAI和Sales Navigator创建合格线索和冷呼叫脚本
通过LinkedIn、OpenAI和Sales Navigator创建合格线索和冷呼叫脚本
If
Code
Limit
+11
47 节点Matthieu
潜在客户开发
灵活新闻聚合器 - 多源集成、AI分析和可设置频道
多源新闻策展系统,集成Mistral AI分析、摘要和自定义频道
If
Set
Xml
+32
120 节点Hybroht
内容创作
联系人信息丰富化
基于 Apollo、LinkedIn 和 GPT-4o 的全面联系人信息丰富化,适用于 HubSpot
If
Set
Code
+15
24 节点Interlock GTM
潜在客户开发
工作流信息
难度等级
高级
节点数量19
分类2
节点类型13
作者
Mirai
@miraiAt MIRAI, we believe that time is the true luxury. Thanks to AI automation, we free up time for you and your business. Our technologies work continuously.
外部链接
在 n8n.io 查看 →
分享此工作流