What your HubSpot portal will not tell you.
Paid seats nobody uses. Automation that runs, reports success and reaches nobody. Admin access that outlived the person who held it. Tendal connects read-only, names all of it, prices what can be priced, and then keeps watching. When the answer moves, you hear about it in Slack.
The first audit is free and needs no card. The sample runs on a synthetic portal, so you can read the output before granting anything.
Your portal knows all of this. It shows you none of it.
A HubSpot portal accumulates paid seats, dead automation and stale privilege the way a shared drive accumulates files. Every one of these is knowable from the portal's own data, and none of them has a screen. Tendal names them, prices what can be priced, and watches whether the number is going the right way.
What each seat costs, and whether it earns it
AvailableEvery user, their seat, and what they actually did in the window: contacts touched, sequences sent, meetings booked, calls dialled, deals and tasks worked. Then the cheapest seat that still fits, priced.
Seats nobody ever accepted
AvailableAn invite that was never accepted still allocates a seat, and you still pay for it. Because that user is never classified, this is the waste that goes missing from a manual review of the seats page.
Movement, not just a number
AvailableTendal re-scans on a schedule and keeps the trend. When the picture moves enough to act on, it emails you, or says so in Slack, Discord or Google Chat. No dashboard to remember to open.
Sequence sends that will fail
PartialA workflow enrols people into a sequence sent as a named colleague. If that colleague left, or their connected inbox dropped, every one of those emails fails and HubSpot says nothing. Tendal names them. Enrolling into a sequence from a workflow is an Enterprise feature, so this only applies to Enterprise portals.
Notifications that reach nobody
AvailableA workflow that notifies a named colleague stops reaching anyone the day they leave, and 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. Tendal names the workflow, the action, and which of the two it was.
Who can change everything
AvailableSuper admins as a share of your users, admins who showed no activity at all, and the ones offboarding forgot: deactivated people who kept the privilege after losing the seat.
Marketing contacts you are billed for and never mail
AvailableMarketable contacts are billed in blocks, and the number only ever climbs. Tendal reports the total, the slice that has never engaged or not for months, and warns before a block boundary rather than after the invoice.
Data quality
RoadmapOwnerless records, stale records, missing fields, object sprawl. It exists in the audit core already, and reaching Tendal costs two more read scopes, so it waits until it is asked for.
Connect once. Then stop thinking about it.
No agent in your portal, no spreadsheet to maintain, no quarterly seat review to schedule.
Connect the portal
OAuth, read-only scopes, about two minutes. Nothing is installed in your portal and Tendal never asks for a write scope.
It scans, and keeps scanning
The first audit is immediate. After that it re-runs on a schedule and records a snapshot, so you get a trend instead of a one-off opinion.
It tells you when it moves
Alerts go to the channel your team already reads. Each one has a threshold, so noise cannot fire it.
A saving that hides its blind spots is a guess.
Every signal Tendal cannot read makes users look quieter than they are, which makes the saving look bigger than it is. So a scan that could not measure something says which one, next to the number, every time.
The same goes for the seats it will not touch. Someone set as the sender on a live sequence automation needs a paid seat, whatever their activity looks like. When Tendal cannot establish that set with certainty, it flags the downgrades as unsafe to act on rather than quietly recommending them.
Two caveats travel with every result.
Login history is an Enterprise-only API. On a Professional portal that signal is simply absent, and the result says so instead of counting those users as inactive.
Anything your plan does not expose degrades to zero rather than to a silent assumption. Zero is a fact about the API, not about your team, and the difference is the whole point.
One portal, one monthly price.
Priced per connected portal and banded by how many people are in the portal, because that is what drives both the value and the work of scanning it.
- Weekly re-scan, so the number stays current
- Trend over time
- Scan on demand, any time
- Per-user detail on every scan
- Alerts by email, or to Slack, Discord or Google Chat
- Weekly re-scan, so the number stays current
- Trend over time
- Scan on demand, any time
- Per-user detail on every scan
- Alerts by email, or to Slack, Discord or Google Chat
- Weekly re-scan, so the number stays current
- Trend over time
- Scan on demand, any time
- Per-user detail on every scan
- Alerts by email, or to Slack, Discord or Google Chat
Annual billing on request: two months free. Prices exclude VAT. Paddle is the merchant of record and handles VAT and invoicing. You subscribe from inside the app, once a portal is connected, so the subscription is attached to that portal.
Find out what your portal is paying for.
The first audit is free, takes about two minutes to set up, and needs nothing but a read-only connection you can revoke at any time.
Connect your portal