How do I set up round robin lead assignment in HubSpot?
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.
The 9 specs, in build order
Each spec states its minimum tier. Free ones open in full; the others show their public preview and the date their full spec lands.
What a spec looks like
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
What breaks, and how the specs prevent it
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.
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.
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.
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, Operations Hub only for the last one.
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 Operations 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 Operations 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.