8
n8n 中文网amn8n.com

使用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)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量18
分类-
节点类型9
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Jitesh Dugar

Jitesh Dugar

@jiteshdugar

AI 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 查看

分享此工作流