AutomationFlowsAI & RAG › AI Lead Scoring & Qualification System

AI Lead Scoring & Qualification System

AI Lead Scoring & Qualification System. Uses httpRequest, openAi, slack, emailSend. Webhook trigger; 11 nodes.

Webhook trigger★★★★☆ complexityAI-powered11 nodesHTTP RequestOpenAISlackEmail SendGoogle Sheets
AI & RAG Trigger: Webhook Nodes: 11 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Emailsend → Google Sheets 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
{
  "name": "AI Lead Scoring & Qualification System",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "new-lead",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "ls1a2b3c-1111-2222-3333-444455556666",
      "name": "Lead Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "url": "=https://person.clearbit.com/v2/people/find?email={{ $json.email }}",
        "options": {
          "response": {
            "response": {
              "fullResponse": true
            }
          }
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_CLEARBIT_API_KEY"
            }
          ]
        }
      },
      "id": "ls2b3c4d-2222-3333-4444-555566667777",
      "name": "Enrich Lead Data",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [
        480,
        300
      ]
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4",
          "mode": "id"
        },
        "messages": {
          "values": [
            {
              "content": "=Analyze this lead and provide a comprehensive scoring:\n\nLead Info:\n- Name: {{ $json.name || 'Unknown' }}\n- Email: {{ $json.email }}\n- Company: {{ $json.company || 'Unknown' }}\n- Industry: {{ $json.enrichment?.company?.category?.industry || 'Unknown' }}\n- Company Size: {{ $json.enrichment?.company?.metrics?.employees || 'Unknown' }}\n- Message: {{ $json.message }}\n\nReturn JSON with:\n- fit_score (0-100): How well this lead matches our ideal customer profile\n- intent_score (0-100): How likely they are to buy based on their message\n- engagement_score (0-100): Level of engagement shown\n- overall_score (0-100): Weighted average\n- lead_grade (A, B, C, D): Based on overall score\n- recommended_action (immediate_call, email_sequence, nurture, discard)\n- key_strengths (array)\n- concerns (array)\n\nReturn only JSON."
            }
          ]
        },
        "options": {
          "temperature": 0.3
        }
      },
      "id": "ls3c4d5e-3333-4444-5555-666677778888",
      "name": "AI Lead Scoring",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.3,
      "position": [
        710,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ JSON.parse($json.message.content).overall_score }}",
              "value2": 80,
              "operation": "largerEqual"
            }
          ]
        }
      },
      "id": "ls4d5e6f-4444-5555-6666-777788889999",
      "name": "Check Hot Lead",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        940,
        300
      ]
    },
    {
      "parameters": {
        "channel": "#hot-leads",
        "text": "=\ud83d\udd25 HOT LEAD ALERT!\n\nScore: {{ JSON.parse($('AI Lead Scoring').item.json.message.content).overall_score }}/100\nGrade: {{ JSON.parse($('AI Lead Scoring').item.json.message.content).lead_grade }}\n\nLead: {{ $('Lead Webhook').item.json.name }}\nEmail: {{ $('Lead Webhook').item.json.email }}\nCompany: {{ $('Lead Webhook').item.json.company }}\n\nRecommended Action: {{ JSON.parse($('AI Lead Scoring').item.json.message.content).recommended_action }}\n\n\u26a1 Call this lead IMMEDIATELY!",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "id": "ls5e6f7a-5555-6666-7777-888899990000",
      "name": "Slack Hot Lead Alert",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.1,
      "position": [
        1170,
        200
      ]
    },
    {
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ JSON.parse($json.message.content).overall_score }}",
              "value2": 50,
              "operation": "largerEqual"
            }
          ]
        }
      },
      "id": "ls6f7a8b-6666-7777-8888-999900001111",
      "name": "Check Warm Lead",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1170,
        400
      ]
    },
    {
      "parameters": {
        "fromEmail": "sales@yourcompany.com",
        "toEmail": "={{ $('Lead Webhook').item.json.email }}",
        "subject": "=Thanks for your interest! Let's talk",
        "emailType": "text",
        "message": "=Hi {{ $('Lead Webhook').item.json.name }},\n\nThank you for reaching out! We're excited to learn more about your needs.\n\nA member of our sales team will contact you within 24 hours to schedule a personalized demo.\n\nIn the meantime, feel free to check out our resources: [link]\n\nBest regards,\nSales Team",
        "options": {}
      },
      "id": "ls7a8b9c-7777-8888-9999-000011112222",
      "name": "Send Personal Email",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        1400,
        200
      ]
    },
    {
      "parameters": {
        "fromEmail": "marketing@yourcompany.com",
        "toEmail": "={{ $('Lead Webhook').item.json.email }}",
        "subject": "=Welcome! Here's something valuable for you",
        "emailType": "text",
        "message": "=Hi {{ $('Lead Webhook').item.json.name }},\n\nThanks for your interest in our solution!\n\nWe've put together some resources that might help:\n- Blog post: [link]\n- Case study: [link]\n- Free trial: [link]\n\nWe'll be in touch soon with more personalized content.\n\nBest,\nMarketing Team",
        "options": {}
      },
      "id": "ls8b9c0d-8888-9999-0000-111122223333",
      "name": "Send Nurture Email",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        1400,
        400
      ]
    },
    {
      "parameters": {
        "fromEmail": "noreply@yourcompany.com",
        "toEmail": "={{ $('Lead Webhook').item.json.email }}",
        "subject": "=Thank you for contacting us",
        "emailType": "text",
        "message": "=Hello,\n\nThank you for reaching out. We've received your message and will review it.\n\nIf your needs match our solutions, we'll get back to you soon.\n\nBest regards",
        "options": {}
      },
      "id": "ls9c0d1e-9999-0000-1111-222233334444",
      "name": "Send Generic Email",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        1400,
        600
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "YOUR_GOOGLE_SHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Leads",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "timestamp": "={{ $now.toISO() }}",
            "name": "={{ $('Lead Webhook').item.json.name }}",
            "email": "={{ $('Lead Webhook').item.json.email }}",
            "company": "={{ $('Lead Webhook').item.json.company }}",
            "industry": "={{ $('Enrich Lead Data').item.json.enrichment?.company?.category?.industry || 'Unknown' }}",
            "company_size": "={{ $('Enrich Lead Data').item.json.enrichment?.company?.metrics?.employees || 'Unknown' }}",
            "message": "={{ $('Lead Webhook').item.json.message }}",
            "fit_score": "={{ JSON.parse($('AI Lead Scoring').item.json.message.content).fit_score }}",
            "intent_score": "={{ JSON.parse($('AI Lead Scoring').item.json.message.content).intent_score }}",
            "engagement_score": "={{ JSON.parse($('AI Lead Scoring').item.json.message.content).engagement_score }}",
            "overall_score": "={{ JSON.parse($('AI Lead Scoring').item.json.message.content).overall_score }}",
            "lead_grade": "={{ JSON.parse($('AI Lead Scoring').item.json.message.content).lead_grade }}",
            "recommended_action": "={{ JSON.parse($('AI Lead Scoring').item.json.message.content).recommended_action }}",
            "status": "={{ $('Check Hot Lead').item.json ? 'Hot - Immediate Action' : $('Check Warm Lead').item.json ? 'Warm - Nurturing' : 'Cold - General' }}",
            "assigned_to": "=Auto-assigned based on region"
          },
          "schema": []
        },
        "options": {}
      },
      "id": "ls0d1e2f-0000-1111-2222-333344445555",
      "name": "Save to CRM",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        1630,
        400
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={\"status\": \"success\", \"lead_id\": \"{{ $now.toMillis() }}\", \"overall_score\": \"{{ JSON.parse($('AI Lead Scoring').item.json.message.content).overall_score }}\", \"lead_grade\": \"{{ JSON.parse($('AI Lead Scoring').item.json.message.content).lead_grade }}\", \"recommended_action\": \"{{ JSON.parse($('AI Lead Scoring').item.json.message.content).recommended_action }}\", \"message\": \"Lead processed and scored successfully\"}",
        "options": {}
      },
      "id": "ls1e2f3a-1111-2222-3333-444455556666",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        1860,
        400
      ]
    }
  ],
  "connections": {
    "Lead Webhook": {
      "main": [
        [
          {
            "node": "Enrich Lead Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enrich Lead Data": {
      "main": [
        [
          {
            "node": "AI Lead Scoring",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Lead Scoring": {
      "main": [
        [
          {
            "node": "Check Hot Lead",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Hot Lead": {
      "main": [
        [
          {
            "node": "Slack Hot Lead Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check Warm Lead",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Warm Lead": {
      "main": [
        [
          {
            "node": "Send Nurture Email",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Generic Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack Hot Lead Alert": {
      "main": [
        [
          {
            "node": "Send Personal Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Personal Email": {
      "main": [
        [
          {
            "node": "Save to CRM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Nurture Email": {
      "main": [
        [
          {
            "node": "Save to CRM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Generic Email": {
      "main": [
        [
          {
            "node": "Save to CRM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to CRM": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}
Pro

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

About this workflow

AI Lead Scoring & Qualification System. Uses httpRequest, openAi, slack, emailSend. Webhook trigger; 11 nodes.

Source: https://github.com/kooroosh1363/agentic-automation-lab/blob/main/08-lead-scoring/workflow.json — 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

This n8n workflow orchestrates a powerful suite of AI Agents and automations to manage and optimize various aspects of an e-commerce operation, particularly for platforms like Shopify. It leverages La

Google Sheets, HTTP Request, Slack +10
AI & RAG

Stop treating document review as a manual task. Let AI extract, classify, and route every contract, invoice, and NDA automatically.

HTTP Request, Chain Llm, Email Send +4
AI & RAG

This workflow provides real-time detection of ransomware encryption patterns using Claude AI, with automated system isolation and incident response. File System Monitoring - Continuously monitors file

Agent, Anthropic Chat, HTTP Request +3
AI & RAG

Law firms in corporate, litigation, or family law needing streamlined case and contract management.

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

Automates fraud risk detection for financial transactions by analyzing real-time webhook events through AI-powered scoring. Target audience: fintech companies, payment processors, and banking teams pr

Agent, OpenAI Chat, Output Parser Structured +4