Automatically route leads to the right sales rep based on score, territory, product interest, or custom criteria.
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.
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" } ] }
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" } }
// Route high-value leads to senior reps if (submission.score >= 85) { routeTo('senior-sales-rep'); setPriority('urgent'); sendAlert('slack', '#hot-leads'); }
// 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;
{ "name": "Round Robin Sales Team", "type": "round_robin", "team": ["rep_alice", "rep_bob", "rep_charlie"], "conditions": { "score_min": 60, "working_hours_only": true } }
{ "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} } }
// Escalate uncontacted leads if (leadAge > 24 && !contacted && priority === 'high') { escalateTo(salesManager); sendAlert('email', salesManager.email); }
Track routing effectiveness:
After setting up routing: