How to Build a Round Robin in Salesforce

This post was last updated on 03/26/21.


The goal of any B2B marketing team is to drive brand awareness, brand association, and, ultimately, push users to ask for a demo. Most companies struggle to find leads, and so focus purely on outbound efforts.

One of Kicksaw’s customers, though, ran into the opposite problem. They were inundated with high-quality leads and were struggling to handle them properly. Reps were cherry-picking the best leads, leaving many completely untouched for far too long.

This customer asked us to help them solve two critical inbound problems:

  1. They needed to reduce response time for inbound leads
  2. They needed leads distributed evenly across sales reps

What is a round robin?

Speed-to-contact is a key metric companies use to track inbound leads. If your organization has a high volume of inbounds, you need a way to route leads among your available reps in order to reduce the lag time between submitting a contact form and the prospect being touched.

According to, the odds of connecting with a lead drops 100x if you touch them in 30 minutes vs 5 minutes. The drop-off rate on qualification is 21x if you touch a lead in 30 minutes vs 5 minutes.

It’s no surprise that hot leads are more likely to convert than cold leads, but getting leads connected with reps as soon as possible is key.

To accomplish this, we recommend putting a round robin in place. This is a common solution for good reason — a round robin will evenly distribute leads among your team, ideally taking into consideration which reps are out of office, as well as any territory or account ownership.

Why should I use a round robin?

Besides reducing the time it takes for a sales rep to touch an inbound prospect, a round robin helps avoid a problem every sales team faces: cherry-picking reps.

When companies dump all inbound leads into a queue and let sales reps select the leads they want to target, cherry picking is almost inevitable. On one hand, this allows reps to focus on the leads that make the most sense to them. On the other, though, this practice may mean that some leads are never touched, and a lead you don’t touch will never become a customer.

Another great reason to create a round robin is to create a level playing field among your reps. We’ve seen situations where certain SDRs stand out because they monitor the inbound lead queue, fishing for new inbounds, rather than focusing on their key role of outbound prospecting.

Furthermore, in the absence of a round robin, your team can become hugely distracted, and frustrated, by reps arguing over who should own a new inbound.

Who should use a round robin?

Companies with a high volume of inbound leads need some sort of routing system in place, and a round robin will make sure those leads are evenly distributed. At a minimum, you want to make sure leads are routed to the reps in the appropriate territory and vertical. Dumping leads into a single, free-for-all queue with no regard to territory or vertical will lead to lower conversion rates and unhappy prospects.

In an ideal scenario, a basic round robin does the following:

  • Routes leads randomly among your team members
  • Pauses routing to reps who are out of office

Who should not use a round robin?

Some Kicksaw customers ask for a round robin when there isn’t a clear need for one. Leadership hears that a round robin will reduce friction among their sales team and improve speed-to-contact and decides they definitely need one, but that’s not necessarily the case. A round robin is not a silver bullet.

If your sales efforts are targeted at enterprise companies and you have few inbounds, the costs of building and maintaining a round robin will likely outweigh the benefits, at least in the short term.

Here’s a simple test to determine if a round robin makes sense for your company: have you ever heard two, or more, reps arguing over ownership of an inbound?

If the answer is yes, you probably need a round robin as soon as possible (and maybe less testy reps). If you haven’t, though, you probably don’t need one.

How does a round robin work?

When a lead submits a contact form on your website, the following will occur:

  • A lead is created in Salesforce
  • The sales rep who is next in line is assigned as the owner
  • If no contact is made within X minutes, the lead is rerouted

What out-of-the-box tools work for creating a round robin?

There are many tools out there that can help route leads among your team. The most commonly used product we see for lead routing is LeanData. LeanData can be great if you need extra features like attribution, but for 95% of our customers, a custom-built lead routing process works best.

Our customer wanted flexibility to make changes to how leads were routed, but also wanted to avoid recurring costs. They found that many of the most popular round-robin tools had features that didn’t apply to them.

For example, multi-touch marketing attribution is something lead routing tools offer that really doesn’t make sense for most businesses. We tend to recommend a crawl > walk > run approach to administration and development in Salesforce, and a multi-touch attribution tool is the equivalent of sprinting for most companies.

What skills do I need to build a round robin in Salesforce?

Unfortunately, we haven’t found many vendors who have built really solid, scalable round robin tools that natively work in Salesforce. The things we expect a quality round robin to do (but that we rarely see) are:

  • Route the lead to an account owner if a matching account already exists in Salesforce
  • Re-route the lead if it is not accepted within the SLA
  • Route the lead to the appropriate territory
  • Notify leadership if leads are being missed

An ideal round robin covers all of those scenarios and more. Unfortunately, this means you’ll almost certainly need to build a round robin from scratch. Luckily, the process is doable, even for junior admins.

At a minimum, you’ll need to know how to do the following in Salesforce:

  • Create a process in Process Builder
  • Create an invokable flow
  • Create custom objects
  • Create custom fields
  • Create lead assignment rules
  • Create lead queues

Step 1: Design

Custom Object: Round_Robin__c

A round robin is an object we use to store a grouping of assignees. For example, maybe you have one round robin for North America, one for APAC, and another for EU/UK.

  • Fields:
    • Name
      • (Text)
    • Is_Active__c
      • (Checkbox)

Custom Object: Round_Robin_Assignee__c

Within each round robin, you’ll have assignees. A given sales rep could be tied to multiple round robins, and a single round robin can have many assignees.

  • Fields
    • Name
      • (Text)
    • User__c
      • (Lookup, User) – [Required]
    • Is_Active__c
      • (Checkbox)
    • Last_Assigned__c
      • (DateTime)
    • Round_Robin__c
      • (Master-Detail, Round_Robin__c)

Lead Queue: Round Robin

For each round robin, create a Lead Queue in Salesforce with the exact same name. Use this to look up the appropriate round robin assignee.

Lead Assignment Rule: Round Robin

Lead assignment rules are invoked when a new lead is created. Add filter criteria that fit your team’s structure. In this example, we need a lead assignment rule for North America, APAC, and EU/UK.

North America: Lead.Country = ['United States', 'Canada', 'Mexico']
APAC: Lead.Country = ['Japan', 'China', 'Singapore', ...]
EU/UK: Lead.Country = ['United Kingdom', 'France', 'Germany', ...]

The assignee for each should be the each of the lead queue’s you created in the previous step.

Activate your assignment rule.

Process Builder

In this step, you’ll build a round robin on the lead object, which is listening for new leads created. If that lead was assigned to one of the queues, you want to invoke a flow.

  • Name: Lead PB
  • Criteria:
    • Record is created

Node 1:


BEGINS([Lead].OwnerId, "00G")
//This indicates the lead owner is a queue


  • Launch flow with variables assigned
RRName = Round Robin Name
RecordId = Id

Flow: LeadRoundRobin

For this flow, you need to capture the name of the Lead.Owner, which in this case would be a queue. Once you have that, look up the next round robin assignee(ORDER BY Last_Assigned_Date__c ASC, Return 1 record). Once the assignee has been selected, set the owner of the lead to that user and specify that Round_Robin_Assignee__c.Last_Assigned_Date__c = NOW(). That assignment moves the user to the back of the queue. Finally, send an email to that user.

  • Input Variables
    • RRName
      • (Empty string)
    • RecordId
      • (Empty string)
  • Find Record
Find Round_Robin_Assignee__c WHERE Round_Robin__r.Name = RRName and Is_Active__c = True
  • Update Record
Record Owner = Assignee.Id
  • Update Round Robin Assignee
Last_Assigned__c = NOW()

To summarize:

  • Look up round robin assignee
  • Assign lead to assignee
  • Set last assigned date to NOW()
  • Notify assignee via email

Step 2: Build

  • Create round robin object
  • Create round robin assignee
  • Create flow
  • Create process in Process Builder

Step 3: Test

  • Create a lead
  • Review lead history
    • Was owner changed?
  • Look up round robin assignee
    • Is Last_Assigned__c = NOW()
  • Create a second lead
    • Confirm routing

Step 4: Deploy

  • Create change set
    • Change set components
      • Object:
        • Round robin + related fields
        • Round robin assignee + related fields
      • Flow
        • LeadRoundRobin
      • Process Builder
        • Lead PB
  • Push/Validate/Deploy change set
  • Insert round robin records
  • Insert round robin assignee records
  • Activate Process Builder process

Step 5: Test Again

  • Insert lead
    • Confirm lead assignment changed
    • Confirm Round_Robin_Assignee__r.Last_Assigned__c is set

Common Round Robin Questions

Can I re-route a lead if it isn’t accepted?

If a user sets the lead status to Unqualified or Rejected within 30 minutes, ideally, the user should be moved to the top of the round robin.

To do this, create a process for leads which is invoked if the status is set to Unqualified or Rejected. When that happens, launch a flow to look up Round_Robin_Assignee__c where id = User.Id.

That flow needs to set Last_Assigned__c to NULL, which would effectively put the user at the top of the list for the next lead.

We also recommend adding alerts for Sales Ops to review any rejected leads and make changes where appropriate.

Can we integrate a round robin with Slack?

There are a few ways to achieve this. Reference the following sources:

What if the email address for the lead bounces?

New leads in the system aren’t always fully qualified (or real), and sometimes you need to route an additional lead to a rep. Just as for disqualified leads, you can create a process that dictates that if an email bounces, you invoke the same process as you do for rejected leads by setting the lead status to Bounced.

How Can Kicksaw Help?

We’re well versed in building round robins of all shapes and sizes. If you’re looking for expert guidance, or you need help with other Salesforce tools, please email us at or fill out the form at the bottom of this page! We’d love to hear from you.