Why your HubSpot leads go unassigned, and how to fix lead routing
A lead fills out your demo form, lands in HubSpot, and then nothing happens. No owner, no task, no email from a rep. By the time someone notices, the lead has booked a call with a competitor. If that sounds familiar, the problem is almost never HubSpot itself. It is the way routing was set up.
First, check where leads are actually getting stuck
Before changing anything, pull a quick list. Create a contact view filtered to Contact owner is unknown and Create date is in the last 30 days. Add the columns Original source, Lifecycle stage, Lead status and the form they submitted. In most portals a pattern shows up within a few minutes. Maybe it is every lead from one form, every lead from a certain country, or every lead created by an integration rather than a form.
That pattern tells you which of the problems below you are dealing with.
1. The workflow never enrolled the lead
The most common cause is simple. The routing workflow has enrollment triggers that are too narrow. It only fires on one form, or only when lifecycle stage equals MQL, or only when a property is known that your new form does not collect.
- Open the workflow and read the triggers out loud. If a new form, a chat bot or an integration creates contacts, ask whether those contacts can ever match.
- Check re enrollment. If a contact was enrolled months ago and comes back as a hot lead, they will not route again unless re enrollment is switched on for that trigger.
- Look at the enrollment history for one of the stuck leads. HubSpot shows you exactly why a record did or did not enroll.
2. Rotation is running, but to the wrong people
The Rotate record to owner action, available with workflows on Professional and Enterprise plans, assigns records to a list of users in turn. It does not know who is on holiday, who has left the company, or who is already drowning in leads. If a deactivated user or someone on leave is still in the rotation, every few leads will quietly land with nobody who is working them.
- Review the rotation list every time someone joins, leaves or changes role. Put it on a monthly checklist.
- Use teams instead of individual names where you can, so the list updates when the team does.
- For leave, take the rep out of the rotation for those dates rather than hoping they check their queue.
3. There is no fallback
Good routing has an answer for every lead, including the weird ones. Most broken setups have a happy path for the ideal lead and nothing for everything else: no country, a personal email address, a company that is not in your territory map.
Add a final branch to the workflow that catches anything not routed by the earlier branches. Assign it to a named person or a queue owner, create a task, and send an internal notification. A lead with a fallback owner is always better than a lead with no owner.
4. Something else is overwriting the owner
Sometimes the lead does get an owner and then loses it. The usual suspects are a CRM sync, an enrichment tool, a CSV import with an empty owner column, or a second workflow that clears owner when lifecycle stage changes. Open the property history for Contact owner on a stuck record. It shows every change, when it happened and what caused it.
5. Duplicates are splitting ownership
If the same person exists twice, one record can be owned and the other not. Reps then work the owned record while new activity piles up on the orphan. Turn on duplicate management, merge the obvious ones, and make sure forms and integrations deduplicate on email address.
6. Speed is the real goal, so measure it
Routing is only half the job. What you care about is how fast a real person follows up. Add a simple report that shows time from create date to first outreach by owner, and a daily list of leads older than one business day with no activity. Those two views will catch most routing problems before a lead goes cold.
When native rotation is not enough
Native rotation works well for small teams with simple rules. Once you need territories, account based ownership, weighting by capacity, or matching leads to existing accounts, teams usually add a dedicated routing tool such as LeanData or Chili Piper, or build custom logic with workflows and custom code actions. Pick the simplest option that covers your rules, and document the rules somewhere sales can read them.
A quick checklist
- Build an unassigned leads view and look for the pattern.
- Fix enrollment triggers and switch on re enrollment where it makes sense.
- Clean the rotation list and remove inactive users.
- Add a fallback branch so every lead gets an owner.
- Check owner property history for anything overwriting it.
- Turn on duplicate management.
- Report on speed to first touch, not just assignment.