N8N 워크플로우: 구매 그룹 강화
고급
이것은Lead Generation, Multimodal AI분야의자동화 워크플로우로, 22개의 노드를 포함합니다.주로 If, Code, Wait, Gmail, Merge 등의 노드를 사용하며. Surfe 및 Google Sheets를 사용하여 HubSpot 구매자 그룹 자동 발견 및 강화
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •HubSpot API Key
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "F733EtVzETOmrGEZ",
"meta": {
"instanceId": "f489a0883a1f92ce260f08ca0188bdcc069cd8b210fc3d72d99be4ac185ace1a",
"templateCredsSetupCompleted": true
},
"name": "N8N FLOW: Enrich Buying Groups",
"tags": [],
"nodes": [
{
"id": "6b2e276e-50ba-49cf-88a5-2c2a2009d7fd",
"name": "회사 내 사람 검색",
"type": "n8n-nodes-base.httpRequest",
"position": [
420,
-140
],
"parameters": {
"url": "https://api.surfe.com/v2/people/search",
"method": "POST",
"options": {
"redirect": {
"redirect": {}
}
},
"jsonBody": "={{ $json }}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "K2dwHCUGcjj7cU9W",
"name": "Bearer Auth account SURFE"
}
},
"typeVersion": 4.2
},
{
"id": "67317714-fc53-46cb-ae21-d97758e42403",
"name": "JSON 정보 강화 요청 페이로드 준비",
"type": "n8n-nodes-base.code",
"position": [
600,
-140
],
"parameters": {
"jsCode": "const people = $json.people || [];\n\nreturn [\n {\n json: {\n \"include\": {\n \"email\": true,\n \"linkedInUrl\": false,\n \"mobile\": true,\n \"jobHistory\": true\n },\n \"notificationOptions\": {\n \"webhookUrl\": \"\"\n },\n people: people.map((person) => ({\n firstName: person.firstName || \"\",\n lastName: person.lastName || \"\",\n companyName: person.companyName || \"\",\n companyDomain: person.companyDomain || \"\",\n linkedinUrl: person.linkedInUrl || \"\",\n externalID: `${person.firstName}_${person.lastName}_${person.companyDomain}`.toLowerCase().replace(/[^a-z0-9_]/g, '_')\n }))\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "cfa2243c-5293-4fb4-ba27-a3b0cc3854e5",
"name": "Surfe 정보 강화 상태 확인",
"type": "n8n-nodes-base.httpRequest",
"position": [
1000,
-140
],
"parameters": {
"url": "=https://api.surfe.com/v2/people/enrich/{{ $json.enrichmentID }}",
"options": {
"redirect": {
"redirect": {}
}
},
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "K2dwHCUGcjj7cU9W",
"name": "Bearer Auth account SURFE"
}
},
"typeVersion": 4.2
},
{
"id": "c89537af-e8cf-4885-bb2c-624f66ce1c90",
"name": "정보 강화 완료 여부?",
"type": "n8n-nodes-base.if",
"position": [
1220,
-200
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "65a670df-84e8-4c87-956c-96758b8d8d26",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7f42e951-3467-4cc9-9b67-22318486d9ff",
"name": "3초 대기",
"type": "n8n-nodes-base.wait",
"position": [
1440,
-40
],
"webhookId": "4e4177c8-a033-4e2b-b2f5-ff6ff514fc9b",
"parameters": {
"amount": 3
},
"typeVersion": 1.1
},
{
"id": "0b3e3755-a7cb-4386-b7f9-258b56da0e70",
"name": "Surfe API 응답에서 사람 목록 추출",
"type": "n8n-nodes-base.code",
"position": [
1440,
-260
],
"parameters": {
"jsCode": "const people = $json.people || [];\n\nreturn people.map(person => {\n return {\n json: {\n id: person.id || '',\n firstName: person.firstName || '',\n lastName: person.lastName || '',\n email: person.emails?.[0]?.email || '',\n phone: person.mobilePhones?.[0]?.mobilePhone || '',\n jobTitle: person.jobHistory[0].jobTitle || '',\n companyName: person.jobHistory[0].companyName || '',\n companyWebsite: person.companyDomain || '',\n linkedinUrl: person.linkedInUrl || '',\n country: person.country || '',\n status: person.status || ''\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "95bd387b-b8e1-40e8-8afc-05c3bffe1fe9",
"name": "필터: 전화번호 AND 이메일",
"type": "n8n-nodes-base.filter",
"position": [
1660,
-260
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "4f8f9bec-6eee-4e62-8d5f-e8f5b85620d6",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.phone }}",
"rightValue": ""
},
{
"id": "007f5a66-4e2a-42bc-bbed-0fb2b2f39ae7",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "84ac7743-f3ad-446c-850e-38aa37f26201",
"name": "HubSpot: 생성 또는 업데이트",
"type": "n8n-nodes-base.hubspot",
"position": [
1880,
-260
],
"parameters": {
"email": "={{ $json.email }}",
"options": {
"resolveData": false
},
"authentication": "appToken",
"additionalFields": {
"country": "={{ $json.country }}",
"jobTitle": "={{ $json.jobTitle }}",
"lastName": "={{ $json.lastName }}",
"firstName": "={{ $json.firstName }}",
"websiteUrl": "={{ $json.linkedinUrl }}",
"companyName": "={{ $json.companyName }}",
"phoneNumber": "={{ $json.phone }}",
"mobilePhoneNumber": "={{ $json.phone }}"
}
},
"credentials": {
"hubspotAppToken": {
"id": "ED8vy6s9eLCEf1wK",
"name": "HubSpot App Token account"
}
},
"typeVersion": 2.1
},
{
"id": "10191a29-ead8-475c-a474-cc41e4bc5654",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"notes": "Notify end of all batches",
"position": [
2440,
-380
],
"webhookId": "8475edad-4074-46f0-b62e-b4ec94fc85b4",
"parameters": {
"sendTo": "youdestinationremail@gmail.com",
"message": "={{ $json.message }}",
"options": {},
"subject": "={{ $json.subject }}"
},
"credentials": {
"gmailOAuth2": {
"id": "vVbFUp4uEh0hPH7S",
"name": "Gmail account"
}
},
"executeOnce": true,
"notesInFlow": true,
"typeVersion": 2.1
},
{
"id": "da732754-774e-4f67-9c1a-ad11de4d7642",
"name": "'워크플로우 실행' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1020,
-1420
],
"parameters": {},
"typeVersion": 1
},
{
"id": "89e4325b-ac54-4e16-b13a-8cacc4a1b986",
"name": "사람 검색을 위한 JSON 페이로드 준비",
"type": "n8n-nodes-base.code",
"position": [
220,
-140
],
"parameters": {
"jsCode": "// Récupère tous les items entrants\nconst allItems = $items();\n\n// Sépare les items du sheet et celui avec companyDomains\nconst sheetItems = allItems.filter(i =>\n i.json.departments || i.json.jobTitles || i.json.seniorities || i.json.countries\n);\nconst domainItems = allItems.filter(i => i.json.companyDomains);\n\n// Helper : extrait, splitte, déduplique et nettoie\nfunction extractList(items, fieldName) {\n const raw = items.flatMap(item => {\n const v = item.json[fieldName];\n if (!v) return [];\n if (typeof v === 'string' && v.includes(',')) {\n return v.split(',').map(s => s.trim()).filter(Boolean);\n }\n return [v];\n });\n // déduplique puis enlève les valeurs falsy\n return [...new Set(raw)].filter(Boolean);\n}\n\nconst departments = extractList(sheetItems, 'departments');\nconst jobTitles = extractList(sheetItems, 'jobTitles');\nconst seniorities = extractList(sheetItems, 'seniorities');\nconst countries = extractList(sheetItems, 'countries');\n\n// Récupère et déduplique les companyDomains\nconst companyDomains = [...new Set(\n domainItems.flatMap(i => {\n const cd = i.json.companyDomains;\n if (!cd) return [];\n if (Array.isArray(cd)) return cd;\n if (typeof cd === 'string') return [cd];\n return [];\n })\n)].filter(Boolean);\n\n// Payload final\nreturn {\n companies: {\n domains: companyDomains\n },\n people: {\n departments,\n jobTitles,\n seniorities,\n countries\n },\n limit: 200\n};\n"
},
"typeVersion": 2
},
{
"id": "8e0d64d3-f7fa-4798-bb2d-fc795aec89f3",
"name": "HubSpot 트리거",
"type": "n8n-nodes-base.hubspotTrigger",
"position": [
-800,
-260
],
"webhookId": "6b49bfad-34fc-4790-b88f-8e6779704676",
"parameters": {
"eventsUi": {
"eventValues": [
{
"name": "deal.creation"
}
]
},
"additionalFields": {}
},
"credentials": {
"hubspotDeveloperApi": {
"id": "rdfe6pDYMZmB27UJ",
"name": "HubSpot Developer account"
}
},
"typeVersion": 1
},
{
"id": "e2fcd474-0ba0-4263-bc50-01218f381087",
"name": "HUBSPOT에서 거래 관련 회사 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
-580,
-160
],
"parameters": {
"url": "=https://api.hubapi.com/crm/v3/objects/deals/{{ $json.dealId }}/associations/companies",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{}
]
},
"headerParameters": {
"parameters": [
{}
]
},
"nodeCredentialType": "hubspotOAuth2Api"
},
"credentials": {
"hubspotOAuth2Api": {
"id": "HGorw8YjfR5aMHl8",
"name": "HubSpot account"
}
},
"typeVersion": 4.2
},
{
"id": "afc19dae-6364-48a0-8d3a-839b6010b275",
"name": "회사 도메인 추출",
"type": "n8n-nodes-base.code",
"position": [
-180,
-60
],
"parameters": {
"jsCode": "const company_domains = $input.all().map(item => {\n const domain = item.json.properties.domain.value || \"\";\n return domain;\n}).filter(Boolean); // enlève les null ou undefined\n\nreturn {json: { companyDomains: company_domains }}"
},
"typeVersion": 2
},
{
"id": "eceb53ea-4260-43fb-b868-91c2e612b116",
"name": "병합",
"type": "n8n-nodes-base.merge",
"position": [
40,
-160
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "8c8c2ce7-9e61-400a-a160-7f68fb25b23c",
"name": "병합1",
"type": "n8n-nodes-base.merge",
"position": [
2080,
-380
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "b71396c0-1063-409b-a9a5-060cad8e614c",
"name": "Surfe 대량 정보 강화 API",
"type": "n8n-nodes-base.httpRequest",
"position": [
760,
-140
],
"parameters": {
"url": "https://api.surfe.com/v2/people/enrich",
"method": "POST",
"options": {
"redirect": {
"redirect": {}
}
},
"jsonBody": "={{ $json }}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "K2dwHCUGcjj7cU9W",
"name": "Bearer Auth account SURFE"
}
},
"typeVersion": 4.2
},
{
"id": "8a53937f-de3e-4a45-bd9f-3f9e9aac0ea6",
"name": "HubSpot 거래 가져오기",
"type": "n8n-nodes-base.hubspot",
"position": [
-580,
-500
],
"parameters": {
"dealId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.dealId }}"
},
"filters": {},
"resource": "deal",
"operation": "get",
"authentication": "appToken"
},
"credentials": {
"hubspotAppToken": {
"id": "ED8vy6s9eLCEf1wK",
"name": "HubSpot App Token account"
}
},
"typeVersion": 2.1
},
{
"id": "7f6ea675-401d-4468-adbc-b56babb6395d",
"name": "HubSpot 회사 정보 가져오기",
"type": "n8n-nodes-base.hubspot",
"position": [
-400,
-160
],
"parameters": {
"resource": "company",
"companyId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.results[0].id }}"
},
"operation": "get",
"authentication": "appToken",
"additionalFields": {}
},
"credentials": {
"hubspotAppToken": {
"id": "ED8vy6s9eLCEf1wK",
"name": "HubSpot App Token account"
}
},
"typeVersion": 2.1
},
{
"id": "03d94462-b78d-4103-8079-b209753fde84",
"name": "Google 시트 기준 읽기",
"type": "n8n-nodes-base.googleSheets",
"position": [
-180,
-300
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1KHmosQpcC9MU7Nt2kUn9G_k0N04-VftOoiXrryV_-kU/edit#gid=0",
"cachedResultName": "Your Buying Group Criterias"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "https://docs.google.com/spreadsheets/d/1KHmosQpcC9MU7Nt2kUn9G_k0N04-VftOoiXrryV_-kU"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "Uuk3Gi9SCdzAMJ6R",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "954456ba-5a82-4c72-a492-fd50a3e5c420",
"name": "거래 정보 추출",
"type": "n8n-nodes-base.code",
"position": [
1880,
-480
],
"parameters": {
"jsCode": "const deal = items[0].json;\nconst portalId = deal.portalId;\nconst dealId = deal.dealId ?? deal.deal?.id ?? deal.deal?.dealId ?? null;\nconst dealName = deal.properties?.dealname?.value ?? '';\n\nreturn [\n {\n json: {\n portalId,\n dealId,\n dealName,\n },\n },\n];"
},
"typeVersion": 2
},
{
"id": "a5aadafa-086f-4f84-af92-557347eb35a6",
"name": "이메일 내용 준비",
"type": "n8n-nodes-base.code",
"position": [
2260,
-380
],
"parameters": {
"jsCode": "// --- Assume first item is the trigger, rest are contact items ---\nconst trigger = items[0]?.json || {};\nconst contactItems = items.slice(1);\n\n// --- Extract deal and portal info from trigger ---\nconst portalId = trigger.portalId ?? trigger[\"portal-id\"] ?? (() => {\n // fallback: try to grab from a contact if trigger lacks it\n const fallback = contactItems.find(i => i.json?.properties?.hs_object_source_id?.value);\n return fallback?.json?.properties?.hs_object_source_id?.value || '';\n})();\nconst dealName = trigger.dealName\nconst dealId = trigger.dealId ?? trigger.deal?.id ?? trigger.deal?.dealId ?? null;\n\nfunction buildDealLink(portalId, dealId) {\n return `https://app.hubspot.com/contacts/${portalId}/record/0-3/${dealId}`;\n}\nconst dealLink = portalId && dealId ? buildDealLink(portalId, dealId) : '';\n\n// --- Buying group criteria and company domain (fallback) ---\nconst buyingGroupCriteria = trigger.buyingGroupCriteria || 'your buying group criteria';\n\nlet companyDomain = trigger.companyDomain || '';\nif (!companyDomain) {\n // infer from first available contact email\n const someContact = contactItems.find(i => i.json.searchPerson?.email || i.json.properties?.email?.value);\n const emailStr = (someContact?.json.searchPerson?.email || someContact?.json.properties?.email?.value || '').trim();\n if (emailStr.includes('@')) {\n companyDomain = emailStr.split('@')[1];\n }\n}\nif (!companyDomain) companyDomain = '(unknown domain)';\n\n// --- Normalize contacts (no job title) ---\nconst contacts = contactItems.map(item => {\n const props = item.json.properties || {};\n const search = item.json.searchPerson || {};\n\n const firstName = search.firstName || props.firstname?.value || '';\n const lastName = search.lastName || props.lastname?.value || '';\n const email = search.email || props.email?.value || '';\n const phone = props.phone?.value || '';\n const companyName = props.company?.value || '';\n const jobTitle = props.jobtitle?.value || '';\n\n \n const vid = item.json.vid || item.json[\"hs_object_id\"] || '';\n\n return { vid, firstName, lastName, email, phone, companyName, jobTitle };\n});\n\n// --- Build HTML table rows ---\nconst rowsHtml = contacts.map(c => {\n const fullName = `${c.firstName} ${c.lastName}`.trim() || '(no name)';\n const emailCell = c.email ? `<a href=\"mailto:${c.email}\">${c.email}</a>` : '—';\n const phoneCell = c.phone ? `<a href=\"tel:${c.phone}\">${c.phone}</a>` : '—';\n const jobTitleCell = c.jobTitle || '—';\n const companyCell = c.companyName|| '—';\n const contactHubspotUrl = portalId\n ? `https://app.hubspot.com/contacts/${portalId}/record/0-1/${c.vid}`\n : '#';\n const hubspotCell = `<a href=\"${contactHubspotUrl}\" target=\"_blank\">View in HubSpot</a>`;\n\n return `\n <tr>\n <td style=\"padding:6px;border:1px solid #ccc;\">${fullName}</td>\n <td style=\"padding:6px;border:1px solid #ccc;\">${jobTitleCell}</td>\n <td style=\"padding:6px;border:1px solid #ccc;\">${companyCell}</td>\n <td style=\"padding:6px;border:1px solid #ccc;\">${emailCell}</td>\n <td style=\"padding:6px;border:1px solid #ccc;\">${phoneCell}</td>\n <td style=\"padding:6px;border:1px solid #ccc;\">${hubspotCell}</td>\n </tr>\n `;\n}).join('');\n\n// --- Compose HTML email with hidden preheader ---\nconst htmlMessage = `\n <!DOCTYPE html>\n <html>\n <body style=\"font-family: system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif; line-height:1.4; color:#1f2937; padding:0; margin:0;\">\n <div style=\"max-width:800px; margin:0 auto; padding:20px;\">\n <!-- Hidden preheader for inbox preview -->\n <div style=\"display:none;font-size:1px;line-height:1px;max-height:0;max-width:0;opacity:0;overflow:hidden;\">\n Contacts enriched based on your buying group criteria and domain—see direct links.\n </div>\n\n <p>Hi Team,</p>\n\n <p>\n Following the creation of the <a href=\"${dealLink}\" target=\"_blank\">HubSpot deal</a> <strong>${dealName}</strong>., here are the contacts we enriched and pushed into HubSpot based on ${buyingGroupCriteria} and the company domain <strong>${companyDomain}</strong>.\n </p>\n\n <p>\n <strong>Total contacts processed:</strong> ${contacts.length}\n ${dealLink ? `<br/><strong>Deal link:</strong> <a href=\"${dealLink}\" target=\"_blank\">View deal in HubSpot</a>` : ''}\n </p>\n\n <table style=\"width:100%; border-collapse:collapse; margin-top:10px; margin-bottom:20px;\">\n <thead>\n <tr>\n <th style=\"padding:8px; border:1px solid #d1d5db; text-align:left; background:#f3f4f6;\">Name</th>\n <th style=\"padding:8px; border:1px solid #d1d5db; text-align:left; background:#f3f4f6;\">Job Title</th>\n <th style=\"padding:8px; border:1px solid #d1d5db; text-align:left; background:#f3f4f6;\">Company</th>\n <th style=\"padding:8px; border:1px solid #d1d5db; text-align:left; background:#f3f4f6;\">Email</th>\n <th style=\"padding:8px; border:1px solid #d1d5db; text-align:left; background:#f3f4f6;\">Phone</th>\n <th style=\"padding:8px; border:1px solid #d1d5db; text-align:left; background:#f3f4f6;\">HubSpot</th>\n </tr>\n </thead>\n <tbody>\n ${rowsHtml}\n </tbody>\n </table>\n\n <p>Best regards,<br/>\n Enrichment Workflow Bot</p>\n </div>\n </body>\n </html>\n`;\n\n// --- Compose plain-text fallback ---\nconst plainRows = contacts.map(c => {\n const fullName = `${c.firstName} ${c.lastName}`.trim() || '(no name)';\n const email = c.email || '—';\n const phone = c.phone || '—';\n const contactHubspotUrl = portalId ? `https://app.hubspot.com/contacts/${portalId}/record/0-1/${c.vid}` : '';\n return `- ${fullName} | ${email} | ${phone} | ${contactHubspotUrl}`;\n}).join('\\n');\n\nconst textMessage = `\nHi Team,\n\nFollowing the creation of the HubSpot deal${dealId ? ` (ID: ${dealId})` : ''}, here are the contacts we enriched and pushed into HubSpot based on ${buyingGroupCriteria} and the company domain ${companyDomain}.\n\nTotal contacts processed: ${contacts.length}\n\nContacts:\n${plainRows}\n\nBest regards,\nSurfe Enrichment Workflow Bot\n`;\n\n// --- Output for Gmail node (no 'to' field) ---\nreturn [\n {\n json: {\n subject: 'New Enriched Contacts Added to Your HubSpot Deal',\n message: htmlMessage,\n text: textMessage,\n },\n },\n];\n"
},
"typeVersion": 2
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7b22080a-3b54-4dca-b824-6268946be489",
"connections": {
"eceb53ea-4260-43fb-b868-91c2e612b116": {
"main": [
[
{
"node": "89e4325b-ac54-4e16-b13a-8cacc4a1b986",
"type": "main",
"index": 0
}
]
]
},
"8c8c2ce7-9e61-400a-a160-7f68fb25b23c": {
"main": [
[
{
"node": "a5aadafa-086f-4f84-af92-557347eb35a6",
"type": "main",
"index": 0
}
]
]
},
"8e0d64d3-f7fa-4798-bb2d-fc795aec89f3": {
"main": [
[
{
"node": "e2fcd474-0ba0-4263-bc50-01218f381087",
"type": "main",
"index": 0
},
{
"node": "8a53937f-de3e-4a45-bd9f-3f9e9aac0ea6",
"type": "main",
"index": 0
}
]
]
},
"7f42e951-3467-4cc9-9b67-22318486d9ff": {
"main": [
[
{
"node": "cfa2243c-5293-4fb4-ba27-a3b0cc3854e5",
"type": "main",
"index": 0
}
]
]
},
"8a53937f-de3e-4a45-bd9f-3f9e9aac0ea6": {
"main": [
[
{
"node": "954456ba-5a82-4c72-a492-fd50a3e5c420",
"type": "main",
"index": 0
}
]
]
},
"954456ba-5a82-4c72-a492-fd50a3e5c420": {
"main": [
[
{
"node": "8c8c2ce7-9e61-400a-a160-7f68fb25b23c",
"type": "main",
"index": 0
}
]
]
},
"7f6ea675-401d-4468-adbc-b56babb6395d": {
"main": [
[
{
"node": "03d94462-b78d-4103-8079-b209753fde84",
"type": "main",
"index": 0
},
{
"node": "afc19dae-6364-48a0-8d3a-839b6010b275",
"type": "main",
"index": 0
}
]
]
},
"a5aadafa-086f-4f84-af92-557347eb35a6": {
"main": [
[
{
"node": "10191a29-ead8-475c-a474-cc41e4bc5654",
"type": "main",
"index": 0
}
]
]
},
"afc19dae-6364-48a0-8d3a-839b6010b275": {
"main": [
[
{
"node": "eceb53ea-4260-43fb-b868-91c2e612b116",
"type": "main",
"index": 1
}
]
]
},
"95bd387b-b8e1-40e8-8afc-05c3bffe1fe9": {
"main": [
[
{
"node": "84ac7743-f3ad-446c-850e-38aa37f26201",
"type": "main",
"index": 0
}
]
]
},
"c89537af-e8cf-4885-bb2c-624f66ce1c90": {
"main": [
[
{
"node": "0b3e3755-a7cb-4386-b7f9-258b56da0e70",
"type": "main",
"index": 0
}
],
[
{
"node": "7f42e951-3467-4cc9-9b67-22318486d9ff",
"type": "main",
"index": 0
}
]
]
},
"84ac7743-f3ad-446c-850e-38aa37f26201": {
"main": [
[
{
"node": "8c8c2ce7-9e61-400a-a160-7f68fb25b23c",
"type": "main",
"index": 1
}
]
]
},
"6b2e276e-50ba-49cf-88a5-2c2a2009d7fd": {
"main": [
[
{
"node": "67317714-fc53-46cb-ae21-d97758e42403",
"type": "main",
"index": 0
}
]
]
},
"b71396c0-1063-409b-a9a5-060cad8e614c": {
"main": [
[
{
"node": "cfa2243c-5293-4fb4-ba27-a3b0cc3854e5",
"type": "main",
"index": 0
}
]
]
},
"03d94462-b78d-4103-8079-b209753fde84": {
"main": [
[
{
"node": "eceb53ea-4260-43fb-b868-91c2e612b116",
"type": "main",
"index": 0
}
]
]
},
"cfa2243c-5293-4fb4-ba27-a3b0cc3854e5": {
"main": [
[
{
"node": "c89537af-e8cf-4885-bb2c-624f66ce1c90",
"type": "main",
"index": 0
}
]
]
},
"da732754-774e-4f67-9c1a-ad11de4d7642": {
"main": [
[]
]
},
"89e4325b-ac54-4e16-b13a-8cacc4a1b986": {
"main": [
[
{
"node": "6b2e276e-50ba-49cf-88a5-2c2a2009d7fd",
"type": "main",
"index": 0
}
]
]
},
"67317714-fc53-46cb-ae21-d97758e42403": {
"main": [
[
{
"node": "b71396c0-1063-409b-a9a5-060cad8e614c",
"type": "main",
"index": 0
}
]
]
},
"e2fcd474-0ba0-4263-bc50-01218f381087": {
"main": [
[
{
"node": "7f6ea675-401d-4468-adbc-b56babb6395d",
"type": "main",
"index": 0
}
]
]
},
"0b3e3755-a7cb-4386-b7f9-258b56da0e70": {
"main": [
[
{
"node": "95bd387b-b8e1-40e8-8afc-05c3bffe1fe9",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 리드 생성, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Google 스프레드시트에서 마케팅 리드 강화
🚀 사용Surfe、Google Sheets및HubSpot자동화LinkedIn联系人信息丰富
If
Code
Wait
+
If
Code
Wait
12 노드go-surfe
리드 생성
가상 고객 목록을 구축
목표 고객 목록 구축: Surfe를 사용하여 HubSpot으로 검색하고 유연하게
If
Code
Wait
+
If
Code
Wait
13 노드go-surfe
리드 생성
리드 생성 및 이메일 워크플로
Google 지도, SendGrid 및 AI를 사용한 B2B 잠재 고객 개발 및 이메일 마케팅 자동화
If
Set
Code
+
If
Set
Code
141 노드Ezema Kingsley Chibuzo
리드 생성
Apify, Apollo.io 및 Google Gemini를 사용한 LinkedIn 직무 AI 기반 잠재 리드 생성 자동화
LinkedIn 채용 공고 잠재 고객 생성 자동화: Apify, Apollo.io 및 Google Gemini
If
Code
Limit
+
If
Code
Limit
47 노드Intuz
리드 생성
09 - 잠재 리드 프로필 강화기
잠재 고객 정보 보강 및 개인화 아웃리치 자동화: HubSpot, Phantombuster 및 GPT
If
Set
Code
+
If
Set
Code
30 노드Avkash Kakdiya
리드 육성
AI 기반 리드 생성 시스템 (이메일 개인화 및 LinkedIn)
AI 기반 리드 생성 시스템: 이메일 개인화 및 LinkedIn 기능 포함
If
Code
Limit
+
If
Code
Limit
51 노드Matthieu
리드 생성
워크플로우 정보
난이도
고급
노드 수22
카테고리2
노드 유형11
저자
go-surfe
@go-surfeSave time and sell more with Surfe's API via n8n workflows. - Accurate data you can trust - Results in milliseconds - Scalable and versatile - Full automation For more check out: 💻 https://www.surfe.com?utm_source=n8n 🔗 https://www.linkedin.com/company/surfe/ 👾 https://github.com/surfe/api-examples
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유