// 30-min buildsby JoshMay 9, 20265 min read

Build a Lead-Qualification Webhook in 30 Minutes

Inbound form fires. Lead gets scored. Sales gets a Slack ping with the score and a one-paragraph summary. Cold leads get an auto-decline. Build the whole thing today.

Build a Lead-Qualification Webhook in 30 Minutes

The build: a webhook endpoint that receives lead form submissions, scores the lead with AI, routes hot leads to Slack with summary, and sends an auto-decline to cold leads.

Total time: 30 minutes.

What you'll need

  • -Any form tool that can POST to a webhook (Tally, Typeform, custom form)
  • -n8n (or Make / Zapier)
  • -Slack workspace
  • -Email sending tool (Resend, Postmark, or Gmail API)
  • -AI API key

Step 1: Webhook trigger (3 min)

In n8n, create a Webhook trigger node. Copy the production URL. Use it as the webhook URL in your form tool.

Submit a test form to verify the payload comes through.

Step 2: AI scoring (10 min)

Add an AI node after the webhook. Prompt:

``` You are scoring an inbound sales lead.

Lead's form submission: - Name: {{ $json.name }} - Company: {{ $json.company }} - Role: {{ $json.role }} - Message: {{ $json.message }} - Budget hint: {{ $json.budget_hint }}

Score on: - Fit (1-5): does their problem match what we sell? Our services: {YOUR_SERVICES} - Authority (1-5): does their role suggest decision power? - Specificity (1-5): is their message specific or generic? - Urgency (1-5): do they signal a timeline or pressure?

Disqualifiers (if any present, set fit to 0): - Company size below {MIN_SIZE} - Industry not in: {INDUSTRIES_LIST} - Asking for something outside our scope

Return JSON: { "total_score": <0-20>, "fit": <0-5>, "authority": <1-5>, "specificity": <1-5>, "urgency": <1-5>, "disqualifier": <string or null>, "summary": "<one paragraph, max 60 words>", "recommended_priority": <"hot" / "warm" / "cold" / "decline">, "specific_question_to_ask": "<one question to advance discovery>" } ```

Step 3: Branch by priority (3 min)

Add a Switch node. Branches: - "hot" → Slack + CRM create - "warm" → CRM create, no Slack ping - "cold" → CRM create with cold tag, no Slack ping - "decline" → Auto-decline email + CRM with declined tag

Step 4: Slack ping for hot leads (5 min)

Add a Slack node on the hot branch. Channel: #sales-inbox.

Message:

``` :fire: *Hot lead: {{ name }} from {{ company }}* Score: {{ total_score }}/20

{{ summary }}

Suggested next question: _{{ specific_question_to_ask }}_

<{{ crm_link }}|Open in CRM> ```

Step 5: Auto-decline for "decline" leads (5 min)

Add an email node on the decline branch. Template:

``` Hi {{ name }},

Thanks for reaching out about {{ their_topic }}.

I'm not the right fit for this specific need. We focus on {YOUR_FOCUS}, and what you're describing is better served by {ALTERNATIVE}.

A few firms I'd actually recommend: - {REFERRAL_1} - {REFERRAL_2} - {REFERRAL_3}

Good luck with the project.

— Josh ```

The personalization is key. Cold, generic auto-declines hurt your brand. Specific, helpful auto-declines build it.

Step 6: Test (4 min)

Submit four test forms covering each priority level. Verify: - Hot → Slack ping - Warm → CRM entry only - Cold → CRM entry with cold tag - Decline → polite auto-decline email

What I do with this

Every inbound lead gets triaged within 30 seconds of submission. Hot leads hit my Slack while the prospect is still on the form page. I can reply within 2-3 minutes if I want, which is the highest-converting response time in B2B.

Cold leads still get a respectful auto-decline. They walk away thinking well of us. Some come back later.

What to add next

  • -A 24-hour follow-up sequence for warm leads who don't get a sales reply
  • -Industry-specific scoring (different criteria for wealth, legal, CPA, etc.)
  • -Auto-book a calendar slot for hot leads (Cal.com link in the Slack ping)
  • -A weekly digest of all leads scored, with breakdown

Ship the basic version. Iterate.

lead scoringwebhookn8nsales30 min build
// go deeper

Want the full guide? Check out our deep-dive page for more context, FAQs, and resources.

read the full guide
// keep reading

Related posts

// ready to ship?

Let's build yours.

Reading is the easy part. We do the work. Tell us what's broken and we'll tell you straight up whether we can help.