HubSpot/No. 32/6 min read
Nobody can say what half your HubSpot properties mean. Your AI agent can’t either.
Every custom property is a promise that a field means something. Most portals made hundreds of those promises and kept a fraction. Now the agents are reading all of them.
Open HubSpot settings, go to Properties, and filter to custom contact properties. If you can't say what a third of them mean, who owns them, or whether anything still reads them, you don't have a CRM. You have a junk drawer with an API.
The fix isn't a one-time cleanup sprint. It's property governance: a definition, an owner, and a lifecycle for every field. October is the time to do it. Planning season is when next year's reports get built, and every AI agent you're about to switch on will read those fields as if they mean something.
How a portal ends up with hundreds of properties nobody understands
Nobody sets out to build a mess. It accumulates one reasonable decision at a time.
A campaign needs a checkbox, so someone creates webinar_q3_attended. An integration installs its own fields on connect. A trade-show list gets imported and the importer creates new properties instead of mapping to existing ones. A new ops hire doesn't trust lead_source, so they build lead_source_new. Nobody deletes anything, because deleting feels riskier than leaving it.
Three years later, the description column is mostly blank and the property list is a geological record of every team that ever touched the portal.
The four kinds of dead weight
When we export a portal's properties, almost every custom field falls into one of four buckets:
- Orphans. Near-zero fill rate, used nowhere. Safe to archive. Usually the biggest bucket.
- Ghosts. Filled once by an import, never updated since. The data looks real and is years stale.
- Twins. Two or more properties holding the same fact.
industryon the company,Industry (SFDC)from the sync, andverticalfrom an old form. Each one has slightly different values. - Load-bearing mysteries. Low fill rate, but referenced by a dozen workflows, lists, and reports. Nobody knows why. These are the dangerous ones.
Why property sprawl got expensive this year
For years, sprawl was an annoyance. Reps scrolled past fields they didn't recognize. Report builders guessed. It cost time, not trust.
That changed when agents started reading and writing the CRM. An AI agent picks fields by name and description. Give it three lead source properties with blank descriptions and it will pick one. Maybe the right one. It will also write to fields with nobody watching, which is why we push teams to govern exactly which fields an agent can touch before turning one on.
The same thing happens with humans, just slower. Two people build the same pipeline report off two different source fields and walk into the same meeting with two different numbers. That's not a reporting problem. It's a data problem, and the property list is where it starts.
The property governance model we ship
Five moves. The first three clean up what's there. The last two keep it from growing back.
1. Export the full inventory
HubSpot lets you export all properties across objects into one spreadsheet: name, internal name, type, description, group, options, creator, usages, and fill rate. Do contacts, companies, and deals first.
Then add four columns that HubSpot can't fill in for you: owner, source_of_truth, decision (keep, merge, archive), and notes. That spreadsheet is the working document for the whole project.
2. Run the health check as a first pass
HubSpot's Data Model Health Check scans properties and flags low fill rate, inactive properties, likely duplicates, and properties with a high fill rate but no usage. It's a useful triage list. It isn't a decision. A low fill rate on a field that only applies to enterprise deals might be exactly right. Use the flags to sort the spreadsheet, then let a human decide.
3. Decide: keep, merge, or archive
- Orphans: archive in bulk.
- Ghosts: archive, or keep only if someone can name a report that needs the history.
- Twins: pick the survivor. Backfill it from the others with a workflow, repoint every form, list, workflow, and report to the survivor, then archive the rest.
- Load-bearing mysteries: trace every usage before you touch them. Open each workflow that references the field and write down what it does. Half the time the workflow is dead too.
Two catches. HubSpot won't let you archive a property that's still used in certain assets, like a workflow or segment, until you remove it there. And archived properties are permanently deleted after 90 days. Export the property history for anything with real values before you archive it.
4. Write the definition into the property itself
Every surviving custom property gets a description in the same format:
Meaning: The channel that created the first known touch. Owner: RevOps. Written by: form submission + enrichment workflow. Read by: lead score, routing, source report.
That description is documentation for the new hire, the report builder, and the agent. All three read the same field. If it's blank, all three guess.
5. Gate creation and review quarterly
Limit who has permission to edit property settings to a small group. Everyone else requests new fields through a short form: what it means, who owns it, what writes to it, what reads it. If they can't answer those four questions, they don't need the field yet.
Use a naming convention that tells you the owner and purpose, and group properties by owning team. Then re-run the health check every quarter and work the new flags. Sprawl is a rate, not an event. You're managing the rate.
What good looks like
Fewer properties. Every one with a definition and an owner. A new hire can read the schema and understand the business. Two people building the same report get the same number. An agent asked to update a contact's source writes to the one field that means source.
That's the whole point of a system you can read. The data model is documentation, not archaeology.
Where to start this week
Export all properties for contacts, companies, and deals. Count the custom properties with a blank description. Then count the ones with a fill rate under 5%. Those two numbers are your baseline, and they're usually worse than anyone expected.
Pick the twenty properties that matter most: your source fields, lifecycle and lead status, industry, and anything your scoring or routing reads. Define, merge, and document those first. That's a week of work, not a quarter, and it's the foundation every Marketing Operations & CRM engagement we run starts from.