Stale Contacts
Flags: Contacts that haven't been updated in 180+ days and haven't been contacted in 90+ days. Customers are left out.
Why it matters: They make list counts look bigger than they are, and on active lists they drag down deliverability.
HUBSPOT AUDIT CHECKLIST
A HubSpot portal audit should check five things: whether your records are usable, whether lifecycle stages mean what they say, whether deal data holds up, who owns what, and whether workflows and properties still work. These are the 27 checks the free PineRiverData audit runs across those five areas, each with exactly what it flags and why it matters. Work through them by hand, or run all 27 on your portal in one go.
Whether your contact counts mean anything, and whether you're emailing people you shouldn't.
Flags: Contacts that haven't been updated in 180+ days and haven't been contacted in 90+ days. Customers are left out.
Why it matters: They make list counts look bigger than they are, and on active lists they drag down deliverability.
Flags: Contacts that have hard-bounced and are still in the CRM.
Why it matters: Every send to them counts against your sender reputation.
Flags: Contacts who've unsubscribed from email but whose records were updated in the last 30 days.
Why it matters: It usually means a workflow or import is still touching people who opted out.
Whether lead, MQL, SQL and opportunity mean one thing, or whatever the last workflow wrote.
Flags: Contacts at SQL or Opportunity with no open deal and no activity in 90 days, plus Customers with no activity in 24 months.
Why it matters: Conversion rates built on these stages come out higher than they really are.
Flags: Contacts who've been SQL for 14+ days with no deal attached.
Why it matters: A contact normally moves on to Opportunity once a deal is opened. Weeks without one means the handoff to sales has stalled.
Flags: Leads and subscribers with no owner who've been on your website in the last 30 days.
Why it matters: People are researching you and nobody is following up.
Needs: Website tracking (Marketing Hub)
Flags: Contacts from deals lost in the last 12 months who've been back on your website in the last 60 days.
Why it matters: A lost deal coming back to look is one of the strongest buying signals you'll get.
Needs: Website tracking (Marketing Hub)
Whether the pipeline number holds up when someone asks where it came from.
Flags: Open deals that haven't changed stage in 30+ days.
Why it matters: Either they're dead and still counted, or the work isn't being logged.
Flags: Open deals worth more than 5,000 (in your portal's currency) with no logged activity in the last 14 days.
Why it matters: Pipeline nobody is working doesn't close on the date it says.
Flags: Open deals missing a name, stage, amount or close date.
Why it matters: Any of those missing and the deal either drops out of the forecast or skews it.
Flags: Open deals whose close date has already passed.
Why it matters: They're still counted in this period's forecast when they can't close in it.
Flags: Open deals whose close date has been pushed later 3+ times with no stage change in the last 60 days.
Why it matters: The date keeps moving because the deal isn't.
Flags: Deals closed in the last 12 months with no won or lost reason recorded.
Why it matters: You can't see why you win or lose without it.
Flags: Open deals older than twice your average sales cycle, worked out from your own closed-won deals.
Why it matters: Deals that old rarely close, but they sit in the pipeline total.
Flags: Commit or Best Case deals sitting at a stage under 30% probability, and Pipeline deals at a stage over 70%.
Why it matters: The rep's call and the stage disagree, so the forecast can't be both.
Who owns what, whether deals are attached to people, and whether new leads get picked up.
Flags: Open deals with no contact attached.
Why it matters: They don't show up in any report that starts from contacts: source, attribution or persona.
Flags: Deals, contacts and companies owned by users who've been deactivated.
Why it matters: Nobody is working them, and the team that could pick them up can't see them as theirs.
Flags: Contacts sharing a mailbox (including +tag and upper/lower-case variants) or the same name on the same company domain, and companies sharing a domain.
Why it matters: Reps end up working the same people twice, and counts come out too high.
Flags: Contacts created in the last 90 days who converted but have no owner, or whose owner changed 2+ times in their first 7 days.
Why it matters: Routing rules that fail don't throw an error. The lead just sits there.
Flags: Open deals worth more than 5,000 with only one contact on them.
Why it matters: If that one person goes quiet or leaves, the deal goes with them.
Flags: Companies that have deals but no owner.
Why it matters: The deal has an owner but the account doesn't, so nobody sees the whole relationship.
Flags: Owned contacts who converted in the last 30 days and weren't contacted within 24 hours of being created.
Why it matters: The longer an inbound lead waits, the less likely it is to qualify.
Automation that's quietly stopped working or fighting itself, and custom properties nobody uses.
Flags: Active workflows with no enrolments in the last 90 days.
Why it matters: Either the trigger is broken or the workflow has been abandoned.
Needs: HubSpot Professional or above
Flags: Active workflows with 50+ enrolments in the last 90 days where more than 40% didn't complete.
Why it matters: Records are dropping out partway, so the later steps never happen.
Needs: HubSpot Professional or above
Flags: Active workflows with 3+ actions that haven't been edited in over a year.
Why it matters: They're still running on rules that may not match how you work now.
Needs: HubSpot Professional or above
Flags: Lifecycle stage, lead status, owner or lead score being set by 3+ active workflows.
Why it matters: The value you see is whichever workflow ran last.
Needs: HubSpot Professional or above
Flags: Custom contact properties with no description, filled in on fewer than 5% of contacts, or with near-duplicate names.
Why it matters: Nobody knows which field to use, so reports pick different ones.
Five areas: whether contact records are usable (stale, bounced, unsubscribed), whether lifecycle stages are accurate, whether deal data holds up (stages, close dates, amounts, activity), who owns records and deals, and whether workflows and custom properties still work. The 27 checks above cover all five.
Yes. The PineRiverData audit is free and connects to HubSpot read-only. It runs these 27 checks, scores your portal out of 100 and emails you a PDF with your top three issues and a 30-day fix list. No card and no trial.
Connecting takes about 90 seconds. The checks usually finish in 30 to 90 seconds, a few minutes for very large portals, and the PDF reaches your inbox in under 10 minutes.
Yes. 23 of the 27 checks run on any tier. The four workflow checks need Professional or above, so on Free or Starter they're listed as not run and left out of the score.
No. It only reads. The access token is discarded when the audit finishes, and the PDF report is deleted after 24 hours.
Doing it by hand? The step-by-step guide is How to audit your HubSpot CRM. Lifecycle stages are where most portals drift first: HubSpot lifecycle stage quirks and fixes.
23 of the 27 checks work on any HubSpot tier. The four workflow checks need Professional or above. On Free or Starter they're listed in your report as not run, and they don't count towards the score. Dark Pipeline and Closed-Lost Re-engagement need website tracking to find anything.