I once inherited a sales team drowning in manual lead triage: spreadsheets, Slack pings, and copy-pasted contact records. Two people (one in growth ops and one in revenue operations) needed to transform that chaos into a reliable, automated lead routing machine — without hiring. The result? We reclaimed 10+ sales hours per week, increased lead-to-demo conversion and reduced lead leakage. Here’s how I built that two-person growth ops stack, the decisions we made, and the exact components you can replicate this week.

Why a two-person stack — and what “automate routing” really means

When I say two-person stack, I mean a setup managed by a growth ops specialist and an ops-supporting teammate (often a sales ops or marketing ops generalist). Neither has to be an engineering hero; they need process discipline, curiosity about data, and familiarity with the tools. The goal is simple: new leads flow from capture to the right rep or bucket automatically, with clear SLA tracking and minimal manual handoffs.

Automating lead routing isn’t just about avoiding Slack notifications. It includes:

  • Accurate capture and enrichment of lead data
  • Deterministic routing rules (territory, product, ARR, intent, source)
  • Queueing and SLA escalations for unclaimed leads
  • Notifications that reduce context-switching for reps
  • Analytics that show which sources and segments convert
  • Core principles that guided our design

    I follow four principles when I build lightweight automation for small teams:

  • Start deterministic: Use clear rules before ML or fuzzy matching. Rules are faster to validate and fix.
  • Keep ownership visible: Every lead should have a single owner or queue with explicit SLA.
  • Prefer low/no-code tools: Faster to iterate and easier to document for two operators.
  • Instrument everything: If you can’t measure routing accuracy and SLA adherence, you can’t improve it.
  • Tool choices — simple, battle-tested options

    We chose tools that fit the “two people, no new headcount” constraint. Here’s the minimal stack we implemented and why each piece mattered:

  • Form & capture: Typeform / HubSpot forms / Gravity Forms — whichever matches your CMS and integrates cleanly. Key: prevent duplicates and capture channel and UTMs.
  • CDP/enrichment: Clearbit or Apollo enrichment (or HubSpot's built-in enrichment). We used Clearbit for company size and industry so routing rules could include firmographics.
  • Automation & routing engine: HubSpot Workflows or Zapier + Airtable, or Make (Integromat). HubSpot was ideal because our CRM was already there and it supports branching logic plus SLA timers.
  • Queue/assignment and notifications: Salesforce / HubSpot owner fields + Slack integration. We used Slack workflow notifications with direct links to the lead record and suggested next action.
  • Escalation & SLA: HubSpot Playbooks and task automation, or a lightweight triage board in Airtable that escalates tasks by time using Make.
  • Reporting: Looker Studio (Data Studio) or HubSpot dashboards for funnel metrics; we pushed raw events into BigQuery for ad-hoc analysis.
  • Concrete routing logic we implemented

    We started with a decision tree that covered 90% of leads. Covering edge cases later is fine. Our initial rules looked like this:

  • If lead source = “Paid SEM” and company size ≥ 50 employees → assign to Mid-Market SDR pool.
  • If lead has tagged product interest = “Enterprise” OR ARR estimate > $50k → assign to AE and create “High-touch” task.
  • If lead source = “Content” and company size < 50 → assign to Inbound SDR queue with 48h SLA.
  • If enrichment fails (no firmographics) → assign to “Needs enrichment” queue, kick off Clearbit (or API) enrichment and re-evaluate after 1 hour.
  • If lead is missing phone/email → place into “Incomplete data” queue and send an automated email asking for confirmation.
  • How we saved 10+ sales hours/week (real mechanisms)

    Here are the specific time sinks we eliminated or reduced and how the stack addressed them:

  • Manual triage: Previously reps spent ~20 minutes per lead deciding ownership. That’s eliminated by deterministic rules and automatic assignment.
  • Context gathering: Enrichment and UTM capture reduced research time (searching LinkedIn, Crunchbase) — a 5–10 minute saving per qualified lead.
  • Follow-up chasing: Automated task creation with templates and sequences cut repetitive messaging setup time in half.
  • Escalation hunting: SLA alerts in Slack ensured no one wasted time chasing stale leads — we removed redundant reminders and calendar check-ins.
  • On average the team reclaimed about 1–2 hours per rep per week in triage and prep time; multiplied across the team this exceeded 10 hours saved weekly. The ops team also saved administrative hours because routing failures were visible and fixed via rule changes rather than manual intervention.

    KPIs and dashboards I track

    To ensure the stack delivered, we tracked a small set of KPIs. If you’re building this, add these to your dashboard first:

  • Lead routing accuracy (%) — percent of leads assigned to the correct bucket on first pass.
  • Time-to-first-touch (median) — target: < 24 hours for inbound demos.
  • SLA adherence — percent of leads touched within defined SLA.
  • Lead leakage rate — percent of leads lost/unassigned after X hours.
  • Conversion by source and bucket — lead → demo and demo → opportunity.
  • Common pitfalls and how to avoid them

    Two-person teams are nimble but vulnerable to over-engineering. I’ve seen these mistakes:

  • Rule sprawl: You don’t need a rule for every edge case. Start with 6–8 high-impact rules and iterate monthly.
  • Hidden ownership: Nobody owns exceptions. Make sure ops takes a daily 15-minute triage of the “needs enrichment” queue.
  • Ignoring UX for reps: If notifications are unclear, reps will revert to manual workflows. Include suggested next action and one-click buttons (e.g., “Claim lead”, “Set meeting”) in your Slack/CRM alerts.
  • Not instrumenting failures: Track why leads fall into “Unhandled” buckets — that’s where the highest-impact fixes hide.
  • Templates and quick playbook (copy-paste friendly)

    Here’s a minimal playbook you can adopt and adapt. Paste into your ops docs:

  • Capture: Enforce required fields: email OR phone, UTM campaign, product interest.
  • Enrich: Auto-enrich with Clearbit; if enrichment fails, add tag = needs_enrich and retry in 1 hour.
  • Route: Apply top-3 rules (Product interest, ARR estimate, Source) to assign owner or queue.
  • Notify: Send Slack DM to owner with 1-line context + link + suggested next action.
  • SLA: Create task with due date = now+24h for demo-eligible leads, now+48h for lower intent.
  • Escalate: After SLA passes, notify team lead and move to overflow queue.
  • Measure: Dashboard: routing_accuracy, time_to_first_touch, SLA_adherence, leakage_rate.
  • Next steps to implement in your team this week

    If you want to get this running in 5 working days, follow this roadmap:

  • Day 1: Audit capture points and required fields; map current triage workflows.
  • Day 2: Draft 6 core routing rules and document owners for exceptions.
  • Day 3: Configure automation (HubSpot workflows or Zapier/Make + Airtable) and enrichment.
  • Day 4: Build Slack notifications, task templates and initial dashboards.
  • Day 5: Run a shadow test for 24–48 hours, collect feedback, iterate rules.
  • If you want the exact HubSpot workflow snippets, Slack message templates or an Airtable schema I used, tell me which CRM/stack you run and I’ll drop those in a follow-up. Automating lead routing doesn’t need a big team — with the right rules, a compact stack and disciplined SLAs you can free hours for selling and create repeatable, predictable pipeline growth.