Home
cd ../playbooks
Sales & RevenueAdvanced

Lead Routing & Assignment

Intelligent lead assignment and routing - AI-powered scoring, territory mapping, round-robin distribution, and workload balancing

10 minutes
By communitySource
#lead-management#sales-automation#routing#assignment#crm
CLAUDE.md Template

Download this file and place it in your project folder to get started.

# Lead Routing

Intelligent lead assignment and routing system with AI-powered scoring, territory mapping, round-robin distribution, and workload balancing. Based on n8n's HubSpot/Salesforce automation templates.

## Overview

This workflow covers:
- Lead scoring and qualification
- Territory-based routing
- Round-robin distribution
- Workload balancing
- SLA monitoring and escalation

---

## Routing Strategies

### 1. Rule-Based Routing

```yaml
routing_rules:
  # By Company Size
  - name: "Enterprise Routing"
    condition:
      company_size: ">= 500"
      OR:
        annual_revenue: ">= $10M"
    assign_to: "Enterprise Team"
    priority: high
    sla: 1_hour
    
  - name: "Mid-Market Routing"
    condition:
      company_size: "100-499"
    assign_to: "Mid-Market Team"
    priority: medium
    sla: 4_hours
    
  - name: "SMB Routing"
    condition:
      company_size: "< 100"
    assign_to: "SMB Team"
    priority: standard
    sla: 24_hours

  # By Geography
  - name: "APAC Routing"
    condition:
      country: ["China", "Japan", "Singapore", "Australia"]
    assign_to: "APAC Team"
    timezone_aware: true
    
  - name: "EMEA Routing"
    condition:
      country: ["UK", "Germany", "France", "Netherlands"]
    assign_to: "EMEA Team"
    
  - name: "Americas Routing"
    condition:
      country: ["US", "Canada", "Brazil", "Mexico"]
    assign_to: "Americas Team"

  # By Industry
  - name: "Healthcare Specialist"
    condition:
      industry: ["Healthcare", "Pharmaceuticals", "Medical Devices"]
    assign_to: "Healthcare Sales"
    
  - name: "Finance Specialist"
    condition:
      industry: ["Banking", "Insurance", "FinTech"]
    assign_to: "Financial Services Sales"
```

---

### 2. Round-Robin Distribution

```yaml
round_robin_config:
  team: "SMB Sales"
  members:
    - name: Alice
      capacity: 100%
      max_leads_per_day: 20
      
    - name: Bob
      capacity: 100%
      max_leads_per_day: 20
      
    - name: Carol
      capacity: 50%  # Part-time
      max_leads_per_day: 10
      
  rules:
    distribution: weighted  # or equal
    skip_if:
      - out_of_office: true
      - at_capacity: true
    reset: daily
    
  tracking:
    log_assignments: true
    balance_check: hourly
```

**Distribution Algorithm**:
```
┌─────────────────────────────────────────────────────────────┐
│                   ROUND-ROBIN LOGIC                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. New lead arrives                                        │
│                    │                                        │
│                    ▼                                        │
│  2. Check team availability                                 │
│     - Filter out: OOO, at capacity, off-hours              │
│                    │                                        │
│                    ▼                                        │
│  3. Calculate weighted position                             │
│     - Current assignments today                             │
│     - Capacity percentage                                   │
│     - Last assignment time                                  │
│                    │                                        │
│                    ▼                                        │
│  4. Assign to rep with lowest weighted score               │
│                    │                                        │
│                    ▼                                        │
│  5. Update tracking, notify rep                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

---

### 3. AI-Powered Lead Scoring

```yaml
ai_scoring:
  provider: openai
  model: gpt-4
  
  input_factors:
    demographic:
      - company_size
      - industry
      - job_title
      - location
      
    firmographic:
      - annual_revenue
      - employee_count
      - funding_stage
      - tech_stack
      
    behavioral:
      - pages_visited
      - content_downloads
      - email_engagement
      - demo_requests
      
    fit_score:
      - icp_match_percentage
      - competitor_usage
      - budget_authority
      
  scoring_prompt: |
    Score this lead from 0-100 based on:
    
    Our ICP (Ideal Customer Profile):
    - B2B SaaS companies
    - 50-500 employees
    - Series A or later
    - Using {competitor} or {similar_tool}
    
    Lead Data:
    {lead_data}
    
    Return JSON:
    {
      "score": 0-100,
      "fit_score": 0-100,
      "intent_score": 0-100,
      "tier": "A/B/C/D",
      "reasoning": "...",
      "recommended_action": "...",
      "routing_suggestion": "..."
    }

  tier_thresholds:
    A: 80-100  # Hot lead, immediate follow-up
    B: 60-79   # Qualified, standard follow-up
    C: 40-59   # Nurture, marketing sequence
    D: 0-39    # Low priority, long-term nurture
```

---

### 4. Territory Mapping

```yaml
territory_map:
  north_america:
    west:
      states: [CA, WA, OR, NV, AZ, CO, UT]
      owner: "West Coast Team"
      reps: [Alice, Bob]
      
    central:
      states: [TX, IL, OH, MI, MN, WI]
      owner: "Central Team"
      reps: [Carol, David]
      
    east:
      states: [NY, MA, PA, FL, GA, NC]
      owner: "East Coast Team"
      reps: [Eve, Frank]
      
  international:
    emea:
      countries: [UK, DE, FR, NL, ES, IT]
      owner: "EMEA Team"
      timezone: "Europe/London"
      
    apac:
      countries: [JP, SG, AU, KR, IN]
      owner: "APAC Team"
      timezone: "Asia/Tokyo"

  overlap_resolution:
    # When lead matches multiple territories
    priority_order:
      1: named_account_owner  # If account already has owner
      2: industry_specialist  # If industry requires specialist
      3: geography           # Default to geography
```

---

### 5. Workload Balancing

```yaml
workload_balancer:
  check_frequency: hourly
  
  metrics_tracked:
    - current_open_leads
    - leads_assigned_today
    - leads_assigned_this_week
    - average_response_time
    - conversion_rate
    
  balance_rules:
    max_variance: 20%  # Max difference between reps
    
    rebalance_trigger:
      - variance > max_variance
      - rep_at_capacity
      - rep_underperforming
      
    rebalance_actions:
      - pause_assignments: for_overloaded_rep
      - increase_weight: for_underloaded_rep
      - notify_manager: when_rebalancing
      
  capacity_management:
    per_rep:
      max_open_leads: 50
      max_new_per_day: 15
      max_new_per_week: 60
      
    team_level:
      overflow_queue: true
      overflow_notify: sales_manager
      escalation_threshold: 2_hours
```

---

## Workflow Implementation

### Complete Lead Routing Workflow

```yaml
workflow: "Intelligent Lead Router"

trigger:
  - type: hubspot_contact_created
  - type: form_submission
  - type: api_webhook

steps:
  1. enrich_lead:
      providers: [clearbit, zoominfo]
      fields:
        - company_size
        - industry
        - revenue
        - location
        - linkedin_url
        
  2. score_lead:
      method: ai_scoring
      store_result:
        hubspot_property: lead_score
        
  3. determine_tier:
      A_tier: score >= 80
      B_tier: score >= 60
      C_tier: score >= 40
      D_tier: score < 40
      
  4. apply_routing_rules:
      sequence:
        - check: named_account_owner
        - check: industry_specialist
        - check: territory_match
        - check: round_robin_availability
        
  5. assign_owner:
      hubspot:
        update_contact:
          hubspot_owner_id: "{selected_owner_id}"
          lead_status: "New"
          lead_tier: "{tier}"
          routing_reason: "{routing_logic}"
          
  6. create_task:
      hubspot:
        type: CALL
        subject: "Follow up: New {tier} lead - {company}"
        due_date: "{sla_deadline}"
        priority: "{priority_based_on_tier}"
        notes: |
          Lead Score: {score}
          Routing Reason: {routing_reason}
          Key Info: {summary}
          
  7. notify_owner:
      slack_dm:
        message: |
          🎯 *New Lead Assigned*
          
          **{contact_name}** at **{company}**
          Score: {score} ({tier} Tier)
          
          📞 SLA: Respond within {sla_time}
          
          Quick actions:
          • [View in HubSpot]({hubspot_link})
          • [LinkedIn]({linkedin_url})
          • [Schedule Call]({calendly_link})
          
  8. start_sla_timer:
      deadline: "{sla_deadline}"
      escalation_path:
        - 50%_elapsed: reminder_to_owner
        - 80%_elapsed: notify_manager
        - 100%_elapsed: reassign + alert
```

---

## SLA Management

```yaml
sla_tiers:
  tier_a:
    response_time: 1_hour
    escalation_path:
      - 30min: slack_reminder
      - 45min: manager_alert
      - 60min: auto_reassign
      
  tier_b:
    response_time: 4_hours
    escalation_path:
      - 2h: slack_reminder
      - 3h: manager_alert
      - 4h: auto_reassign
      
  tier_c:
    response_time: 24_hours
    escalation_path:
      - 12h: slack_reminder
      - 20h: manager_alert
      - 24h: move_to_queue

sla_reporting:
  metrics:
    - response_time_avg
    - response_time_p90
    - sla_compliance_rate
    - escalation_count
    
  report_frequency: weekly
  recipients: [sales_manager, ops_manager]
```

---

## Reporting Dashboard

```markdown
# Lead Routing Report - {Week}

## Distribution Summary
| Rep | Assigned | Responded | Avg Response | SLA Met |
|-----|----------|-----------|--------------|---------|
| Alice | 45 | 43 | 1.2h | 96% |
| Bob | 42 | 40 | 1.8h | 90% |
| Carol | 38 | 38 | 0.8h | 100% |
| **Total** | **125** | **121** | **1.3h** | **95%** |

## By Tier
| Tier | Count | Avg Score | Converted | Conv Rate |
|------|-------|-----------|-----------|-----------|
| A | 25 | 87 | 12 | 48% |
| B | 45 | 68 | 15 | 33% |
| C | 35 | 52 | 5 | 14% |
| D | 20 | 28 | 1 | 5% |

## Routing Breakdown
- By Territory: 60%
- By Industry: 25%
- Round Robin: 15%

## Issues
- 3 leads waited >SLA (reassigned)
- Alice at 95% capacity (monitor)
- No coverage for Healthcare vertical (gap)

## Recommendations
1. Hire Healthcare specialist
2. Increase Bob's training (response time)
3. Adjust A-tier threshold to 85 (too many false positives)
```

---

## Output Example

**Request**: "Route this lead: John Smith, CTO at TechCorp (500 employees, SF, SaaS)"

**Output**:

```markdown
# Lead Routing Decision

## Lead Profile
- **Name**: John Smith
- **Title**: CTO
- **Company**: TechCorp
- **Size**: 500 employees
- **Location**: San Francisco, CA
- **Industry**: SaaS

## AI Scoring
```json
{
  "score": 85,
  "fit_score": 90,
  "intent_score": 80,
  "tier": "A",
  "reasoning": "Strong ICP fit - CTO at 500-person SaaS company in our target market. High authority buyer.",
  "recommended_action": "Immediate outreach - high-value prospect"
}
```

## Routing Decision

**Assigned to**: Alice Chen (Enterprise West)

**Routing Logic**:
1. ✅ Territory: San Francisco → West Coast
2. ✅ Company Size: 500 → Enterprise tier
3. ✅ Industry: SaaS → No specialist needed
4. ✅ Availability: Alice has capacity (18/20 today)

## Action Items Created

1. **Task**: Follow up call
   - Due: 1 hour (Tier A SLA)
   - Priority: High

2. **Slack Notification**: Sent to Alice

3. **SLA Timer**: Started (1h countdown)

## Recommended Outreach

```
Subject: Quick question about {pain_point} at TechCorp

Hi John,

Noticed TechCorp is scaling fast - congrats on the growth. 

CTOs at similar SaaS companies often tell us {common_challenge}. 

Would a 15-min call this week make sense to see if we can help?

[Calendly Link]
```
```

---

*Lead Routing Workflow - Part of Claude Code*
README.md

What This Does

Intelligent lead assignment and routing system with AI-powered scoring, territory mapping, round-robin distribution, and workload balancing. Based on n8n's HubSpot/Salesforce automation templates.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Documents/LeadRouting

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Documents/LeadRouting/

Step 3: Start Working

cd ~/Documents/LeadRouting
claude

Examples

Request: "Route this lead: John Smith, CTO at TechCorp (500 employees, SF, SaaS)"

Output:

# Lead Routing Decision

$Related Playbooks