The Audit — Clean — is two equal halves: the top-down process your business should run, and a bottom-up review of what the CRM actually does. This post is the property half. It isn't a generic health score or a one-time report you read and file away. It's a series of specific decisions, one property at a time, about what stays, what goes, and what nobody's agreed on yet.
The actual method: check usage, trace the logic, decide
For every property on an object, the same three-step pattern repeats. First, check where it's actually used — most CRMs can show you whether a field appears in any workflow, form, report, or view. Second, if it is used somewhere, open that workflow and trace what it's actually doing, not what its name implies it does. Third, make an explicit call. That third step is where most audits are vague and where a real one has to be specific — "review the data" isn't a decision, and neither is "clean it up."
In practice, every property lands in one of five buckets:
- Keep — it works as intended, no changes needed.
- Delete — no longer serves a purpose, safe to remove.
- Turn into a rule — the field itself is fine, but what counts as a correct value needs to be written down as an explicit, checkable condition instead of left to interpretation.
- Pending on a person — genuinely undecidable in this session; a specific stakeholder needs to weigh in before it can close.
- Blocked on a process decision — the field isn't the problem. The process it's supposed to reflect hasn't been agreed on yet, so there's nothing to decide until that happens separately.
That last bucket matters more than it sounds like it should. A field can be perfectly well-built and still be un-auditable, because the real issue is one level up — the business hasn't actually settled on what the process should be. Forcing a data decision onto an unresolved process question just produces a field that's "fixed" until the process changes again next quarter.
What audits actually find (three patterns worth knowing before you start)
Shadow duplicates of native platform fields
Most CRMs calculate certain things automatically — days since last contact, weighted pipeline value, that kind of thing. It's extremely common to find a custom-built field quietly recreating one of these, usually because whoever built it didn't know the native version existed, or built it before the platform added one. Neither field is wrong exactly, but now there are two sources of truth for the same number, and nothing forces them to agree.
Fields that are populated and still wrong
The most common surprise in any real audit isn't a blank field — it's a filled-in one that's quietly inaccurate. A date field everyone assumes is reliable turns out to be off by a meaningful margin on a real share of records, and often nobody can say exactly why. This is the sharpest version of the problem an audit exists to catch: the field isn't broken in any way a formatting check would notice. It's just not telling the truth, and it's been that way long enough that it's shaped decisions before anyone caught it.
Dependencies that live outside the CRM entirely
Before removing or hiding anything, a real audit has to check more than internal usage. A property can show zero workflows, zero forms, and zero reports referencing it inside the CRM, and still break something the moment it's deleted — because a finance spreadsheet or a reporting export pulls that column every month, completely invisible from inside the CRM itself. Checking internal usage alone isn't enough; the audit has to account for what consumes the data downstream, outside the platform.
How long does a CRM audit actually take?
Longer than a checklist. For a CRM with a meaningful amount of custom-built complexity — hundreds of properties spread across Deals, Companies, and Contacts — a proper audit moves object by object, and each major object takes real, focused working time to get through carefully. This isn't something to compress into an afternoon; treating it that way is usually how audits end up being cleanup theater instead of an actual fix.
What you actually get at the end
Two things, not one. A clear, current picture of how the business actually runs today — not the onboarding-deck version — and a set of best-practice recommendations for what should change, grounded in real GTM and CRM architecture judgment rather than a generic template. The second part is what separates an audit from a cleanup: a cleanup tidies up what's already there, an audit tells you what should be different.
Common questions
What's the difference between a CRM audit and a data cleanup?
A data cleanup fixes formatting, duplicates, and blanks. A CRM audit goes further: it checks whether each property, workflow, and stage still reflects the process your business actually runs today, not just whether the data looks tidy. A field can pass every cleanup check and still be drifted.
Do I need to fix my sales process before auditing my CRM?
No — for many teams, the audit is what surfaces that the process needs to be redefined in the first place. Some properties end up flagged as blocked on a process decision rather than fixed immediately, which is a normal and expected outcome, not a failed audit.
How long does a CRM audit actually take?
It depends on how much custom complexity has accumulated, but for a CRM with hundreds of properties across Deals, Companies, and Contacts, expect real, focused work — not a single afternoon. A thorough audit typically moves object by object, with each major object taking substantial dedicated time to get through properly.
What happens to a field nobody's sure about?
It gets marked pending rather than forced into a decision on the spot. A good audit process explicitly tracks which fields are waiting on a specific person's input, so nothing gets deleted or kept just to close out the list.
Can your leadership team trust the numbers?
Let's chat and we’ll start from those numbers, then clean up what’s behind them in HubSpot.