How do I set up round robin lead assignment in HubSpot?
Short answer
Build it in three layers. Start with one workflow that fires on Contact created and uses Rotate record to owner against a pool of reps, ... roughly twenty minutes.
Add territory or team branches above it, then exclusions below it for named accounts and reps who are out. Sales Hub Professional or higher, since Starter has no workflow actions. The trap: rotation counts leads, not workload, so a rep on vacation still takes their turn until someone edits the pool.
Read the whole answerShow less
What a spec looks like
The nine sections, and the files
Every spec follows the same nine sections, so a team reads one and knows how to read all of them.
- Outcome, when to use it and when not to
- Prerequisites: properties, lists, tiers, with the JSON to create them
- Enrollment and re-enrollment, then every step with its parameters
- Known pitfalls, a test plan, variants, and the YAML build spec
PDF, Markdown, properties JSON, workflow JSON, custom code where used. Test plan and known pitfalls in every spec.
Each spec states its minimum tier. The 12 free ones open in full, the others show their public preview.
The 9 specs, in build order
Baseline rotation, contacts and deals
One trigger, one rotation action, one date stamp. The piece every other spec in the bundle reuses.
What each spec doesHide
Territory and team branching
Turns one pool into one pool per region, or walks a parent and child Teams structure instead.
What each spec doesHide
Uneven capacity and daily caps
Gives a senior rep a bigger share than a ramping one, and alerts sales ops when a rep crosses an agreed daily maximum.
What each spec doesHide
Exclusions for absent reps
Pauses intake for someone who is out, and pulls back the leads they never worked before they left.
What each spec doesHide
The same rotation on a support queue
Ticket assignment by queue, built on the identical action, for teams routing both objects.
What each spec doesHide
The escape hatch
Hands the decision to an external tool when native branching cannot express the rule, with a fallback rotation if that tool fails.
What each spec doesHide
The 3 things that break this, and how the specs stop them
The random split is a coin toss, not a queue
The weighted pattern uses the random branch action, which is statistical rather than a strict counter.
Over a handful of leads in one day the split can look badly uneven even though the long run average matches your target percentages. Judge it from a monthly report grouped by the audit property, never from a single morning.
How the specs stop itShow less
Rotation counts leads, not workload
Rotate record to owner spreads records evenly by count at the moment it runs.
A rep on vacation still takes their turn, and an AE already juggling twenty open deals still gets the next one. There is no native action that counts how many leads an owner already received today and refuses the next one, so a daily cap is a saved report plus a human editing the pool.
How the specs stop itShow less
The pool is a list, and lists go stale
Rotation pools built as manual user lists do not update when someone joins or leaves the team.
A deactivated rep is skipped by the action, which is fine, but a rep who sits in two Teams ends up in two pools and quietly takes a double share. Audit pool membership against the real roster quarterly.
How the specs stop itShow less
What this bundle builds
The job is easy to say and annoying to build. A lead arrives, and within minutes it belongs to a named rep who knows it is theirs, with a task in their queue and a timestamp on the record. HubSpot gives you one action for this, Rotate record to owner. It does one thing well and several things not at all.
These nine specs turn that one action into a routing system. There is a baseline rotation for contacts and one for deals. There are territory branches on top, plus a Teams version that walks your org chart. There is a weighted split for teams where a senior rep should take twice what a ramping rep takes, and a fairness cap for days when one person is drowning. There is an absence pattern that pauses intake for a rep who is out and pulls back leads nobody worked. The same rotation is applied to a support queue, since tickets rotate the same way. And an escape hatch for the day native branching runs out of room.
It fits an in house RevOps team building its first routing layer, and an agency rebuilding the same workflows on every new portal. Sales Hub for most of it, Service Hub for the ticket spec, Data Hub only for the last one.
Read the restShow less
How the pieces fit together
Build in this order, and each step keeps working when the next lands on top.
Start with the flat rotation. One trigger on Contact created, filtered to Contact owner is unknown, one rotation action, one date stamp on the lead routed date property. Twenty minutes, and it is the piece every other spec reuses. That owner is unknown filter is what stops a later workflow from pulling a lead out from under a rep who already has it.
Territory goes second. It reads a Territory dropdown that you have to populate yourself, from a hidden form field or a country lookup, and it turns one pool into one pool per region. The Teams version swaps those pools for your org chart and wants Enterprise.
Capacity comes third, once the flat split is proven. The weighted spec adds an audit property purely so you can see where leads actually landed, since the random split reports nothing on the record by itself.
Exclusions come last: named accounts as a suppression list, absent reps as a second list plus a reassignment workflow.
What you get
- 9 specs, from a 20 minute baseline rotation to a 55 minute external routing pattern
- Each spec ships as PDF and Markdown
- Properties JSON: 7 properties across contacts, deals and tickets
- Workflow JSON in Automation API format, switched off on import
- Custom coded actions: none. One spec uses the native Trigger a webhook action, which needs Data Hub Professional
- A test plan per spec, with the records to create and the history tab to check
- Variants per spec, including wait until versions of the delay based steps
- One click install for Full and Agency buyers
Who it is for, and who should skip it
Take it if you own routing in one portal and you are tired of rebuilding the same rotation from a blog post that stops at step three. An agency gets the most out of it, since eight of the nine are portal agnostic and get rebuilt on every client.
Skip it if you have one rep per territory. You want Set property value, not a rotation, and the free spec says so in its first section. Skip it if you are on Starter, where none of this runs. And if routing is one of six problems on your list rather than the one keeping you up, the full library works out cheaper per spec than this bundle.
Questions admins ask
Does HubSpot round robin distribute leads evenly?
Yes, by count, at the moment the action runs. Rotate record to owner spreads records evenly across the pool as it stands at execution time, so adding or removing a rep does not rebalance anything already assigned. What it does not do is look at workload, which is why a rep with twenty open deals still takes their turn.
Can I set up round robin without Sales Hub Professional?
No. Rotate record to owner is a workflow action, and workflows are a Professional feature. On Starter the honest answer is a meetings rotation link or manual assignment. Seven of the nine specs here run on Sales Hub Professional, one needs Enterprise for nested Teams, and one needs Data Hub Professional for the webhook action.
How do I stop leads going to a rep who is on vacation?
You take them out of the rotation pool by hand before the absence starts. HubSpot does not support custom properties on the Users and Owners object, so there is no out of office flag a workflow can read. The vacation spec pairs that manual edit with a second workflow that waits three days and pulls back any lead the absent rep never touched.
Can one rep get more leads than another?
Yes, using the random split action instead of the rotate action. You convert agreed capacity ratios into fixed percentages, nest a second split to get a three way share, and stamp an audit property so you can check where leads actually landed. Past three or four reps the nesting gets hard to read, and a true live capacity check needs custom code.
Does the same pattern work for deals and tickets?
Yes, and two specs in the bundle do exactly that. Deal rotation is the same action on a deal created trigger, with a stale deal check one business day later. Ticket rotation branches on a queue property rather than a territory. The one thing to watch is that a deal created from an already owned contact should usually inherit that owner instead of rotating.
Read 12 complete specs before you pay.
One per category, same format as the paid ones. Email only, no card.
We email the link, then a short note when specs change. Nothing else.
Here it is. Download the pack now (.zip) The link is in your inbox too.
Browse the library