Test it for free for 30 days or get in touch if youβd prefer to chat.
Fancy giving Distribution Engine a try?
Have a play around for free, or get in touch if youβd prefer to chat.
Salesforce Round Robin Assignment: How to Set It Up and Scale It
Key takeaways:
Round robin is the fairest starting point - and Salesforce doesn't ship it: There's no native "round robin" button. You build it with a Flow-and-counter workaround, buy it, or fake it with queues. Knowing the three options (and their ceilings) saves you a rebuild later.
The classic DIY build is a MOD counter: A custom number field, an auto-number, and a Flow that assigns each new lead to Lead Number MOD (number of reps). It works - and this guide shows you exactly how to build it.
DIY round robin breaks on the R-word: reality. PTO, uneven skill levels, part-timers, new hires ramping, reps leaving - every one of these turns your elegant rotation into manual field surgery.
Scaling round robin means adding four things: weighting (unequal shares on purpose), availability (skip who's out), caps (respect capacity), and SLAs (pull back untouched leads). None are native.
Fairness needs receipts: A rotation nobody can audit is a rotation nobody trusts. Log every assignment - who, when, why - and check distribution variance monthly.
Round robin is the routing method every team reaches for first, and for good reason: it's simple, it's transparently fair, and everyone understands it in one sentence - each new lead goes to the next rep in the rotation. (If you want the full conceptual treatment - benefits, variants, when round robin is the wrong choice - we've written a complete round robin playbook. This article is the other half: the spanner-in-hand guide to actually building it, and the upgrades that keep it working past your first re-org.)
Because here's the awkward truth: Salesforce has no native round robin feature. Lead Assignment Rules evaluate criteria and assign to a fixed user or queue - they can't rotate. So every Salesforce round robin is either a workaround you build, a queue-based approximation, or a dedicated tool. Let's take them in order.
Option 1: The Flow build (the classic MOD-counter recipe).
This is the time-honoured admin technique, and it's worth understanding even if you outgrow it. The idea: give every lead a sequential number, give every rep a slot number, and use modulo arithmetic to match them.
Step 1: Create an auto-number field on the Lead.
Setup β Object Manager β Lead β Fields & Relationships β New β Auto Number. Label it something like Lead Number, format {0}. Every new lead now gets a sequential integer.
Step 2: Create a "Round Robin ID" formula field.
New β Formula (Number, 0 decimals). If you have, say, 4 reps in the rotation, the formula is:
MOD(VALUE({!Lead_Number__c}), 4) + 1
β
Every lead now lands in bucket 1, 2, 3 or 4, in strict sequence.
Step 3: Build the assignment Flow.
Create a record-triggered Flow on Lead (when created, optionally when updated to re-enter the rotation):
- Entry conditions: only leads that should rotate (e.g. LeadSource = Web, Round_Robin_ID__c is not null).
- Decision element: one outcome per bucket - Round Robin ID = 1 β Rep A, = 2 β Rep B, and so on.
- Update Records: set OwnerId to the matched rep.
- Optionally, fire a notification or a Slack/Teams alert so the rep knows a lead just landed.
Activate it, test in sandbox with a batch of leads, and confirm the sequence rotates cleanly.
Step 4: Know exactly where this build ends.
The MOD build is genuinely fine for a small, stable team with uniform leads. But notice what's hard-coded: the team size lives in a formula, the membership lives in a Decision element, and the rotation has no idea who's available. Which means:
- Rep leaves or joins β edit the formula and the Flow.
- Rep on PTO β their bucket keeps filling unless you edit the Flow (and remember to edit it back).
- One rep is part-time β tough; every bucket is equal.
- Lead untouched for two days β nothing happens.
None of these are bugs. They're the design. The build does exactly one thing - equal sequential rotation among a fixed list - and everything real teams need beyond that becomes manual maintenance.
Option 2: Queues (the honest approximation).
Some teams skip rotation entirely: leads route to a queue, and reps take the next one from the top. Call it pull-based round robin.
It can work for disciplined teams - but it reintroduces the exact problems rotation exists to solve: cherry-picking (reps scan for the good leads), queue camping (nobody takes the hard ones), and zero fairness guarantees. If you go this route, pair it with clear working agreements and reporting on pick-up patterns. Most teams treat queues as a waiting room in front of assignment, not as the assignment method itself.
Option 3: Dedicated round robin assignment (built, not bodged).
The third option is a routing tool where round robin is a first-class feature rather than an arithmetic trick. In Distribution Engine, a rotation is a distributor: you add team members, set the rules, and it handles sequence, state and exceptions natively in Salesforce - no formulas, no Decision elements, no redeploys when Sarah goes on holiday.
Which brings us to the real subject of this article: what "scaling" a round robin actually means.
How to scale round robin assignment: the four upgrades.
Every round robin that survives contact with a growing team ends up adding the same four capabilities. Whether you attempt them in Flow or adopt a tool, this is the roadmap.
1. Weighting: unequal shares, on purpose.
Strict equality is only fair when reps are interchangeable. They aren't. Weighted round robin lets you say: new hires ramp at 0.5x, your enterprise closer takes 2x, the part-timer takes 0.6x - and the rotation honours it automatically. This is the difference between "equal" and "equitable," and it's the first thing sales managers ask for once a basic rotation is live.
2. Availability: skip who can't act.
The single most common round robin failure: a hot lead assigned to someone who's off that day. Scaled rotations check real-time online/offline status, working hours, and calendar/PTO sync before assigning - the lead goes to the next available rep, and the returning rep rejoins the rotation without ceremony. (This matters enormously for speed-to-lead: instant assignment to an absent rep is slower than no automation at all, because everyone assumes it's handled.)
3. Caps: respect capacity.
Round robin distributes evenly by count, but count isn't workload. Caps set a ceiling on active leads per rep; when someone hits theirs, the rotation flows around them until they clear the backlog. Without caps, a rotation happily buries your best performer during a campaign spike.
4. SLAs and auto-reassignment: fairness for the lead, too.
A fair rotation for reps can still be unfair to prospects - assignment isn't response. Set a first-action SLA (say, 15 minutes for hot inbound); if it lapses, the system pulls the lead back and re-routes it to the next available rep, logging both events. This closes the loop that no Flow build closes: the rotation becomes self-healing.
The scaling scorecard.
You'll know your round robin is scaled - not just set up - when you can answer yes to all five:
- Can a sales manager add/remove/pause someone in the rotation without an admin ticket?
- Do absent reps get skipped automatically and re-included automatically?
- Can different reps carry different shares by design?
- Does an untouched lead re-route itself inside your SLA window?
- Can you show any rep exactly why they did or didn't get a given lead?
Three or more "no"s is the signal you've outgrown the MOD counter. It's also, not coincidentally, the feature list of Distribution Engine's rotation groups - weighting, availability and shift awareness, caps, SLA timers with auto-reassign, and a per-assignment audit log, all configured with clicks and adjustable by team leads. When the meetings those leads generate need the same fairness, Booking Engine runs bookings through the same rotation logic.
Measuring fairness: the numbers to watch.
Set up a monthly review with three metrics:
- Distribution variance - assignment spread between busiest and quietest active rep. Sustained variance beyond ~10β15% means your rotation, weights or caps need tuning.
- Skip and reassignment counts - how often availability skips and SLA pull-backs fire. A rising trend is an early warning on capacity or coverage, not just an ops curiosity.
- Time-to-first-action by rep - fairness of outcomes, not just inputs. If one rep's leads always wait, the rotation is fair and the process still isn't.
If the numbers look off and you're not sure why, start with a routing audit before you touch the rules.
The bottom line: set it up in an afternoon, scale it on purpose.
The MOD-counter build is a rite of passage, and for a small stable team it's honestly fine - build it, test it, ship it. Just go in knowing its shape: it does equal rotation among a fixed list, and everything else - weighting, availability, caps, SLAs, audit - is where the real fairness lives. When the edit requests start stacking up, that's not failure; that's your rotation telling you it's ready to graduate.
Fancy giving Distribution Engine a try?
You can trial Distribution Engine for free, or get in touch if you'd prefer to chat.
Related articles
- Round Robin Routing in Salesforce: Definition, Benefits & Setup Guide
- Salesforce Lead Distribution: How to Build a Fair, Fast Assignment System
- Route Leads by Availability: Mastering Team Hours in Salesforce
- How to Audit Your Salesforce Lead Routing Logic (And Fix What's Broken)
Frequently asked questions.
Does Salesforce have built-in round robin assignment?
No. Salesforce Lead Assignment Rules assign to fixed users or queues based on criteria, but cannot rotate through a team. Round robin in Salesforce is achieved either with a custom build (an auto-number field, a MOD formula and a record-triggered Flow), queue-based pull assignment, or a dedicated routing app like Distribution Engine.
How do I set up round robin lead assignment in Salesforce with Flow?
Create an auto-number field on the Lead, add a formula field MOD(VALUE(Lead_Number), N) + 1 where N is your team size, then build a record-triggered Flow with a Decision element mapping each result (1 to N) to a rep and an Update Records element setting the owner. It works for small, stable teams, but team changes, PTO and capacity all require manual edits to the formula and Flow.
What is weighted round robin assignment?
Weighted round robin is a rotation where members receive different proportions of leads by design - for example, a ramping new hire at 0.5x and a senior rep at 2x. It preserves round robin's transparency while matching distribution to real capacity and experience, and is typically the first upgrade teams need beyond strict equal rotation.
How do you handle vacations and availability in a round robin?
A scaled rotation checks availability before every assignment: online/offline status, working hours and calendar or PTO sync. Unavailable reps are skipped automatically and rejoin when they return. In DIY Flow builds this requires manual edits each time someone is out, which is the most common reason teams move to dedicated routing tools.
How many reps do you need before a Flow-based round robin stops working?
There's no magic number - it's about change frequency, not headcount. A five-person team with monthly joiners, leavers, PTO clashes and mixed seniority will outgrow a MOD-counter build faster than a stable ten-person team with uniform leads. The practical test: if you're editing the Flow more than once a month, the build is costing more than it saves.
β
Fancy giving Distribution Engine a try?
Have a play around for free, or get in touch if youβd prefer to chat.
Take us for a spin with a 30 day Free Trial
Have a play around for free, or get in touch if youβd prefer to chat.

%20dark.avif)