
For Temp_Smart Lead Routing & Qualification System (Typeform to HubSpot)
説明
Categories
⚙️ Automation
Nodes Used
n8n-nodes-base.ifn8n-nodes-base.coden8n-nodes-base.waitn8n-nodes-base.slackn8n-nodes-base.hubspotn8n-nodes-base.hubspotn8n-nodes-base.webhookn8n-nodes-base.functionn8n-nodes-base.functionn8n-nodes-base.stickyNote
Price無料
Views0
最終更新11/28/2025
workflow.json
{
"id": "8iSWr1q9g25U96Ma",
"meta": {
"instanceId": "76f06a30ee768f89c6ff0d243373c374d3121b030a6b7f852dd91210a1e890ad",
"templateCredsSetupCompleted": true
},
"name": "For Temp_Smart Lead Routing & Qualification System (Typeform to HubSpot)",
"tags": [],
"nodes": [
{
"id": "1081c3e1-1a74-42e2-8965-1f75849c8a77",
"name": "Webhook Trigger",
"type": "n8n-nodes-base.webhook",
"position": [
-1696,
240
],
"webhookId": "aed48880-568d-44a2-889f-32f0fcfc1d6f",
"parameters": {
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"id": "7e0f9ef2-6da2-49d8-abe5-d5fa24b742f6",
"name": "Extract Lead Data",
"type": "n8n-nodes-base.function",
"position": [
-1440,
240
],
"parameters": {
"functionCode": "const body = $json.body.form_response;\nconst answers = body.answers || [];\nconst fields = body.definition.fields || [];\n\n// yardımcı fonksiyon: field id'den title'ı bul\nfunction getTitleById(id) {\n return fields.find(f => f.id === id)?.title?.toLowerCase() || '';\n}\n\n// her answer için title-title eşlemesi kur\nconst data = {};\nfor (const a of answers) {\n const title = getTitleById(a.field.id);\n if (title.includes('first name')) data.first_name = a.text;\n if (title.includes('last name')) data.last_name = a.text;\n if (title.includes('company')) data.company = a.text;\n if (a.type === 'email') data.email = a.email;\n}\n\n// domain türet\nif (data.email && data.email.includes('@')) {\n data.domain = data.email.split('@')[1];\n}\n\nreturn [{ json: data }];\n"
},
"typeVersion": 1
},
{
"id": "c5fc8f5e-97d1-491e-88a3-bde1e341e190",
"name": "Hunter.io Verification",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1168,
240
],
"parameters": {
"url": "https://api.hunter.io/v2/email-verifier",
"options": {},
"queryParametersUi": {
"parameter": [
{
"name": "email",
"value": "={{$json.email}}"
},
{
"name": "Your_api_key_name",
"value": "="
}
]
}
},
"typeVersion": 1
},
{
"id": "676c92fb-6cc5-46c6-bf7e-142cbcfef69a",
"name": "IF High Priority",
"type": "n8n-nodes-base.if",
"position": [
-1616,
624
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json.lead_score}}",
"value2": 70,
"operation": "largerEqual"
}
]
}
},
"typeVersion": 1
},
{
"id": "74c6baa5-e2a4-4f31-afcc-420186c7c09c",
"name": "HubSpot Create Contact (Qualified)",
"type": "n8n-nodes-base.hubspot",
"position": [
-1168,
576
],
"parameters": {
"email": "={{ $('Extract Lead Data').item.json.email }}",
"options": {},
"additionalFields": {
"city": "={{ $('Lead Scoring & Routing Logic').item.json.locality }}",
"country": "={{ $('Lead Scoring & Routing Logic').item.json.country }}",
"industry": "={{ $('Lead Scoring & Routing Logic').item.json.industry }}",
"lastName": "={{ $('Extract Lead Data').item.json.last_name }}",
"firstName": "={{ $('Extract Lead Data').item.json.first_name }}",
"websiteUrl": "={{ $('Lead Scoring & Routing Logic').item.json.domain }}",
"companyName": "={{ $('Lead Scoring & Routing Logic').item.json.name }}",
"linkedinUrl": "={{ $('Lead Scoring & Routing Logic').item.json.linkedin_url }}",
"customPropertiesUi": {
"customPropertiesValues": [
{
"value": "={{ $('Lead Scoring & Routing Logic').item.json.lead_score }}",
"property": "lead_score"
},
{
"value": "={{ $('Lead Scoring & Routing Logic').item.json.lead_tier }}",
"property": "lead_tier"
},
{
"value": "Qualified",
"property": "lead_stage"
}
]
}
}
},
"typeVersion": 2.2
},
{
"id": "019e15fb-458d-4145-b391-ba81ddf0f3a9",
"name": "Abstract Company Enrichment",
"type": "n8n-nodes-base.httpRequest",
"position": [
-656,
240
],
"parameters": {
"url": "https://companyenrichment.abstractapi.com/v1/",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "your_api_key_name"
},
{
"name": "domain",
"value": "={{ $json.domain }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "8f58af1b-95ae-482e-84a8-60d00f76cff2",
"name": "Extract Domain for Abstract",
"type": "n8n-nodes-base.code",
"position": [
-912,
240
],
"parameters": {
"jsCode": "const email = $json.data?.email || ''\nlet domain = ''\nif (email.includes('@')) domain = email.split('@')[1]\nreturn [{ json: { domain } }]\n"
},
"typeVersion": 2
},
{
"id": "baca684a-bce0-4805-ac57-165abd08f72e",
"name": "Lead Scoring & Routing Logic",
"type": "n8n-nodes-base.function",
"position": [
-432,
240
],
"parameters": {
"functionCode": "const lead = $json;\n\nlet score = 0;\n\n// Şirket büyüklüğü\nif (lead.employees_count > 1000) score += 40;\nelse if (lead.employees_count > 100) score += 25;\nelse if (lead.employees_count > 10) score += 10;\n\n// Ülke önceliği (örnek)\nif (lead.country === 'United States' || lead.country === 'United Kingdom') score += 15;\n\n// Sektör hedefi\nconst targetIndustries = ['Software', 'Internet', 'Information Technology'];\nif (targetIndustries.includes(lead.industry)) score += 20;\n\n// E-posta domain kontrolü\nif (!lead.domain.includes('gmail') && !lead.domain.includes('yahoo')) score += 10;\n\n// LinkedIn bilgisi varsa\nif (lead.linkedin_url) score += 5;\n\n// Sonuç\nlet leadTier = 'Cold';\nif (score >= 70) leadTier = 'Hot';\nelse if (score >= 40) leadTier = 'Warm';\n\nreturn [{\n json: {\n ...lead,\n lead_score: score,\n lead_tier: leadTier,\n timestamp: new Date().toISOString()\n }\n}];\n"
},
"typeVersion": 1
},
{
"id": "a54a239f-65ca-4dd4-a7f1-fd0afe151212",
"name": "HubSpot Create Contact (Nurture)",
"type": "n8n-nodes-base.hubspot",
"position": [
-1168,
976
],
"parameters": {
"email": "={{ $('Extract Lead Data').item.json.email }}",
"options": {},
"additionalFields": {
"city": "={{ $('Lead Scoring & Routing Logic').item.json.locality }}",
"country": "={{ $('Lead Scoring & Routing Logic').item.json.country }}",
"industry": "={{ $('Lead Scoring & Routing Logic').item.json.industry }}",
"lastName": "={{ $('Extract Lead Data').item.json.last_name }}",
"firstName": "={{ $('Extract Lead Data').item.json.first_name }}",
"websiteUrl": "={{ $('Lead Scoring & Routing Logic').item.json.domain }}",
"companyName": "={{ $('Lead Scoring & Routing Logic').item.json.name }}",
"linkedinUrl": "={{ $('Lead Scoring & Routing Logic').item.json.linkedin_url }}",
"customPropertiesUi": {
"customPropertiesValues": [
{
"value": "={{ $('Lead Scoring & Routing Logic').item.json.lead_score }}",
"property": "lead_score"
},
{
"value": "={{ $('Lead Scoring & Routing Logic').item.json.lead_tier }}",
"property": "lead_tier"
},
{
"value": "Nurture",
"property": "lead_stage"
}
]
}
}
},
"typeVersion": 2.2
},
{
"id": "202ab634-fe41-4bed-a226-92b260bec673",
"name": "Slack Notification → 📨 Nurture Alert",
"type": "n8n-nodes-base.slack",
"position": [
-208,
720
],
"parameters": {
"text": "=🔥 *New Nurture Lead Alert*\n👋 Hey team, a lead is still in NURTURE stage:\n \n🏢 *{{ $json.results[0].properties.company }}* \n📧 {{ $json.results[0].properties.email }} \n💥 Score: {{ $json.results[0].properties.lead_score }} \n🕒 Checked: {{ new Date().toLocaleString('tr-TR') }}\n",
"attachments": [],
"otherOptions": {}
},
"typeVersion": 1
},
{
"id": "ac781aa1-cf6c-46e2-9838-370d24d8dd17",
"name": "Google Sheets Logging → 📊 Nurture Log",
"type": "n8n-nodes-base.googleSheets",
"position": [
-128,
1088
],
"parameters": {
"options": {},
"fieldsUi": {
"fieldValues": [
{
"fieldId": "Date",
"fieldValue": "={{ new Date().toISOString() }}"
},
{
"fieldId": "Company",
"fieldValue": "={{ $json.results[0].properties.company }}"
},
{
"fieldId": "Email",
"fieldValue": "={{ $json.results[0].properties.email }}"
},
{
"fieldId": "Lead Score",
"fieldValue": "={{ $json.results[0].properties.lead_score }}"
},
{
"fieldId": "Stage",
"fieldValue": "={{ $json.results[0].properties.lead_stage }}"
}
]
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"typeVersion": 3,
"alwaysOutputData": false
},
{
"id": "1bb371f4-cf6c-437b-818f-db1cadd281b7",
"name": "Wait (3 Days) → ⏳ Delay for Nurture Recheck",
"type": "n8n-nodes-base.wait",
"position": [
-896,
976
],
"webhookId": "13260a91-f65a-4815-8be3-56bf561a5021",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "5bf0857e-d999-45d6-80af-1a6c94ac21aa",
"name": "HubSpot API Check → 🔍 HubSpot Revalidation",
"type": "n8n-nodes-base.httpRequest",
"position": [
-528,
976
],
"parameters": {
"url": "https://api.hubapi.com",
"method": "POST",
"options": {},
"jsonBody": "{\n \"filterGroups\": [\n {\n \"filters\": [\n {\n \"propertyName\": \"lead_stage\",\n \"operator\": \"EQ\",\n \"value\": \"Nurture\"\n }\n ]\n }\n ],\n \"properties\": [\"email\", \"lead_score\", \"lead_stage\", \"firstname\", \"company\"]\n}\n",
"sendBody": true,
"specifyBody": "json"
},
"typeVersion": 4.2
},
{
"id": "437300af-f690-42f3-8bcb-7e0129a5694f",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1776,
-64
],
"parameters": {
"height": 448,
"content": "## 🟢 1. Webhook Trigger\n🧩 Entry Point — Receives form submissions from Typeform.\n\nAccepts POST requests containing lead info. \nWebhook path: `/webhook/new-lead-webhook`\n"
},
"typeVersion": 1
},
{
"id": "3a9b51fa-4fd5-47e8-96ce-3506aa9d1c32",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1504,
-64
],
"parameters": {
"height": 448,
"content": "## 🟦 2. Extract Lead Data\n🧠 Parses Typeform JSON to extract key fields:\n- first_name \n- last_name \n- email \n- company \n\nAutomatically derives the email domain for enrichment steps.\n"
},
"typeVersion": 1
},
{
"id": "3bf7700f-22a4-4f2a-90a9-1f7ee0d84963",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1232,
-64
],
"parameters": {
"width": 224,
"height": 448,
"content": "## 3.🟩 Hunter.io Verification\n✅ Verifies lead email validity using the Hunter.io API.\n\nEnsures only real and deliverable emails proceed to the next step.\n"
},
"typeVersion": 1
},
{
"id": "d08b19f0-81e9-414a-83c5-9f31dbef9355",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-992,
-64
],
"parameters": {
"height": 448,
"content": "## 4.🟨 Extract Domain for Abstract\n🧩 Extracts the domain from the lead’s email address.\n\nUsed as input for the Abstract API enrichment request.\n"
},
"typeVersion": 1
},
{
"id": "080bfdc2-9d7a-47c6-b62a-c2ddc11c717f",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
-64
],
"parameters": {
"height": 464,
"content": "## 5.🟧 Abstract Company Enrichment\n🌐 Calls Abstract API to enrich company details.\n\nFetches industry, employee count, location, and website metadata.\n"
},
"typeVersion": 1
},
{
"id": "4677193f-8ac3-4459-a15d-25bd4bbc72a2",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-480,
-64
],
"parameters": {
"width": 304,
"height": 464,
"content": "## 6.🟪 Lead Scoring & Routing Logic\n📊 Calculates lead score based on:\n- Company size\n- Target country\n- Industry match\n- Domain type (business vs. free)\n- LinkedIn presence\n\nAssigns lead_tier: Cold / Warm / Hot.\n"
},
"typeVersion": 1
},
{
"id": "d1de8db0-04f7-4d3a-88f3-4ca556eeb847",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1776,
480
],
"parameters": {
"width": 384,
"height": 272,
"content": "## 7.🔵 IF High Priority\n⚙️ Decision Node — Routes leads based on score:\n\n✅ TRUE (≥70): Qualified → HubSpot (Qualified Path) \n❌ FALSE (<70): Nurture → HubSpot (Nurture Path)\n"
},
"typeVersion": 1
},
{
"id": "2e3a2ff8-a594-4d06-b92b-2eb942a8bd2d",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1280,
432
],
"parameters": {
"width": 496,
"height": 320,
"content": "## 7.1 🟣 HubSpot Create Contact (Qualified)\n🚀 Creates “Qualified” contact in HubSpot CRM.\n\nIncludes enrichment data, lead score, and lead stage = Qualified.\n"
},
"typeVersion": 1
},
{
"id": "8a363f72-94d8-4765-ade8-97a14fd1eb35",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1280,
768
],
"parameters": {
"width": 288,
"height": 400,
"content": "## 7.2 🟤 HubSpot Create Contact (Nurture)\n🌱 Creates “Nurture” stage contact in HubSpot.\n\nUsed for lower-priority leads entering a recheck cycle.\n"
},
"typeVersion": 1
},
{
"id": "e1d27554-3d34-458c-a6d1-32d6f32b5fda",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-960,
768
],
"parameters": {
"width": 336,
"height": 400,
"content": "## 7.2.1 🟠 Wait (3 Days) → ⏳ Delay for Nurture Recheck\n⏳ Delays workflow for follow-up revalidation.\n\nCurrent test delay: 10 seconds \nProduction delay: 3 days\n"
},
"typeVersion": 1
},
{
"id": "b33cf27b-4fc7-4ceb-986b-61eb78011c93",
"name": "Sticky Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-608,
640
],
"parameters": {
"height": 528,
"content": "## 7.2.2 🔴 HubSpot API Check → 🔍 HubSpot Revalidation\n🔍 Queries HubSpot CRM for contacts still in Nurture stage.\n\nReturns latest info like:\n- Email\n- Company\n- Lead Score\n- Lead Stage\n"
},
"typeVersion": 1
},
{
"id": "6012ec36-0b0e-4aab-975e-66b42e64b0c3",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-336,
448
],
"parameters": {
"width": 288,
"height": 448,
"content": "## 7.2.2.1 🟢 Slack Notification → 📨 Nurture Alert\n💬 Sends Slack alert for leads still in NURTURE stage.\n\nIncludes:\n🏢 Company \n📧 Email \n💥 Lead Score \n🕒 Timestamp\n"
},
"typeVersion": 1
},
{
"id": "d0067eff-a672-4134-a5c9-f417b1b20a24",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
944
],
"parameters": {
"width": 432,
"height": 352,
"content": "## 7.2.2.2 🟣 Google Sheets Logging → 📊 Nurture Log \n📄 Appends lead details to Google Sheet “Nurture Follow-Up Log”.\n\nLogs:\n- Date\n- Company\n- Email\n- Lead Score\n- Stage\n"
},
"typeVersion": 1
},
{
"id": "2545a465-8e72-4c7e-9132-715d139af184",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1824,
912
],
"parameters": {
"width": 480,
"height": 176,
"content": "## 📝 Workflow Summary Note\n🧭 Smart Lead Routing & Qualification System\n\nAutomates lead intake, enrichment, scoring, and CRM sync.\nEcosystem:\n\nTypeform → Hunter.io → Abstract API → HubSpot → Slack → Sheets\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "d1c43050-e27d-4925-9e7b-b17ddea8324b",
"connections": {
"Webhook Trigger": {
"main": [
[
{
"node": "Extract Lead Data",
"type": "main",
"index": 0
}
]
]
},
"IF High Priority": {
"main": [
[
{
"node": "HubSpot Create Contact (Qualified)",
"type": "main",
"index": 0
}
],
[
{
"node": "HubSpot Create Contact (Nurture)",
"type": "main",
"index": 0
}
]
]
},
"Extract Lead Data": {
"main": [
[
{
"node": "Hunter.io Verification",
"type": "main",
"index": 0
}
]
]
},
"Hunter.io Verification": {
"main": [
[
{
"node": "Extract Domain for Abstract",
"type": "main",
"index": 0
}
]
]
},
"Abstract Company Enrichment": {
"main": [
[
{
"node": "Lead Scoring & Routing Logic",
"type": "main",
"index": 0
}
]
]
},
"Extract Domain for Abstract": {
"main": [
[
{
"node": "Abstract Company Enrichment",
"type": "main",
"index": 0
}
]
]
},
"Lead Scoring & Routing Logic": {
"main": [
[
{
"node": "IF High Priority",
"type": "main",
"index": 0
}
]
]
},
"HubSpot Create Contact (Nurture)": {
"main": [
[
{
"node": "Wait (3 Days) → ⏳ Delay for Nurture Recheck",
"type": "main",
"index": 0
}
]
]
},
"HubSpot Create Contact (Qualified)": {
"main": [
[]
]
},
"HubSpot API Check → 🔍 HubSpot Revalidation": {
"main": [
[
{
"node": "Google Sheets Logging → 📊 Nurture Log",
"type": "main",
"index": 0
},
{
"node": "Slack Notification → 📨 Nurture Alert",
"type": "main",
"index": 0
}
]
]
},
"Wait (3 Days) → ⏳ Delay for Nurture Recheck": {
"main": [
[
{
"node": "HubSpot API Check → 🔍 HubSpot Revalidation",
"type": "main",
"index": 0
}
]
]
}
}
}