HubSpot, Clearbit 및 Slack 기반 자동화된 리드 캡처, 점수 부여 및 CRM 통합
이것은Lead Generation, Multimodal AI분야의자동화 워크플로우로, 22개의 노드를 포함합니다.주로 If, Code, Merge, Slack, Hubspot 등의 노드를 사용하며. HubSpot, Clearbit, Slack 기반 자동 리드 캡처, 스코어링 및 CRM 통합
- •Slack Bot Token 또는 Webhook URL
- •HubSpot API Key
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •대상 API의 인증 정보가 필요할 수 있음
{
"meta": {
"instanceId": "5a648bd3f759c69d3a1e71a0e47ad1046af7ce76a6f331a86cd6058d8a6372fa",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "fb029ad8-8110-4407-8a54-614bcbafddd8",
"name": "Sticky Note - 개요",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1312,
-144
],
"parameters": {
"width": 492,
"height": 464,
"content": "## Lead Capture & Auto-Qualification Workflow\n\n**Purpose:** Automatically capture leads from multiple sources, enrich with company data, qualify based on criteria, and route to appropriate sales actions.\n\n**Security:** Uses environment variables for API keys - no hardcoded credentials!\n\n**Flow:** Webhook → Validation → Enrichment → Qualification → CRM/Notifications"
},
"typeVersion": 1
},
{
"id": "49d3b848-dc51-43cf-b22b-cfb9f8e24c77",
"name": "리드 캡처 Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-224,
400
],
"webhookId": "lead-capture-hook",
"parameters": {
"path": "lead-capture",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "ad3ce370-da9d-4ba3-ab48-834c2e6bce34",
"name": "Sticky Note - Webhook 설정",
"type": "n8n-nodes-base.stickyNote",
"position": [
-816,
-144
],
"parameters": {
"width": 520,
"height": 460,
"content": "## Webhook Configuration\n\n**Endpoint:** `/lead-capture`\n**Method:** POST\n**Expected Data:**\n- email (required)\n- firstName\n- lastName\n- company\n- phone\n- source\n- message"
},
"typeVersion": 1
},
{
"id": "059a2f3a-dc94-42c6-9273-cbb24ad894e7",
"name": "리드 데이터 검증",
"type": "n8n-nodes-base.if",
"position": [
0,
400
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "email-validation",
"operator": {
"type": "string",
"operation": "isNotEmpty"
},
"leftValue": "={{ $json.email }}",
"rightValue": ""
},
{
"id": "email-format",
"operator": {
"type": "string",
"operation": "regex"
},
"leftValue": "={{ $json.email }}",
"rightValue": "^[\\w-\\.]+@[\\w-]+\\.[a-zA-Z]{2,}$"
}
]
}
},
"typeVersion": 2
},
{
"id": "c50640e7-bdab-4680-beb4-96e9dd379ebe",
"name": "Sticky Note - 데이터 검증",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
-448
],
"parameters": {
"width": 340,
"height": 408,
"content": "## Data Validation Rules\n\n**Required Fields:**\n- Valid email format\n- Email not empty\n\n**Optional Enhancement:**\n- Phone validation\n- Company name validation\n- Source validation"
},
"typeVersion": 1
},
{
"id": "409667ca-b5ab-4cab-864b-1b468da0ddca",
"name": "Clearbit로 데이터 강화",
"type": "n8n-nodes-base.clearbit",
"position": [
224,
208
],
"parameters": {
"email": "={{ $json.email }}",
"resource": "person",
"additionalFields": {}
},
"typeVersion": 1
},
{
"id": "b16da09c-2e02-4a25-8ffb-fb6d18d44273",
"name": "Sticky Note - 데이터 강화",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
-448
],
"parameters": {
"width": 344,
"height": 268,
"content": "## Lead Enrichment\n\n**Clearbit provides:**\n- Company size\n- Industry\n- Technologies used\n- Social profiles\n- Location data\n\n**⚠️ Security:** API key stored in credentials, not hardcoded!"
},
"typeVersion": 1
},
{
"id": "c4e3201e-f8f8-42bf-b142-e12a63d6cdd6",
"name": "Apollo로 데이터 강화",
"type": "n8n-nodes-base.httpRequest",
"position": [
224,
400
],
"parameters": {
"url": "={{ $env.APOLLO_API_URL }}/v1/people/match",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "email",
"value": "={{ $json.email }}"
},
{
"name": "first_name",
"value": "={{ $json.firstName }}"
},
{
"name": "last_name",
"value": "={{ $json.lastName }}"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Cache-Control",
"value": "no-cache"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "dbbb2ca7-c9e1-4a32-8270-fb9bdf328c54",
"name": "강화 데이터 병합",
"type": "n8n-nodes-base.merge",
"position": [
448,
304
],
"parameters": {},
"typeVersion": 3
},
{
"id": "6c14adc8-bdac-4a21-a1ae-ce9fc61605d1",
"name": "Sticky Note - 리드 스코어링",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-448
],
"parameters": {
"width": 396,
"height": 388,
"content": "## Lead Qualification Criteria\n\n**High Priority (Score 80+):**\n- Company size >500 employees\n- Tech/SaaS industry\n- Manager+ title\n- Enterprise email domain\n\n**Medium Priority (Score 50-79):**\n- Company size 50-500\n- Relevant industry\n- Business email\n\n**Low Priority (<50):**\n- Small company\n- Personal email\n- Irrelevant industry"
},
"typeVersion": 1
},
{
"id": "1318776b-db42-4031-bc8c-5224889da500",
"name": "리드 점수 계산",
"type": "n8n-nodes-base.code",
"position": [
672,
304
],
"parameters": {
"jsCode": "// Lead Qualification & Scoring Logic\nconst lead = $input.first().json;\nconst enrichment = lead.enrichment_data || {};\n\n// Initialize score\nlet score = 0;\nlet qualificationNotes = [];\n\n// Company Size Scoring\nif (enrichment.company?.metrics?.employees) {\n const employees = enrichment.company.metrics.employees;\n if (employees >= 500) {\n score += 30;\n qualificationNotes.push('Large company (500+ employees)');\n } else if (employees >= 50) {\n score += 20;\n qualificationNotes.push('Medium company (50-500 employees)');\n } else if (employees >= 10) {\n score += 10;\n qualificationNotes.push('Small company (10-50 employees)');\n }\n}\n\n// Industry Scoring\nconst targetIndustries = ['Technology', 'Software', 'SaaS', 'Finance', 'Healthcare'];\nif (enrichment.company?.category?.industry) {\n if (targetIndustries.includes(enrichment.company.category.industry)) {\n score += 25;\n qualificationNotes.push(`Target industry: ${enrichment.company.category.industry}`);\n }\n}\n\n// Title/Role Scoring\nif (enrichment.person?.employment?.title) {\n const title = enrichment.person.employment.title.toLowerCase();\n if (title.includes('ceo') || title.includes('founder') || title.includes('president')) {\n score += 25;\n qualificationNotes.push('C-level executive');\n } else if (title.includes('director') || title.includes('vp') || title.includes('manager')) {\n score += 15;\n qualificationNotes.push('Management level');\n }\n}\n\n// Email Domain Scoring\nconst email = lead.email || '';\nconst domain = email.split('@')[1];\nconst personalDomains = ['gmail.com', 'yahoo.com', 'hotmail.com', 'outlook.com'];\nif (!personalDomains.includes(domain)) {\n score += 10;\n qualificationNotes.push('Business email domain');\n} else {\n qualificationNotes.push('Personal email domain');\n}\n\n// Revenue Scoring (if available)\nif (enrichment.company?.metrics?.annualRevenue) {\n const revenue = enrichment.company.metrics.annualRevenue;\n if (revenue >= 10000000) { // $10M+\n score += 20;\n qualificationNotes.push('High revenue company ($10M+)');\n } else if (revenue >= 1000000) { // $1M+\n score += 10;\n qualificationNotes.push('Medium revenue company ($1M+)');\n }\n}\n\n// Determine qualification level\nlet qualificationLevel;\nlet priority;\nif (score >= 80) {\n qualificationLevel = 'High';\n priority = 'Immediate Follow-up';\n} else if (score >= 50) {\n qualificationLevel = 'Medium';\n priority = 'Follow-up within 24h';\n} else if (score >= 25) {\n qualificationLevel = 'Low';\n priority = 'Add to nurture sequence';\n} else {\n qualificationLevel = 'Unqualified';\n priority = 'Archive or reject';\n}\n\n// Return enriched lead data\nreturn {\n ...lead,\n qualification: {\n score: score,\n level: qualificationLevel,\n priority: priority,\n notes: qualificationNotes,\n timestamp: new Date().toISOString()\n },\n enriched_company: enrichment.company || {},\n enriched_person: enrichment.person || {}\n};"
},
"typeVersion": 2
},
{
"id": "2398e080-42c8-405e-a430-f27389b930c8",
"name": "자격에 따른 라우팅",
"type": "n8n-nodes-base.if",
"position": [
896,
304
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "high-score",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.qualification.score }}",
"rightValue": 80
}
]
}
},
"typeVersion": 2
},
{
"id": "6490475a-d9bb-43c1-8bbf-3379cfd40754",
"name": "Sticky Note - 고우선순위 작업",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
-448
],
"parameters": {
"width": 392,
"height": 316,
"content": "## High Priority Lead Actions\n\n**Immediate Actions:**\n- Create lead in CRM\n- Notify sales team via Slack\n- Send personalized welcome email\n- Schedule follow-up task\n\n**Data Stored:**\n- All enrichment data\n- Qualification score & notes\n- Source tracking"
},
"typeVersion": 1
},
{
"id": "7a157570-3e7d-4584-81a1-1f2502516843",
"name": "HubSpot 연락처 생성",
"type": "n8n-nodes-base.hubspot",
"position": [
1120,
16
],
"parameters": {
"operation": "create"
},
"typeVersion": 2
},
{
"id": "98170537-d67e-49ee-9819-709a12e29710",
"name": "영업팀 알림 - 고우선순위",
"type": "n8n-nodes-base.slack",
"position": [
1120,
208
],
"webhookId": "364aca1f-ce36-4174-8cbd-9ae11535b690",
"parameters": {
"text": "🚨 **High Priority Lead Alert!** 🚨",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $env.SLACK_SALES_CHANNEL_ID }}"
},
"otherOptions": {}
},
"typeVersion": 2.2
},
{
"id": "99245b66-8d64-4b85-b998-892f59b2a2e1",
"name": "HubSpot 연락처 생성 - 중간",
"type": "n8n-nodes-base.hubspot",
"position": [
1120,
400
],
"parameters": {
"operation": "create"
},
"typeVersion": 2
},
{
"id": "e1bc4f06-267e-426a-a064-836b448a4403",
"name": "Sticky Note - 중간우선순위 작업",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
-128
],
"parameters": {
"width": 392,
"height": 120,
"content": "## Medium/Low Priority Actions\n\n**Medium Priority:**\n- Create lead in CRM\n- Add to nurture sequence\n- Schedule follow-up in 24-48h\n\n**Low Priority:**\n- Add to CRM\n- Add to long-term nurture\n- Monthly check-in"
},
"typeVersion": 1
},
{
"id": "402a9234-f2c2-483f-81df-32629b306d55",
"name": "마케팅팀 알림 - 중간우선순위",
"type": "n8n-nodes-base.slack",
"position": [
1120,
592
],
"webhookId": "c4c6452c-34e9-4e0c-9fff-4fd93daf81d1",
"parameters": {
"text": "📋 New Medium Priority Lead",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $env.SLACK_MARKETING_CHANNEL_ID }}"
},
"otherOptions": {}
},
"typeVersion": 2.2
},
{
"id": "63d95fd7-f5ac-4192-9f2b-d35bd0fa1d0b",
"name": "잘못된 데이터 기록",
"type": "n8n-nodes-base.noOp",
"position": [
224,
592
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9fc03270-9915-46ab-a08c-8ff937119a31",
"name": "Sticky Note - 오류 처리",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
-176
],
"parameters": {
"width": 356,
"height": 120,
"content": "## Error Handling\n\n**Invalid Data Path:**\n- Log the invalid data\n- Send error notification\n- Return 400 status\n\n**Enrichment Failures:**\n- Continue with basic data\n- Log enrichment errors\n- Use fallback scoring"
},
"typeVersion": 1
},
{
"id": "a42f2d44-3eaf-4896-bc04-223fe770bc04",
"name": "Sticky Note - 환경 변수",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1328,
320
],
"parameters": {
"width": 524,
"height": 480,
"content": "## Required Environment Variables\n\n**🔐 Security - No Hardcoded Keys!**\n\n- `APOLLO_API_URL`\n- `SLACK_SALES_CHANNEL_ID`\n- `SLACK_MARKETING_CHANNEL_ID`\n- `CRM_ASSIGNMENT_URL`\n\n**Credentials Required:**\n- Clearbit API\n- Apollo API (HTTP Header Auth)\n- HubSpot API\n- Slack API"
},
"typeVersion": 1
},
{
"id": "6ee62c3b-f74a-466b-899d-b61edff40f8f",
"name": "Sticky Note - 통합 포인트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-816,
320
],
"parameters": {
"width": 520,
"height": 480,
"content": "## Integration Sources\n\n**This webhook can receive leads from:**\n- Website contact forms\n- Landing page forms\n- Facebook Lead Ads\n- LinkedIn Lead Gen Forms\n- Webinar registrations\n- Free trial signups\n- Content downloads\n\n**Format:** POST to `/lead-capture`"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"c4e3201e-f8f8-42bf-b142-e12a63d6cdd6": {
"main": [
[
{
"node": "dbbb2ca7-c9e1-4a32-8270-fb9bdf328c54",
"type": "main",
"index": 1
}
]
]
},
"059a2f3a-dc94-42c6-9273-cbb24ad894e7": {
"main": [
[
{
"node": "409667ca-b5ab-4cab-864b-1b468da0ddca",
"type": "main",
"index": 0
},
{
"node": "c4e3201e-f8f8-42bf-b142-e12a63d6cdd6",
"type": "main",
"index": 0
}
],
[
{
"node": "63d95fd7-f5ac-4192-9f2b-d35bd0fa1d0b",
"type": "main",
"index": 0
}
]
]
},
"1318776b-db42-4031-bc8c-5224889da500": {
"main": [
[
{
"node": "2398e080-42c8-405e-a430-f27389b930c8",
"type": "main",
"index": 0
}
]
]
},
"409667ca-b5ab-4cab-864b-1b468da0ddca": {
"main": [
[
{
"node": "dbbb2ca7-c9e1-4a32-8270-fb9bdf328c54",
"type": "main",
"index": 0
}
]
]
},
"49d3b848-dc51-43cf-b22b-cfb9f8e24c77": {
"main": [
[
{
"node": "059a2f3a-dc94-42c6-9273-cbb24ad894e7",
"type": "main",
"index": 0
}
]
]
},
"dbbb2ca7-c9e1-4a32-8270-fb9bdf328c54": {
"main": [
[
{
"node": "1318776b-db42-4031-bc8c-5224889da500",
"type": "main",
"index": 0
}
]
]
},
"2398e080-42c8-405e-a430-f27389b930c8": {
"main": [
[
{
"node": "7a157570-3e7d-4584-81a1-1f2502516843",
"type": "main",
"index": 0
},
{
"node": "98170537-d67e-49ee-9819-709a12e29710",
"type": "main",
"index": 0
}
],
[
{
"node": "99245b66-8d64-4b85-b998-892f59b2a2e1",
"type": "main",
"index": 0
},
{
"node": "402a9234-f2c2-483f-81df-32629b306d55",
"type": "main",
"index": 0
}
]
]
}
}
}이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 리드 생성, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
shae
@senshaeFull-stack automation expert combining n8n, frontend & backend development, and hard-coded solutions to build powerful, scalable workflows. Skilled in data parsing (PDF/Excel), API integrations (banking, property, financial), email systems, and real-time sync. I create custom dashboards, API layers, and advanced automations that go beyond “no-code,”
이 워크플로우 공유