The complete guide

How to audit a HubSpot portal.

A HubSpot portal accumulates cost quietly: seats nobody uses, automation that fails silently, access nobody revoked, contacts you pay to keep marketable and never mail. None of it is on a screen you visit. This is what an audit has to cover and how to run each part by hand.

Why a portal drifts in the first place

Nothing here is the result of carelessness. Every one of these findings is the accumulated residue of ordinary events: somebody left, somebody changed role, a form was configured two years ago, an integration was given a sensible default nobody has revisited since.

What they share is that no single screen shows them. The page that tells you what you pay for and the page that tells you whether it is earning are different pages, and the join between them is a manual one. So the work never quite gets done, and the cost never quite stops growing.

They also share a second property, which is the harder one: the answer expires. An audit produces a number that is correct on the day and drifts from that day onward.

The five areas

What a HubSpot audit has to cover.

In rough order of how much money is usually sitting in each. The first two are almost always the largest, and the second is the one manual reviews miss.

01

Seats, and whether each one earns its price

Every user, the seat they hold, and what they actually did in a window: contacts touched, deals worked, meetings booked, sequences sent, calls dialled. Then the cheapest seat that still lets them do their job. The subtlety is role shape rather than volume — someone working a support queue is busy in a way a deal-count review reads as idle.

02

Seats nobody ever accepted

An invitation that was never completed still allocates a seat and still appears on the invoice. Because that user was never fully classified, they have no login, no owned records and no activity — so every filter you would build to catch unused seats excludes them by construction. This is the waste that reliably survives a manual review.

03

Automation that reports success and reaches nobody

A workflow that notifies a named colleague stops reaching anyone the day they leave. A team that emptied out is the same story. HubSpot answers the send with "No valid recipients were identified" and surfaces that nowhere you would look, so the workflow keeps running, keeps reporting success, and keeps doing nothing.

04

Who can change everything

Super Admins as a share of your users, admins with no activity at all in the window, and the ones offboarding forgot: deactivated people who kept the privilege after losing the seat. Removing a seat and removing an admin grant are separate actions, and it is easy to do the first and not the second.

05

Marketing contacts you are billed for and never mail

Marketable contacts are billed in blocks and the count only ever climbs. What matters is not the total but the distance to the next boundary, and the inert slice inside the total — contacts that have never engaged, or not for months, that you are nonetheless paying to keep marketable.

Running it by hand

Each area below has a full walkthrough. Start with seats: it is where the money usually is, and the method generalises to everything else.

The part that does not survive being done once

Everything above is a defined afternoon's work. The difficulty is not the first pass — it is that the result decays from the moment you finish. Every hire, departure, role change, form submission and integration sync moves one of these numbers, so a portal that was clean in March is not clean in September, and the only way to keep it correct by hand is to spend the afternoon again.

That is the actual argument for automating it, and it is a narrower claim than "save time". A one-off audit tells you what is wrong today. What earns its keep is being told when something changes — which is a different job, and the one this product does.

Run the whole thing free

Tendal connects read-only, covers all five areas in a few minutes and prices what can be priced. No card, and you can read a sample on a synthetic portal before granting anything.