ooligo
n8n-flow

Inbound lead triage and routing with n8n + Claude

Difficulty
intermediate
Setup time
90min
For
revops · sdr-leader
RevOps

Stack

An n8n flow that catches every inbound demo request the moment it lands, scores it against your ICP rubric with Claude, enriches it with firmographic data, and routes it to the right SDR queue or directly to a self-serve flow. Inbounds that should never have hit a human get filtered; the rest land with full context.

What you’ll need

  • n8n self-hosted or Cloud (Starter or higher)
  • HubSpot with a Lifecycle stage and a custom ICP score property
  • Claude API key
  • Your ICP rubric as a Markdown doc
  • A territory rules table (Google Sheet or Airtable)

Setup

  1. Import the flow. Pull inbound-triage.n8n.json into your n8n instance. The flow is a webhook trigger followed by enrich, score, route, and notify nodes.
  2. Wire HubSpot. Set up a HubSpot workflow that fires the n8n webhook whenever a contact submits a demo-request form. Pass the contact ID and form context.
  3. Configure Claude. Drop the ICP rubric Markdown into n8n’s static data. The Claude node prompts Claude with the contact properties plus the rubric and asks for a 1-10 score with one-line reasoning, returned as JSON.
  4. Set routing rules. In the routing node, define thresholds: score lt 4 sends a self-serve email and tags the contact as triaged-low. Score 4-7 routes to SDR by territory. Score 8+ routes to AE direct, paging Slack.
  5. Test with five real leads. Run on historic submissions; tune thresholds.

How it works

The webhook fires the moment a form is submitted. The flow first enriches the contact via Clearbit or Apollo for firmographics — domain, employee count, industry — then passes that bundle plus the form responses to Claude. Claude returns structured JSON: {score, reasoning, primary_pain_hypothesis}.

The router branches on score and territory. Critically, every branch updates HubSpot with the score and reasoning, so SDRs see why a lead was routed to them, not just that it landed. The Slack notification for high-score leads includes the company snapshot and a suggested opener.

Self-serve fallback for low scores isn’t a dead end — it’s an automated nurture entry, and any subsequent product activation re-triggers the flow with updated context.

Watch-outs

  • Webhook reliability. If HubSpot’s webhook fails, the lead silently misses the flow. Add a backup nightly batch job that picks up any contact in Subscriber stage with a recent form submission.
  • Score gaming. Reps will quickly learn what triggers a high score and complain when their pet leads score low. Audit a sample weekly to keep the rubric honest.
  • Latency. Claude calls add seconds. Inbounds need fast routing — keep the prompt tight, use the cheapest viable model, and set an n8n timeout fallback that routes-by-rule if Claude is slow.

Stack

  • n8n — webhook, enrichment orchestration, routing logic
  • HubSpot — source of inbound, destination for enriched contact
  • Claude — ICP scoring with reasoning