使用Jotform的实时线索筛选、评分和CRM集成系统
高级
这是一个自动化工作流,包含 18 个节点。主要使用 Set, Code, Gmail, HttpRequest, GoogleSheets 等节点。 使用Jotform的实时线索筛选、评分和CRM集成系统
前置要求
- •Google 账号和 Gmail API 凭证
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
分类
-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "f21b811d-a4d7-4660-acf8-47db4b0b9d68",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
-80
],
"parameters": {
"color": 4,
"width": 360,
"height": 504,
"content": "## 🎯 潜在客户资格评定与分配"
},
"typeVersion": 1
},
{
"id": "af23f30f-ed4e-4b2a-8d49-a111e3614d85",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
-64
],
"parameters": {
"color": 5,
"width": 320,
"height": 508,
"content": "## 📝 Jotform 潜在客户捕获字段:"
},
"typeVersion": 1
},
{
"id": "3478568c-f381-4cab-8922-3bc9877c290e",
"name": "提取潜在客户数据",
"type": "n8n-nodes-base.set",
"position": [
128,
288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "company_name",
"name": "companyName",
"type": "string",
"value": "={{ $json.rawRequest['q3_companyName'] }}"
},
{
"id": "contact_name",
"name": "contactName",
"type": "string",
"value": "={{ $json.rawRequest['q4_contactName'] }}"
},
{
"id": "email",
"name": "email",
"type": "string",
"value": "={{ $json.rawRequest['q5_email'] }}"
},
{
"id": "phone",
"name": "phone",
"type": "string",
"value": "={{ $json.rawRequest['q6_phone'] }}"
},
{
"id": "company_size",
"name": "companySize",
"type": "string",
"value": "={{ $json.rawRequest['q7_companySize'] }}"
},
{
"id": "budget_range",
"name": "budgetRange",
"type": "string",
"value": "={{ $json.rawRequest['q8_budgetRange'] }}"
},
{
"id": "timeline",
"name": "timeline",
"type": "string",
"value": "={{ $json.rawRequest['q9_timeline'] }}"
},
{
"id": "industry",
"name": "industry",
"type": "string",
"value": "={{ $json.rawRequest['q10_industry'] }}"
},
{
"id": "current_solution",
"name": "currentSolution",
"type": "string",
"value": "={{ $json.rawRequest['q11_currentSolution'] }}"
},
{
"id": "pain_points",
"name": "painPoints",
"type": "string",
"value": "={{ $json.rawRequest['q12_painPoints'] }}"
},
{
"id": "submission_id",
"name": "submissionId",
"type": "string",
"value": "={{ $json.submissionID }}"
},
{
"id": "submitted_at",
"name": "submittedAt",
"type": "string",
"value": "={{ $now.toISO() }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "1a3f9d1d-5828-4c71-ab4a-e23c27632d12",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
-16
],
"parameters": {
"color": 6,
"width": 360,
"height": 524,
"content": "## 🤖 AI 潜在客户评分 (BANT)"
},
"typeVersion": 1
},
{
"id": "fd419f2d-a1ec-4895-8aea-db5c32d00378",
"name": "AI 潜在客户评分 (BANT)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
352,
288
],
"parameters": {
"text": "=Analyze this lead using the BANT framework (Budget, Authority, Need, Timeline) and provide comprehensive qualification:\n\nLEAD INFORMATION:\nCompany: {{ $json.companyName }}\nContact: {{ $json.contactName }}\nEmail: {{ $json.email }}\nPhone: {{ $json.phone }}\nCompany Size: {{ $json.companySize }}\nBudget Range: {{ $json.budgetRange }}\nTimeline: {{ $json.timeline }}\nIndustry: {{ $json.industry }}\nCurrent Solution: {{ $json.currentSolution }}\nPain Points: {{ $json.painPoints }}\n\nProvide analysis in JSON format:\n{\n \"leadScore\": 0-100,\n \"qualificationTier\": \"Hot/Warm/Cold/Unqualified\",\n \"bant\": {\n \"budget\": {\n \"score\": 0-25,\n \"assessment\": \"description\",\n \"hasBudget\": true/false\n },\n \"authority\": {\n \"score\": 0-25,\n \"assessment\": \"description\",\n \"decisionMaker\": true/false\n },\n \"need\": {\n \"score\": 0-25,\n \"assessment\": \"description\",\n \"painSeverity\": \"low/medium/high/critical\"\n },\n \"timeline\": {\n \"score\": 0-25,\n \"assessment\": \"description\",\n \"urgency\": \"immediate/1-3months/3-6months/6+months\"\n }\n },\n \"keyInsights\": [\"insight1\", \"insight2\"],\n \"redFlags\": [\"flag1\", \"flag2\"],\n \"opportunitySize\": \"small/medium/large/enterprise\",\n \"competitorVulnerability\": \"low/medium/high\",\n \"recommendedAction\": \"immediate call/email nurture/demo/disqualify\",\n \"idealSalesRep\": \"senior/mid-level/junior/SDR\",\n \"conversionProbability\": \"0-100%\",\n \"estimatedDealValue\": \"dollar amount or range\",\n \"nextSteps\": [\"step1\", \"step2\", \"step3\"],\n \"talkingPoints\": [\"point1\", \"point2\", \"point3\"]\n}",
"agent": "conversationalAgent",
"options": {
"systemMessage": "You are an expert B2B sales qualification analyst specializing in BANT methodology. Provide objective, data-driven lead assessments that help sales teams prioritize and convert opportunities effectively."
},
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "dce8517b-34e0-43fb-b141-cb50c9a995ec",
"name": "解析潜在客户评分",
"type": "n8n-nodes-base.set",
"position": [
592,
368
],
"parameters": {
"mode": "expressionData",
"options": {}
},
"typeVersion": 3.3
},
{
"id": "b2a76c34-bfc0-4770-8940-a23aa035769c",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
0
],
"parameters": {
"color": 7,
"width": 340,
"height": 524,
"content": "## 🎯 智能潜在客户路由"
},
"typeVersion": 1
},
{
"id": "8e08d7d2-c44c-41a6-8b92-2e9c8d3066b6",
"name": "智能路由逻辑",
"type": "n8n-nodes-base.code",
"position": [
832,
256
],
"parameters": {
"jsCode": "const salesTeam = {\n senior: [\n {\n name: \"Sarah Johnson\",\n email: \"sarah.johnson@company.com\",\n territory: [\"North America\", \"Europe\"],\n industries: [\"Technology\", \"Software\", \"SaaS\"],\n minDealSize: 50000,\n currentLeads: 8\n },\n {\n name: \"Michael Chen\",\n email: \"michael.chen@company.com\",\n territory: [\"Asia Pacific\", \"North America\"],\n industries: [\"Healthcare\", \"Finance\", \"Insurance\"],\n minDealSize: 75000,\n currentLeads: 6\n }\n ],\n midLevel: [\n {\n name: \"Jessica Martinez\",\n email: \"jessica.martinez@company.com\",\n territory: [\"North America\", \"Latin America\"],\n industries: [\"Retail\", \"E-commerce\", \"Manufacturing\"],\n minDealSize: 25000,\n currentLeads: 12\n },\n {\n name: \"David Williams\",\n email: \"david.williams@company.com\",\n territory: [\"Europe\", \"Middle East\"],\n industries: [\"Professional Services\", \"Consulting\", \"Education\"],\n minDealSize: 20000,\n currentLeads: 10\n }\n ],\n sdr: [\n {\n name: \"Emily Brown\",\n email: \"emily.brown@company.com\",\n territory: [\"All\"],\n industries: [\"All\"],\n minDealSize: 0,\n currentLeads: 25\n },\n {\n name: \"Alex Rodriguez\",\n email: \"alex.rodriguez@company.com\",\n territory: [\"All\"],\n industries: [\"All\"],\n minDealSize: 0,\n currentLeads: 22\n }\n ]\n};\n\nconst leadData = $input.first().json;\nconst leadScore = leadData.leadScore;\nconst qualificationTier = leadData.qualificationTier;\nconst industry = $('Extract Lead Data').first().json.industry;\nconst companySize = $('Extract Lead Data').first().json.companySize;\n\nlet repLevel;\nif (leadScore >= 75) {\n repLevel = 'senior';\n} else if (leadScore >= 50) {\n repLevel = 'midLevel';\n} else {\n repLevel = 'sdr';\n}\n\nlet assignedRep = null;\nconst eligibleReps = salesTeam[repLevel];\n\nlet matchedReps = eligibleReps.filter(rep => {\n if (repLevel === 'sdr') return true;\n return rep.industries.includes(industry) || rep.industries.includes('All');\n});\n\nif (matchedReps.length === 0) {\n matchedReps = eligibleReps;\n}\n\nassignedRep = matchedReps.reduce((prev, current) => {\n return (prev.currentLeads < current.currentLeads) ? prev : current;\n});\n\nconst output = {\n assignedRepName: assignedRep.name,\n assignedRepEmail: assignedRep.email,\n repLevel: repLevel,\n assignmentReason: `Assigned to ${assignedRep.name} (${repLevel}) based on lead score ${leadScore}, industry expertise (${industry}), and current workload (${assignedRep.currentLeads} leads)`,\n routingTimestamp: new Date().toISOString(),\n ...leadData,\n ...$('Extract Lead Data').first().json\n};\n\nreturn { json: output };"
},
"typeVersion": 2
},
{
"id": "7c7a47e3-855c-47fe-b054-4d51afe3caf3",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
16
],
"parameters": {
"color": 2,
"width": 320,
"height": 488,
"content": "## 📊 CRM 集成"
},
"typeVersion": 1
},
{
"id": "f7c5a245-2e9a-4de1-9cde-02cc7b6542a0",
"name": "创建 CRM 联系人",
"type": "n8n-nodes-base.httpRequest",
"position": [
1152,
336
],
"parameters": {
"url": "https://api.hubapi.com/crm/v3/objects/contacts",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "application/json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "hubspotApi"
},
"typeVersion": 4.2
},
{
"id": "3a7b7281-1ac9-44a7-acc4-18fc08f1ba2e",
"name": "便利贴5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1408,
0
],
"parameters": {
"color": 3,
"width": 340,
"height": 428,
"content": "## 📧 即时代表通知"
},
"typeVersion": 1
},
{
"id": "0b9c829c-dacb-4661-ad6a-fb611d94cfad",
"name": "通知销售代表",
"type": "n8n-nodes-base.gmail",
"position": [
1440,
272
],
"webhookId": "996cc104-f473-4071-bf4f-671bf6273036",
"parameters": {
"sendTo": "={{ $json.assignedRepEmail }}",
"message": "=<div style='font-family: Arial, sans-serif; max-width: 700px; margin: 0 auto;'>\n <div style='background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px;'>\n <h1 style='margin: 0;'>🎯 New {{ $json.qualificationTier }} Lead Assigned</h1>\n <p style='margin: 10px 0 0 0;'>Lead Score: <strong>{{ $json.leadScore }}/100</strong></p>\n </div>\n <div style='background-color: #f8f9fa; padding: 25px;'>\n <h2>Lead Information</h2>\n <p><strong>Contact:</strong> {{ $json.contactName }}</p>\n <p><strong>Company:</strong> {{ $json.companyName }}</p>\n <p><strong>Email:</strong> {{ $json.email }}</p>\n <p><strong>Phone:</strong> {{ $json.phone }}</p>\n <p><strong>Budget:</strong> {{ $json.budgetRange }}</p>\n <p><strong>Timeline:</strong> {{ $json.timeline }}</p>\n </div>\n <div style='background-color: #fff; padding: 25px;'>\n <h2>BANT Breakdown</h2>\n <p><strong>Budget:</strong> {{ $json.bant.budget.score }}/25</p>\n <p><strong>Authority:</strong> {{ $json.bant.authority.score }}/25</p>\n <p><strong>Need:</strong> {{ $json.bant.need.score }}/25</p>\n <p><strong>Timeline:</strong> {{ $json.bant.timeline.score }}/25</p>\n </div>\n <div style='background-color: #fff3cd; padding: 20px;'>\n <h3>Key Insights</h3>\n <ul>\n <li>{{ $json.keyInsights[0] }}</li>\n <li>{{ $json.keyInsights[1] }}</li>\n </ul>\n </div>\n <div style='background-color: #d4edda; padding: 20px;'>\n <h3>Next Steps</h3>\n <ol>\n <li>{{ $json.nextSteps[0] }}</li>\n <li>{{ $json.nextSteps[1] }}</li>\n </ol>\n </div>\n</div>",
"options": {},
"subject": "=🔥 {{ $json.qualificationTier }} Lead Assigned: {{ $json.companyName }} (Score: {{ $json.leadScore }})"
},
"credentials": {
"gmailOAuth2": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "f5428dc2-e235-43cd-8c45-5f8f15427064",
"name": "便签 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1408,
496
],
"parameters": {
"color": 5,
"width": 320,
"height": 408,
"content": "## 🔔 潜在客户确认邮件"
},
"typeVersion": 1
},
{
"id": "6c851b32-fcb9-49e3-8bbd-eded28c4d45a",
"name": "发送潜在客户确认",
"type": "n8n-nodes-base.gmail",
"position": [
1488,
784
],
"webhookId": "6744212d-d0e8-4b6d-80c4-9c0ebd30e4f3",
"parameters": {
"sendTo": "={{ $json.email }}",
"message": "=<div style='font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;'>\n <div style='background-color: #667eea; color: white; padding: 40px 30px; text-align: center;'>\n <h1>Thank You!</h1>\n <p>We've received your inquiry</p>\n </div>\n <div style='background-color: #fff; padding: 30px;'>\n <p>Hi {{ $json.contactName.split(' ')[0] }},</p>\n <p>Thank you for reaching out! Your dedicated account executive will contact you within 5 minutes.</p>\n <div style='background-color: #e7f3ff; padding: 20px; margin: 25px 0;'>\n <h3>Your Account Executive</h3>\n <p><strong>{{ $json.assignedRepName }}</strong></p>\n <p>Email: {{ $json.assignedRepEmail }}</p>\n </div>\n <p>We look forward to speaking with you soon!</p>\n </div>\n</div>",
"options": {},
"subject": "=Thank You for Your Interest!"
},
"credentials": {
"gmailOAuth2": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "29b61bc9-fd4a-4a14-bb7f-9b7e140fdf57",
"name": "便签 7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1776,
-144
],
"parameters": {
"color": 4,
"width": 340,
"height": 444,
"content": "## 📊 分析与跟踪"
},
"typeVersion": 1
},
{
"id": "2bfd82fb-6bcc-4fea-9315-9cbec720b5c1",
"name": "记录到跟踪表格",
"type": "n8n-nodes-base.googleSheets",
"position": [
1840,
160
],
"parameters": {
"columns": {
"value": {
"email": "={{ $json.email }}",
"phone": "={{ $json.phone }}",
"status": "Assigned - Awaiting Contact",
"urgency": "={{ $json.bant.timeline.urgency }}",
"industry": "={{ $json.industry }}",
"repEmail": "={{ $json.assignedRepEmail }}",
"repLevel": "={{ $json.repLevel }}",
"timeline": "={{ $json.timeline }}",
"leadScore": "={{ $json.leadScore }}",
"needScore": "={{ $json.bant.need.score }}",
"timestamp": "={{ $json.submittedAt }}",
"painPoints": "={{ $json.painPoints }}",
"assignedRep": "={{ $json.assignedRepName }}",
"budgetRange": "={{ $json.budgetRange }}",
"budgetScore": "={{ $json.bant.budget.score }}",
"companyName": "={{ $json.companyName }}",
"companySize": "={{ $json.companySize }}",
"contactName": "={{ $json.contactName }}",
"painSeverity": "={{ $json.bant.need.painSeverity }}",
"submissionId": "={{ $json.submissionId }}",
"timelineScore": "={{ $json.bant.timeline.score }}",
"authorityScore": "={{ $json.bant.authority.score }}",
"currentSolution": "={{ $json.currentSolution }}",
"opportunitySize": "={{ $json.opportunitySize }}",
"qualificationTier": "={{ $json.qualificationTier }}",
"recommendedAction": "={{ $json.recommendedAction }}",
"estimatedDealValue": "={{ $json.estimatedDealValue }}",
"conversionProbability": "={{ $json.conversionProbability }}"
},
"mappingMode": "defineBelow"
},
"options": {
"useAppend": true,
"cellFormat": "USER_ENTERED"
},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Lead_Tracking"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "JS0O9ZlbKZP6B2eb",
"name": "jitesh0dugar@gmail.com"
}
},
"typeVersion": 4.4
},
{
"id": "0d3530bd-ce11-4a5a-be07-44638c275989",
"name": "Jotform触发器",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-32,
272
],
"webhookId": "lead-capture-webhook",
"parameters": {
"form": "252862984356471"
},
"credentials": {
"jotFormApi": {
"id": "W7O1b225FpOwkwDT",
"name": "JotForm account-Deepanshi"
}
},
"typeVersion": 1
},
{
"id": "2bffc5a1-a5f4-474c-8150-5fee7ca604cf",
"name": "OpenAI 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
352,
448
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8IkhtT3EbXygnvcr",
"name": "Klinsman OpenAI"
}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"Jotform Trigger": {
"main": [
[
{
"node": "Extract Lead Data",
"type": "main",
"index": 0
}
]
]
},
"Parse Lead Score": {
"main": [
[
{
"node": "Intelligent Routing Logic",
"type": "main",
"index": 0
}
]
]
},
"Extract Lead Data": {
"main": [
[
{
"node": "AI Lead Scoring (BANT)",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Lead Scoring (BANT)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"AI Lead Scoring (BANT)": {
"main": [
[
{
"node": "Parse Lead Score",
"type": "main",
"index": 0
}
]
]
},
"Intelligent Routing Logic": {
"main": [
[
{
"node": "Create CRM Contact",
"type": "main",
"index": 0
},
{
"node": "Notify Sales Rep",
"type": "main",
"index": 0
},
{
"node": "Send Lead Confirmation",
"type": "main",
"index": 0
},
{
"node": "Log to Tracking Sheet",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
AI医疗分诊:智能分诊、医生简报和紧急情况检测
基于GPT-4和JotForm的医疗分诊与预约自动化
If
Set
Code
+8
22 节点Jitesh Dugar
AI 驱动的招聘:使用 Jotform 进行简历筛选和候选人路由
简历筛选与候选人路由,使用GPT-4o-mini、Jotform和Google Sheets
If
Set
Code
+10
20 节点Jitesh Dugar
使用 GPT-4 分析和 JotForm 离职面谈自动化员工离职流程
使用 GPT-4 分析和 JotForm 离职面谈实现员工离职流程自动化
If
Set
Code
+6
20 节点Jitesh Dugar
使用 JotForm、GPT-4o-mini 和 Google Workspace 自动化员工入职
使用 JotForm、GPT-4o-mini 和 Google Workspace 实现员工入职自动化
If
Set
Code
+6
14 节点Jitesh Dugar
使用 Jotform、GPT-4 分析和 Gmail 通知自动化贷款预审批
使用 Jotform、GPT-4 分析和 Gmail 通知自动化贷款预审批
If
Set
Code
+6
21 节点Jitesh Dugar
使用GPT-4o-mini、JotForm和Gmail自动化物业维护请求
使用GPT-4o-mini、JotForm和Gmail自动化物业维护请求
If
Set
Code
+6
21 节点Jitesh Dugar
工作流信息
难度等级
高级
节点数量18
分类-
节点类型9
作者
Jitesh Dugar
@jiteshdugarAI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.
外部链接
在 n8n.io 查看 →
分享此工作流