AutomationFlowsAI & RAG › Real-time Lead Qualification, Scoring & CRM Integration System Using Jotform

Real-time Lead Qualification, Scoring & CRM Integration System Using Jotform

ByJitesh Dugar @jiteshdugar on n8n.io

Transform lead chaos into systematic qualification and instant routing - achieving 5-minute response times, 300% conversion increase, and eliminating sales team conflicts through AI-powered BANT scoring and intelligent territory assignment.

Event trigger★★★★☆ complexityAI-powered18 nodesAgentHTTP RequestGmailGoogle SheetsJot Form TriggerOpenAI Chat
AI & RAG Trigger: Event Nodes: 18 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9815 — we link there as the canonical source.

This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "f21b811d-a4d7-4660-acf8-47db4b0b9d68",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -448,
        -80
      ],
      "parameters": {
        "color": 4,
        "width": 360,
        "height": 504,
        "content": "## \ud83c\udfaf Lead Qualification & Distribution\n\n**Purpose:** Transform lead chaos into systematic qualification and instant routing to the right sales rep\n\n**Key Features:**\n- AI-powered BANT lead scoring\n- Intelligent territory/industry routing\n- Automatic CRM contact creation\n- Instant rep notifications\n- 24-hour follow-up escalation\n- Complete lead tracking\n\n**ROI:** 5-min response time, 300% conversion increase"
      },
      "typeVersion": 1
    },
    {
      "id": "af23f30f-ed4e-4b2a-8d49-a111e3614d85",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        -64
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 508,
        "content": "## \ud83d\udcdd Jotform Lead Capture Fields:\n- Company Name (q3_companyName)\n- Contact Name (q4_contactName)\n- Email (q5_email)\n- Phone (q6_phone)\n- Company Size (q7_companySize)\n- Budget Range (q8_budgetRange)\n- Timeline (q9_timeline)\n- Industry (q10_industry)\n- Current Solution (q11_currentSolution)\n- Pain Points (q12_painPoints)\nCreate your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade)"
      },
      "typeVersion": 1
    },
    {
      "id": "3478568c-f381-4cab-8922-3bc9877c290e",
      "name": "Extract Lead Data",
      "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": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        -16
      ],
      "parameters": {
        "color": 6,
        "width": 360,
        "height": 524,
        "content": "## \ud83e\udd16 AI Lead Scoring (BANT)\n\n**Analyzes:**\n- Budget: Financial capacity assessment\n- Authority: Decision-maker identification\n- Need: Pain point severity analysis\n- Timeline: Purchase urgency evaluation\n\n**Outputs:**\n- Lead score (0-100)\n- Qualification tier (Hot/Warm/Cold)\n- Routing recommendation\n- Follow-up strategy"
      },
      "typeVersion": 1
    },
    {
      "id": "fd419f2d-a1ec-4895-8aea-db5c32d00378",
      "name": "AI Lead Scoring (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": "Parse Lead Score",
      "type": "n8n-nodes-base.set",
      "position": [
        592,
        368
      ],
      "parameters": {
        "mode": "expressionData",
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "b2a76c34-bfc0-4770-8940-a23aa035769c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 340,
        "height": 524,
        "content": "## \ud83c\udfaf Intelligent Lead Routing\n\n**Routing Logic:**\n- Hot Leads (Score 75+) \u2192 Senior Sales Rep\n- Warm Leads (50-74) \u2192 Mid-Level Rep\n- Cold Leads (25-49) \u2192 SDR/Nurture\n- Unqualified (<25) \u2192 Marketing Nurture\n\n**Factors Considered:**\n- Territory assignment\n- Industry expertise\n- Deal size capacity\n- Current workload"
      },
      "typeVersion": 1
    },
    {
      "id": "8e08d7d2-c44c-41a6-8b92-2e9c8d3066b6",
      "name": "Intelligent Routing Logic",
      "type": "n8n-nodes-base.code",
      "position": [
        832,
        256
      ],
      "parameters": {
        "jsCode": "const salesTeam = {\n  senior: [\n    {\n      name: \"Sarah Johnson\",\n      email: \"user@example.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: \"user@example.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: \"user@example.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: \"user@example.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: \"user@example.com\",\n      territory: [\"All\"],\n      industries: [\"All\"],\n      minDealSize: 0,\n      currentLeads: 25\n    },\n    {\n      name: \"Alex Rodriguez\",\n      email: \"user@example.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": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        16
      ],
      "parameters": {
        "color": 2,
        "width": 320,
        "height": 488,
        "content": "## \ud83d\udcca CRM Integration\n\n**Creates Contact Record With:**\n- Complete lead information\n- AI qualification scores\n- BANT assessment details\n- Assigned sales rep\n- Next steps & talking points\n- Timestamp tracking\n\n**Integrates with:** HubSpot, Salesforce, Pipedrive, or any CRM via API"
      },
      "typeVersion": 1
    },
    {
      "id": "f7c5a245-2e9a-4de1-9cde-02cc7b6542a0",
      "name": "Create CRM Contact",
      "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": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1408,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 340,
        "height": 428,
        "content": "## \ud83d\udce7 Instant Rep Notification\n\n**Email Includes:**\n- Complete lead profile\n- AI qualification summary\n- BANT score breakdown\n- Key insights & red flags\n- Recommended next steps\n- Pre-written talking points\n- One-click CRM access\n\n**Ensures:** Sub-5-minute response time"
      },
      "typeVersion": 1
    },
    {
      "id": "0b9c829c-dacb-4661-ad6a-fb611d94cfad",
      "name": "Notify Sales Rep",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1440,
        272
      ],
      "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;'>\ud83c\udfaf 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": "=\ud83d\udd25 {{ $json.qualificationTier }} Lead Assigned: {{ $json.companyName }} (Score: {{ $json.leadScore }})"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f5428dc2-e235-43cd-8c45-5f8f15427064",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1408,
        496
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 408,
        "content": "## \ud83d\udd14 Lead Confirmation Email\n\n**Sent to Lead:**\n- Thank you message\n- Next steps timeline\n- Contact info of assigned rep\n- Company overview\n- What to expect\n\n**Builds Trust:** Immediate response shows professionalism and sets expectations"
      },
      "typeVersion": 1
    },
    {
      "id": "6c851b32-fcb9-49e3-8bbd-eded28c4d45a",
      "name": "Send Lead Confirmation",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1488,
        784
      ],
      "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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "29b61bc9-fd4a-4a14-bb7f-9b7e140fdf57",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1776,
        -144
      ],
      "parameters": {
        "color": 4,
        "width": 340,
        "height": 444,
        "content": "## \ud83d\udcca Analytics & Tracking\n\n**Logs to Google Sheets:**\n- Complete lead details\n- AI scoring breakdown\n- Assignment information\n- Timestamps for tracking\n- Response time metrics\n- Conversion tracking\n\n**Enables:** Performance analysis, rep comparison, lead source ROI"
      },
      "typeVersion": 1
    },
    {
      "id": "2bfd82fb-6bcc-4fea-9315-9cbec720b5c1",
      "name": "Log to Tracking Sheet",
      "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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "0d3530bd-ce11-4a5a-be07-44638c275989",
      "name": "Jotform Trigger",
      "type": "n8n-nodes-base.jotFormTrigger",
      "position": [
        -32,
        272
      ],
      "parameters": {
        "form": "252862984356471"
      },
      "credentials": {
        "jotFormApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2bffc5a1-a5f4-474c-8150-5fee7ca604cf",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        352,
        448
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Transform lead chaos into systematic qualification and instant routing - achieving 5-minute response times, 300% conversion increase, and eliminating sales team conflicts through AI-powered BANT scoring and intelligent territory assignment.

Source: https://n8n.io/workflows/9815/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Transform guest complaints into loyalty opportunities - achieving 60% reduction in negative reviews, 85% faster service recovery, and turning dissatisfied guests into brand advocates through AI-powere

Agent, Gmail, HTTP Request +3
AI & RAG

Transform patient intake from paperwork chaos into intelligent, automated triage that detects emergencies, prepares providers with comprehensive briefs, and streamlines scheduling—improving patient sa

Agent, OpenAI Chat, Output Parser Structured +4
AI & RAG

Revolutionize your recruitment process with intelligent AI-driven candidate screening that evaluates resumes, scores applicants, and automatically routes them based on fit - saving 10-15 hours per wee

HTTP Request, OpenAI, Agent +6
AI & RAG

This template automates the entire appointment request lifecycle using AI. When someone submits an appointment request through JotForm, the system automatically sends details for approval, generates p

Output Parser Structured, Jot Form Trigger, Telegram +5
AI & RAG

Want to skip the manual work and instantly generate SWOT analyses for your business plans, investor decks, or strategy docs? 🚀 This workflow lets you automate the entire SWOT (Strengths, Weaknesses, O

Google Sheets, Agent, Output Parser Structured +4