8 min read

Routing & Assignment Rules

Automatically route leads to the right sales rep based on score, territory, product interest, or custom criteria.

Overview

Routing rules ensure leads reach the right person at the right time. Configure automatic assignment based on lead scores, geographic territories, product interests, company characteristics, or custom criteria.

Rule Types

Score-Based Routing

Route leads based on their quality scores:

{
  "name": "Score-Based Assignment",
  "conditions": [
    {
      "if": "score >= 80",
      "assign_to": "senior_sales_team",
      "priority": "high"
    },
    {
      "if": "score >= 50",  
      "assign_to": "inside_sales_team",
      "priority": "medium"
    },
    {
      "if": "score < 50",
      "assign_to": "lead_nurturing_queue",
      "priority": "low"
    }
  ]
}

Geographic Routing

Assign leads by location:

{
  "name": "Territory Assignment",
  "field": "location",
  "mappings": {
    "US-West": ["CA", "OR", "WA", "NV", "AZ"],
    "US-East": ["NY", "MA", "CT", "NJ", "PA"],
    "International": ["UK", "DE", "FR", "AU", "CA"]
  },
  "assignments": {
    "US-West": "rep_sarah_west",
    "US-East": "rep_mike_east", 
    "International": "rep_global_team"
  }
}

Implementation

Simple Assignment

// Route high-value leads to senior reps
if (submission.score >= 85) {
  routeTo('senior-sales-rep');
  setPriority('urgent');
  sendAlert('slack', '#hot-leads');
}

Complex Multi-Factor Routing

// Advanced routing logic
const routing = {
  rep: null,
  team: null,
  priority: 'medium'
};

// Score-based priority
if (submission.score >= 80) {
  routing.priority = 'high';
} else if (submission.score < 50) {
  routing.priority = 'low';
  routing.team = 'nurture-team';
  return routing;
}

// Geographic assignment
const territory = getTerritoryByLocation(submission.formData.location);
routing.rep = getRepByTerritory(territory);

// Product specialization
if (submission.formData.interest === 'enterprise') {
  routing.rep = getEnterpriseSpecialist(territory);
}

return routing;

Configuration Examples

Round-Robin Assignment

{
  "name": "Round Robin Sales Team",
  "type": "round_robin",
  "team": ["rep_alice", "rep_bob", "rep_charlie"],
  "conditions": {
    "score_min": 60,
    "working_hours_only": true
  }
}

Weighted Distribution

{
  "name": "Weighted Distribution",
  "type": "weighted",
  "assignments": {
    "rep_senior": {"weight": 40, "max_daily": 10},
    "rep_mid": {"weight": 35, "max_daily": 15}, 
    "rep_junior": {"weight": 25, "max_daily": 20}
  }
}

Best Practices

Capacity Management

  • Set daily/weekly lead limits per rep
  • Monitor workload distribution
  • Implement overflow rules for peak times

Response Time SLAs

  • High-value leads: <2 hours
  • Medium leads: <24 hours
  • Low-value leads: <72 hours

Escalation Rules

// Escalate uncontacted leads
if (leadAge > 24 && !contacted && priority === 'high') {
  escalateTo(salesManager);
  sendAlert('email', salesManager.email);
}

Testing & Optimization

Track routing effectiveness:

  • Response times by assignment rule
  • Conversion rates by rep and territory
  • Lead distribution balance across team
  • SLA compliance for different priority levels

Next Steps

After setting up routing: