GoHighLevel Round Robin Lead Assignment
Round robin looks simple until you check the weighting, reassignment settings, and whether the user pool still matches your actual team. Here is how GHL round robin really works.


GoHighLevel Round Robin Lead Assignment
Round robin sounds simple: leads come in, they get spread evenly across the team, everyone gets a fair share. In practice, GoHighLevel's round robin has enough configuration underneath it, weighting, maximization rules, reassignment behavior, that a setup which looked fair on day one can quietly become lopsided a few months later without anyone noticing until someone checks the numbers.
I audit this specifically on client accounts that have been running round robin for a while, because it is one of the automations most likely to drift from its original intent as the team changes. This post covers how GHL actually distributes leads under round robin, the settings that change its behavior, and what to check periodically so it stays fair.
What Is Round Robin Lead Assignment?
Inside the Assign to User workflow action, Round Robin is one of four assignment methods, alongside Contact Owner, Selected User, and Any User. Instead of sending every contact to one person or letting any eligible user pick it up, Round Robin cycles new contacts through a defined pool of users in order, so each one gets an even (or intentionally weighted) share over time.
How GHL Distributes Leads
The rotation works sequentially through your selected pool. If you have three users, the first contact goes to user one, the second to user two, the third to user three, and the fourth cycles back to user one. Under an equal split, this produces genuinely even distribution over a large enough sample, though any single short stretch can look uneven simply due to normal rotation order, which is worth remembering before assuming the system is broken from a small sample of recent leads.
Round Robin vs Weighted Routing
GHL's round robin is not limited to a strict equal split. You can adjust the traffic distribution so some users receive a larger share than others, useful when your team is not uniform, a full-time rep and a part-time rep should not receive the same volume, even if both are in the same rotation pool. This is configured directly in the Assign to User action rather than requiring a separate workflow, and it is worth revisiting deliberately rather than leaving at an equal default if your team composition includes anything other than full-time reps with identical capacity.
Setting Up the Workflow
Add the Assign to User action to your workflow, wherever new or updated contacts should trigger assignment. Set Assign To: Round Robin, then select the users who should be part of the rotation pool. If you want an even split, leave the distribution setting at equal. If not, adjust the weighting to reflect actual capacity differences on your team.
Two settings worth understanding before you save this: the Reassign Contact toggle controls whether this action can override a contact that is already assigned to someone, and Selected User Type and the Selected Maximization Rule let you further filter which users in the pool are actually eligible to receive the next contact, rather than always cycling through the full list regardless of current conditions.
Handling Team Availability
GHL's round robin does not automatically detect whether a team member is genuinely available in real time. What it can do is respect whether a user is active in the location at all, inactive users get skipped in the rotation. Beyond that, availability generally has to be managed by keeping the pool of users current: removing someone from the rotation when they are on leave, and adding them back when they return, rather than expecting the system to infer availability on its own.
If your booking calendar is also using round robin assignment for meeting scheduling specifically, GHL's Round Robin Calendar setting handles new appointment preferences slightly differently from the workflow-based Assign to User action, giving preference to a contact's already-assigned user if one exists before falling back to round robin. Worth checking which of the two, workflow-based or calendar-based, is actually driving assignment for a given lead source, since running both without understanding how they interact is a common source of confusion.
Preventing Duplicate Assignment
The Reassign Contact toggle is the main lever here. With it off, the Round Robin action only assigns contacts that do not already have an owner, which prevents a later workflow run from silently reassigning someone who was already routed correctly. With it on, the action will override an existing assignment every time it runs, which is occasionally what you want (a lead re-entering the pipeline after going cold, for example) but is a common cause of leads unexpectedly changing owners when left on by default across multiple workflows touching the same contacts. If you are layering round robin on top of source or location routing, the pattern covered in GoHighLevel Lead Routing, keep this setting deliberate rather than accepting whatever the default happens to be.
Tracking Assignment Performance
Distribution fairness should be checked periodically against your actual pipeline data, not assumed to hold indefinitely just because the setup was correct when you built it. Pull assignment counts per user over a meaningful window, a month or a quarter, and compare against your intended split. A pool that started with three equal reps and is now down to two because someone left the rotation pool without anyone updating the workflow will silently overload the remaining two.
Setting up round robin correctly, including the weighting, the reassignment behavior, and layering it properly with source or location routing, is exactly the kind of GoHighLevel work I take on for clients. If your current lead distribution feels uneven or you are not sure it is still working the way it was originally set up, book a free 30-minute call and bring your current workflow, and we will audit it together.
Frequently Asked Questions
What is round robin in GoHighLevel?
It is one of four assignment methods inside the Assign to User workflow action, distributing new contacts sequentially across a defined pool of users so each one receives a fair, even or intentionally weighted, share over time.
How do I set up round robin in GHL?
Add an Assign to User action to a workflow, set the assignment method to Round Robin, select the pool of users, and choose an equal or weighted distribution depending on whether your team has uniform capacity.
Does GHL round robin distribute leads evenly?
Yes, over a large enough sample, assuming an equal weighting and a stable pool of users. Small, recent samples can look uneven simply due to normal rotation order, and a user leaving the pool without the workflow being updated will skew results.
Can I exclude certain users?
Yes, by simply not including them in the selected pool for that Assign to User action, or by making them inactive in the location, which causes round robin to skip them automatically.
Can GHL assign leads by location and round robin?
Yes, by combining an If/Else condition on location with a Round Robin action scoped to the region-specific team, so leads are first filtered by location and then distributed evenly within that regional pool.
What is better than round robin?
Neither is universally better. Round robin is right when any qualified rep can handle any lead and fairness of distribution matters most. Rule-based or conditional routing is right when the correct rep genuinely depends on something specific about the lead, not just whose turn it is.
Why does round robin feel uneven even though it is set up correctly?
Usually because the user pool has drifted from what it was originally set up to be, someone left without being removed, or the Reassign Contact toggle is quietly overriding assignments from an earlier workflow. Check assignment counts against your intended split periodically rather than assuming it still matches.
If you would rather have this audited than audit it yourself, I take on GoHighLevel automation work through Upwork.

Want this built against your real numbers?
A 30-minute call to scope the workflow, agent, or automation you actually need.
Have a workflow that's burning hours every week?
Bring me one real bottleneck. I'll tell you whether it's worth automating, and what it would take.