{
  "id": "6Ii0TKRfx0OL6DQG",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Form-Based Lead Qualifier with Plain-English ICP (Claude)",
  "tags": [],
  "nodes": [
    {
      "id": "b797e1ad-1df5-4285-9402-f1f7c830cd79",
      "name": "Sticky Note - Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        32
      ],
      "parameters": {
        "color": 4,
        "width": 420,
        "height": 752,
        "content": "## Form-Based Lead Qualifier with Plain-English ICP (n8n + Claude)\n\n**Who it's for:** You collect inbound form fills and need to know which ones are worth a fast reply.\n\n**What it does:** Claude (or model of your choosing) scores each n8n Form submission against an ICP you write in plain English. Every lead is logged. Leads above your threshold trigger Slack and email alerts.\n\n**How it works:**\n1. An n8n Form captures the lead (either have a link to this form on your website/email or where you see fit)\n2. The Config node holds your ICP, threshold, Slack channel, and alert email.\n3. Claude returns a fit score, tier, reasoning, and suggested next step.\n4. Every lead gets appended to Google Sheets.\n5. An IF node escalates only leads at or above your threshold.\n\n**How to use:**\n- Connect Anthropic, Google Sheets, Slack and Gmail.\n- Replace the Sheet ID and alert email.\n- Edit the ICP and threshold in Config.\n- Tweak the form fields, then turn it on and share the form link."
      },
      "typeVersion": 1
    },
    {
      "id": "687662ba-88ba-43e1-af7c-f2962f817d65",
      "name": "Sticky Note - Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        80
      ],
      "parameters": {
        "color": 5,
        "width": 220,
        "height": 412,
        "content": "### Setup\nWrite your ICP and hot-lead threshold in **Config**. Replace the Sheet ID and alert email, then connect Claude, Sheets, Slack and Gmail."
      },
      "typeVersion": 1
    },
    {
      "id": "ff106f9e-bb0d-4e39-a409-de7e682d04bb",
      "name": "Sticky Note - AI",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        80
      ],
      "parameters": {
        "color": 7,
        "width": 284,
        "height": 432,
        "content": "### 1. Score with Claude\nReturns JSON: a fit score (0-100), a tier, reasoning, and a suggested next step, all judged against your ICP."
      },
      "typeVersion": 1
    },
    {
      "id": "ae965b79-ef9b-4660-a1c8-f2f623c92cbe",
      "name": "Sticky Note - Route",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        80
      ],
      "parameters": {
        "color": 7,
        "width": 732,
        "height": 556,
        "content": "### 2. Log everything, escalate the hot ones\nEvery lead goes to the sheet. The IF node only pushes leads at or above your threshold to Slack and email."
      },
      "typeVersion": 1
    },
    {
      "id": "8b2e104b-a9a0-417b-9813-319d096b79fb",
      "name": "Lead Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        304,
        352
      ],
      "parameters": {
        "options": {},
        "formTitle": "Work with us",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Name",
              "requiredField": true
            },
            {
              "fieldType": "email",
              "fieldLabel": "Email",
              "requiredField": true
            },
            {
              "fieldLabel": "Company website"
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Monthly budget",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Under $1k"
                  },
                  {
                    "option": "$1k - $5k"
                  },
                  {
                    "option": "$5k+"
                  }
                ]
              }
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "What do you need help with?",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Tell us a bit about your project and we'll be in touch."
      },
      "typeVersion": 2.2
    },
    {
      "id": "1d171d3b-8969-4b1d-96c0-0c5c523f4294",
      "name": "Config (edit me)",
      "type": "n8n-nodes-base.set",
      "position": [
        624,
        352
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1",
              "name": "icp_definition",
              "type": "string",
              "value": "Ideal client: US marketing agency, 5-25 employees, $500K-$5M revenue, running outbound or cold email for clients, with budget of $5k+/mo. Strong negative signals: solo freelancer, under $1k budget, no website, or asking for free work."
            },
            {
              "id": "a2",
              "name": "hot_threshold",
              "type": "number",
              "value": 70
            },
            {
              "id": "a3",
              "name": "slack_channel",
              "type": "string",
              "value": "#hot-leads"
            },
            {
              "id": "a4",
              "name": "notify_email",
              "type": "string",
              "value": "you@example.com"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f64d6887-560c-4201-83e0-c236bc968947",
      "name": "Score Lead Fit",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        992,
        352
      ],
      "parameters": {
        "text": "=You qualify inbound leads against an ideal customer profile.\n\nICP DEFINITION:\n{{ $('Config (edit me)').item.json.icp_definition }}\n\nLEAD SUBMISSION:\nName: {{ $('Lead Form').item.json.Name }}\nEmail: {{ $('Lead Form').item.json.Email }}\nWebsite: {{ $('Lead Form').item.json['Company website'] }}\nBudget: {{ $('Lead Form').item.json['Monthly budget'] }}\nNeed: {{ $('Lead Form').item.json['What do you need help with?'] }}\n\nTASK:\n1. Score fit 0-100 against the ICP.\n2. Assign a tier: hot, warm, or cold.\n3. Give one sentence of reasoning.\n4. Recommend the next action (e.g. 'book a call', 'send case study', 'nurture', 'disqualify').",
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.4
    },
    {
      "id": "ddbe2509-2626-4e19-9563-13ea45711693",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        896,
        656
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-6",
          "cachedResultName": "Claude Sonnet 4.6"
        },
        "options": {
          "temperature": 0.2
        }
      },
      "credentials": {
        "anthropicApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "8cf63028-4234-4d44-a711-44fa82de657c",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1168,
        592
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"fit_score\": 84,\n  \"tier\": \"hot\",\n  \"reasoning\": \"Mid-size agency, $5k+ budget, explicitly wants cold email built.\",\n  \"recommended_action\": \"book a call\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "66088e54-b1bf-4f03-8663-d4f470ced7a0",
      "name": "Log Lead to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1408,
        352
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $('Lead Form').item.json.Name }}",
            "tier": "={{ $json.output.tier }}",
            "email": "={{ $('Lead Form').item.json.Email }}",
            "budget": "={{ $('Lead Form').item.json['Monthly budget'] }}",
            "website": "={{ $('Lead Form').item.json['Company website'] }}",
            "fit_score": "={{ $json.output.fit_score }}",
            "reasoning": "={{ $json.output.reasoning }}",
            "recommended_action": "={{ $json.output.recommended_action }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Leads",
          "cachedResultName": "Leads"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "3fba5f94-67e6-4f9b-ae09-c346d9db6396",
      "name": "Is Hot Lead?",
      "type": "n8n-nodes-base.if",
      "position": [
        1648,
        352
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $('Score Lead Fit').item.json.output.fit_score }}",
              "rightValue": "={{ $('Config (edit me)').item.json.hot_threshold }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "788d50fd-a771-4d25-ac36-6ad42d4776c9",
      "name": "Notify Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        1888,
        256
      ],
      "parameters": {
        "text": "=:rotating_light: *Hot lead*, score {{ $('Score Lead Fit').item.json.output.fit_score }}\n{{ $('Lead Form').item.json.Name }} ({{ $('Lead Form').item.json.Email }})\nAction: {{ $('Score Lead Fit').item.json.output.recommended_action }}\nWhy: {{ $('Score Lead Fit').item.json.output.reasoning }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "={{ $('Config (edit me)').item.json.slack_channel }}"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "d9eb7884-fd8a-431f-9053-61348746843e",
      "name": "Email Hot Lead Alert",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1888,
        480
      ],
      "parameters": {
        "sendTo": "={{ $('Config (edit me)').item.json.notify_email }}",
        "message": "=New hot lead from your site.\n\nName: {{ $('Lead Form').item.json.Name }}\nEmail: {{ $('Lead Form').item.json.Email }}\nWebsite: {{ $('Lead Form').item.json['Company website'] }}\nBudget: {{ $('Lead Form').item.json['Monthly budget'] }}\nNeed: {{ $('Lead Form').item.json['What do you need help with?'] }}\n\nScore: {{ $('Score Lead Fit').item.json.output.fit_score }} ({{ $('Score Lead Fit').item.json.output.tier }})\nRecommended action: {{ $('Score Lead Fit').item.json.output.recommended_action }}\nReasoning: {{ $('Score Lead Fit').item.json.output.reasoning }}",
        "options": {},
        "subject": "=Hot lead: {{ $('Lead Form').item.json.Name }} ({{ $('Score Lead Fit').item.json.output.fit_score }})",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "97f8d657-b3fa-48de-927f-4616676a8ec2",
      "name": "Sticky Note - Setup1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        448
      ],
      "parameters": {
        "color": 5,
        "width": 220,
        "height": 348,
        "content": "### Model Selection\nCurrently using Claude but feel free to substitute a model of your choosing "
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "c902576f-5a25-4f08-b85c-26e0d2a264eb",
  "nodeGroups": [],
  "connections": {
    "Lead Form": {
      "main": [
        [
          {
            "node": "Config (edit me)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Hot Lead?": {
      "main": [
        [
          {
            "node": "Notify Slack",
            "type": "main",
            "index": 0
          },
          {
            "node": "Email Hot Lead Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Score Lead Fit": {
      "main": [
        [
          {
            "node": "Log Lead to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Config (edit me)": {
      "main": [
        [
          {
            "node": "Score Lead Fit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Lead to Sheet": {
      "main": [
        [
          {
            "node": "Is Hot Lead?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Score Lead Fit",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Score Lead Fit",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}