CRM architecture · How-to

How to Fix CRM Field Bloat Without Deleting a Single Field

CRM field bloat is a screen problem before it is a data problem. Hundreds of fields on a record, about a dozen in real use. Here is the hide-first method we use to give every team a short record in week one, then clean up the rest without breaking anything.

Joe LaGrutta, Founder of JayOh

Joe LaGrutta, Founder, JayOh

13 min read · Updated November 2026

Clippy-style paperclip meme asking if you want help filling in all 700 CRM contact fields when your team uses 12, illustrating CRM field bloat
The meme that started this post. Joe LaGrutta, JayOh.

↗ 700 fields shown, 12 used. That gap is the whole problem.

Read the original LinkedIn post ▾
Joe LaGrutta, Founder of JayOh

Joe LaGrutta, Founder, JayOh

LinkedIn

Your CRM doesn't have a data problem. It has a screen problem. Hundreds of fields on the contact record. Most teams use about a dozen. Reps scroll past the noise to find the fields that matter. Eventually they stop looking, and the important fields get skipped along with the useless ones. Each field made sense to someone once. Nobody removes them, because deleting feels risky. You don't have to delete first. Start by hiding. What we do in week one: 🔸 List the fields each team actually uses, by role 🔸 Build record layouts per team showing only those fields 🔸 In Salesforce, use Dynamic Forms visibility rules to show fields by stage 🔸 In HubSpot, customize the record sidebar and middle column per team Reps see a short record instead of a long scroll. Fill rates on the fields that matter tend to rise without a single training session. Then cleanup gets easy. Anything no layout shows, no report reads and no workflow touches is a deletion candidate. You can prove nobody will miss it before it goes. A record that shows everything gets nothing filled in.

01 · Why it happens

Why CRM field bloat happens

Nobody decides to build a 700-field record. It accumulates one reasonable request at a time, and nothing in the system ever removes anything.

CAUSE 1

Fields get added, never retired

Each field made sense to someone once: a campaign, a board question, a one-off report. Adding takes two minutes. Removing feels risky, so nobody owns it.

CAUSE 2 · THE BIG ONE

One layout serves every team

SDRs, AEs, CS and finance all open the same record and scroll past each other's fields. The record shows everything, so the critical fields get skipped along with the useless ones.

CAUSE 3

Migrations and integrations import everything

A migration or a new data tool brings every source field along "just in case." Enrichment and sync tools add dozens more that nobody on the team reads.

CAUSE 4

Usage data exists, nobody looks

HubSpot shows fill rate and usage for every property. Salesforce shows where a field is used. Neither gets reviewed until budget season or a migration forces it.

CAUSE 5

Deleting is the only cleanup idea

Teams think the fix is a big deletion project, so they postpone it. The faster, safer move is to change what each person sees first.

If you have already lived through the workaround version of this, our post on CRM technical debt covers how temporary fields become permanent. This post is about the fix.

02 · Benchmarks

What good looks like

Strong CRMs show each rep 25 fields or fewer by default and keep the decision-critical ones above 90% filled. The total field count matters less than what each person has to scroll past.

MetricWeakAcceptableStrong
Fields visible on a rep's default record view60+25–6025 or fewer
Custom fields on a core object (Salesforce Enterprise cap is 500)350+ (70%+ of cap)150–350Under 150
Share of fields with fill rate under 5%50%+25–50%Under 25%
Fill rate on the 10–15 decision-critical fields per teamUnder 70%70–90%90%+
Hours per week a team member spends hunting for basic information13+ (the survey average)5–13Under 5

Sources: Salesforce edition limit from Salesforce Help, Custom Fields Allowed per Object (2026). Hours-per-week average from Validity, State of CRM Data Management (2025, 602 respondents). Weak/acceptable/strong bands are JayOh ranges from CRM audits, not survey results.

13 hrsa week spent hunting for basic information (Validity, 2025)
79% vs 54%of high vs. underperforming sales teams prioritize data hygiene (Salesforce State of Sales, 2026)
~70%of rep time goes to non-selling work (Salesforce State of Sales, 2024)
$12.9Maverage yearly cost of poor data quality per organization (Gartner, 2021)
03 · The playbook

The 10-step playbook: hide, prove, then archive

Change what people see in the first 30 days. Use the next 60 to prove which fields nobody needs. Only then remove anything.

Days 1–30Hide

Role layouts go live. No data changes.

Days 31–60Prove

Tag archive candidates. Owners confirm.

Days 61–90Archive

Export values, archive, log every change.

  1. 1

    Export field usage

    What: one row per field with fill rate, last update and every place it is used. Why: you cannot argue about fields without evidence, and memory is wrong about half the time.

    HubSpot: Settings > Properties > Export all properties. The file includes fill rate and usage and arrives by email. Salesforce: export the field list from Object Manager, build a report that counts non-blank values per field, and check "Where is this used?" on anything referenced by automation.

  2. 2

    Map fields to roles

    What: a 30-minute session per team (SDR, AE, CS, finance, marketing ops) asking which fields they read, which they write, and at what stage. Why: a field that matters to finance at renewal is noise to an SDR on first touch.

    Build a simple role x field matrix in a sheet: rows are fields, columns are teams, cells are R (read), W (write) or blank. Most fields end up with one or zero marks.

  3. 3

    Pick 10–15 decision-critical fields per team

    What: the fields that drive routing, forecast, comp, handoff and board reporting. Why: these are the ones that must be above 90% filled, so they go at the top of every layout.

    Test each candidate: "If this field were blank, what decision would go wrong?" If nobody can name one, it is supporting, not critical.

  4. 4

    Build team views in HubSpot

    What: one record view per team. Why: reps see their fields first, and the rest disappear without being deleted.

    Settings > Data Management > Objects > [object] > Record Customization > Create team view, then Assign teams. Team views need a Professional or Enterprise subscription. Clone the default view first, because a new team view starts from the system default. Put critical fields in a property card in the middle column, and use the card's "Set conditional logic" to show a card only when it applies (for example, a Renewal card only when lifecycle stage is Customer). Up to 50 cards and 5 tabs are allowed, which is far more than you should use. Then customize record previews so the preview sidebar matches.

  5. 5

    Build role layouts in Salesforce with Dynamic Forms

    What: Lightning record pages where fields show by stage, profile and device. Why: one page can serve every team without anyone scrolling past fields they never use.

    In Lightning App Builder, select the Record Detail component and choose Upgrade Now to migrate the page layout into Field Sections. Add visibility rules on each section: record data (Stage equals Negotiation), user (Profile or Permission) and device. Assign pages by app, record type and profile. Dynamic Forms works on most LWC-enabled standard objects and custom objects, but not on Tasks, Events or Products, and the Opportunity create window still uses the page layout.

  6. 6

    Hide, don't delete (days 1–30)

    What: remove low-value fields from every layout and keep the data intact. Why: hiding is reversible in minutes, and it shows you who actually misses what.

    Announce it in one message: "Your record is shorter. If something you need is gone, reply here." Log every request in a sheet. In our experience, requests are rare, and each one tells you about a field that really is needed.

  7. 7

    Tag archive candidates (days 31–60)

    What: a list of fields that no layout shows, no report reads and no automation touches. Why: this is the proof that nobody will miss them.

    Rule: fill rate under 5% or no update in 12 months, zero references in workflows, flows, Apex, reports, lists, forms or validation rules, not written by an integration. In HubSpot, the Archive panel lists "Assets preventing archiving" for each property. Send the list to each field's owner for a yes or no.

  8. 8

    Archive with a safety net (days 61–90)

    What: archive or delete confirmed candidates in small batches. Why: small batches make any surprise easy to trace.

    HubSpot: archived properties can be restored for 90 days, then they are permanently deleted. Salesforce: export field values first, then delete. Deleted custom fields can be restored for 15 days. Record every change (who, what, why, date) in a change log.

  9. 9

    Put a gate on new fields

    What: a short intake for every new field request. Why: without one, bloat comes back within two quarters.

    Required on every request: owner, purpose, the report or automation that will read it, which team layout it goes on, and a review date. Add the owner and purpose to the field's description (HubSpot) or Help Text (Salesforce).

  10. 10

    Measure fill rate where it matters

    What: a weekly report on the critical fields per team and a quarterly count of fields per object. Why: the goal is better data on fewer fields, not a smaller number for its own sake.

    HubSpot: a custom report with "is known" filters on each critical property, grouped by owner. Salesforce: a summary report with a row-level formula counting non-blank critical fields, grouped by owner. Re-run the full usage export every quarter.

04 · Best practices and mistakes

Best practices, and the mistakes that cost the most

The best cleanups change the screen first and the schema last. The expensive mistakes all come from deleting before proving.

Best practices

  • Layouts first, deletion last. Hiding is reversible and reps feel the difference the same day.
  • One layout per team per stage, never one per person.
  • Critical fields at the top, in one card, in the order the work happens.
  • Enforce required fields at the stage gate, not on record create.
  • Every field has an owner and a description. No owner, no field.
  • Prefix integration-owned fields (for example SYNC_ or ENR_) so admins know not to touch them.
  • Merge duplicates. Five "lead source" variants become one picklist.
  • Picklists over free text for anything you report on.
  • Review new-field requests monthly and require the report that will read it.
  • Keep a change log with who, what, why and when.
  • Re-run the usage export quarterly.

Common mistakes

  • Mass-deleting from a usage export.Costs: a broken workflow, integration or board report nobody checked, and days of recovery.
  • Making fields required on create.Costs: reps type junk to get past the rule. Fill rate looks great, and the data is fake.
  • One "simple" layout for everyone.Costs: finance and CS lose fields they need and rebuild them in a spreadsheet.
  • Ignoring the integrations.Costs: a sync re-creates or overwrites the fields you just hid or archived.
  • Treating low fill rate as "unused."Costs: a 2%-filled field can still trigger a renewal or billing automation.
  • No gate on new fields.Costs: the record is back to 400 fields in two quarters.
  • Skipping the data export before deletion.Costs: history you may need in diligence or an audit is gone for good.

Duplicate fields usually travel with duplicate records. If both are a problem, pair this with our CRM deduplication guide. For the rep side of the rollout, see seller adoption.

05 · Interactive tool

Field bloat cost calculator

Put in your own numbers to see how much time a long record costs your team each year, and how your layout grades against the benchmark.

Scrolling and scanning time. 0.15 seconds is a conservative default; adjust it.
Noise ratio0%
Minutes lost per person per day0
Team hours lost per year0
Layout grade--
Estimated yearly cost of scrolling past unused fields$0

Estimate only: it counts scanning time, not the cost of bad data from skipped fields, which is usually larger. Grade bands: 25 or fewer fields strong, 25–60 acceptable, over 60 weak (JayOh ranges).

06 · Template + Claude skill

Copy the field triage template

Paste this into your audit sheet or ticket. It is the exact rule set from steps 3, 7 and 9, so every field gets the same decision no matter who reviews it.

CRM FIELD TRIAGE: RULES AND ROLE LAYOUT SPEC
Object: ____________   Owner: ____________   Review date: ____________

1. EXPORT (one row per field)
   Name | API name | Type | Fill rate | Last updated | References (workflows/flows, reports, lists, forms, validation, Apex, integrations) | Layouts | Owner

2. PROTECTED (never archive)
   [ ] System fields
   [ ] Written by an integration or sync
   [ ] Read by routing, forecast, comp or billing logic
   [ ] Referenced by Apex or an external API

3. DECISION RULES (apply in order)
   KEEP AND SHOW    = a team named it decision-critical, OR fill rate 70%+ and read by a report or automation
   KEEP, HIDE       = has references or history value, no team needs it day to day
   ARCHIVE CANDIDATE= fill rate under 5% OR no update in 12 months, AND zero references, AND not protected
   INVESTIGATE      = anything else (low fill + active references, duplicate meaning)

4. ROLE LAYOUT SPEC (one per team)
   Team: ________  Stage: ________
   Critical fields (10-15, in work order): ________________________
   Supporting fields (max 10): ________________________
   Conditional display rule: show group ______ when ______ = ______

5. 90-DAY PLAN
   Days 1-30   Hide: role layouts live, no data changes, log every "I need that field back"
   Days 31-60  Prove: tag archive candidates, owners confirm yes/no
   Days 61-90  Archive: export values, archive in small batches, change log updated
               (HubSpot archive restorable 90 days; Salesforce deleted fields restorable 15 days)

6. NEW FIELD GATE (required on every request)
   Owner | Purpose | Report or automation that reads it | Team layout | Review date
Free Claude skill

crm-field-triage

Hand Claude your HubSpot or Salesforce field export and it applies this post's rules field by field.

  • Sorts every field into keep and show, keep but hide, archive candidate or investigate, quoting the export as evidence.
  • Finds duplicate fields and drafts a 10–15 field layout for each team.
  • Grades you against the benchmarks above and writes the 90-day hide, prove, archive plan.

How to install

  1. Claude web or desktop: Settings > Capabilities. Make sure code execution and file creation is on. Under Skills, click Upload skill, choose the .zip, then toggle it on.
  2. Claude Code: save the file as ~/.claude/skills/crm-field-triage/SKILL.md, or under .claude/skills/ in your repo.

Skills are available on Claude Pro, Max, Team and Enterprise plans. New to skills? Read how to use skills in Claude.

Preview SKILL.md ▾
---
name: crm-field-triage
description: Triage CRM field bloat in HubSpot or Salesforce. Use when someone shares a property or field export (fill rate, last updated, where used, layout placement) and wants to know which fields to keep, hide from layouts, archive, or investigate, plus a lean record layout per team. Applies the JayOh hide-first method.
---

# CRM Field Triage

You turn a raw field or property export into a decision for every field and a short record layout for each team. You follow the JayOh hide-first method: hide before you archive, archive before you delete, and never remove a field you cannot prove is unused.

## Inputs to ask for

1. The field export. HubSpot: Settings, Properties, Export all properties (it includes fill rate and usage). Salesforce: the object field list plus a non-blank count per field and the Where is this used result for any field you are unsure about.
2. The object (contact, company, deal, lead, account, opportunity).
3. The teams that use the record (for example SDR, AE, CS, Finance, Marketing Ops) and, if known, which fields each team reads or writes.
4. Any fields that feed integrations, billing, routing, forecasting or compensation.

If an input is missing, list it under Missing evidence. Do not guess.

## Step by step

1. Normalize the export into one row per field: name, internal name, type, fill rate, last updated, number of references (workflows or flows, reports, lists or segments, forms, validation rules, Apex, integrations), layouts it appears on, owner.
2. Flag protected fields first: system fields, fields written by an integration, fields read by billing, routing, forecast or comp logic, and anything referenced by Apex or an external API. Protected fields are never archive candidates.
3. Classify every remaining field with these rules, in order:
   - KEEP AND SHOW: a team named it as decision-critical, or fill rate is 70 percent or higher and at least one report or automation reads it.
   - KEEP, HIDE FROM LAYOUTS: it has references or history value, but no team needs to see it day to day.
   - ARCHIVE CANDIDATE: fill rate under 5 percent, no update in 12 months, zero references, not on any layout a team asked for, and not protected.
   - INVESTIGATE: anything that does not cleanly fit, including low fill rate with active references, or duplicate meaning with another field.
4. Find duplicates: fields with the same meaning under different names (for example several lead source fields). Recommend one survivor and a merge path.
5. Build one layout per team: the 10 to 15 decision-critical fields first, grouped by stage, then at most 10 supporting fields. Note where conditional display should hide a group until a stage or lifecycle value is reached.
6. Grade the current state against the benchmarks: fields shown on the default rep view (25 or fewer strong, 25 to 60 acceptable, over 60 weak); share of fields with fill rate under 5 percent (under 25 percent strong, 25 to 50 percent acceptable, 50 percent or more weak); fill rate on decision-critical fields (90 percent or more strong, 70 to 90 percent acceptable, under 70 percent weak). These bands are JayOh experience ranges, not survey results.
7. Write the 90-day plan: days 1 to 30 hide, days 31 to 60 tag and confirm archive candidates with owners, days 61 to 90 export data and archive. In HubSpot, archived properties are permanently deleted after 90 days. In Salesforce, deleted custom fields can be restored for 15 days, so export the values first.

## Output format

1. Summary: total fields, counts per decision, the three grades, and the single biggest risk.
2. Decision table: field, decision, reason (quote the export values you used), owner to confirm.
3. Duplicates: groups and the recommended survivor.
4. Team layouts: one list per team, in display order, with conditional display notes.
5. 90-day plan with named owners where known.
6. Missing evidence: every input you needed and did not get.

## Guardrails

- Quote the export as evidence for every decision. Never invent fill rates, counts or references.
- Never recommend deleting a protected field or a field with any active reference.
- Hiding is the default when in doubt.
- Do not name the client or expose record-level data in the output.

Built by JayOh (jayoh.io). Method and benchmarks: https://jayoh.io/crm-field-bloat/
07 · FAQ

CRM field bloat FAQ

Short answers to the questions we hear most in CRM audits.

How do I find unused fields in Salesforce?

Export the field list from Object Manager, build a report that counts non-blank values for each field, and check “Where is this used?” for anything that might be referenced by automation. A field with a fill rate under 5%, no update in 12 months and no references in flows, Apex, reports or validation rules is an archive candidate.

How do I find unused properties in HubSpot?

Go to Settings > Properties and use Export all properties. The export includes each property's fill rate and where it is used. When you open Archive on a single property, HubSpot also lists the assets that prevent archiving, such as workflows, forms and segments.

Should I delete or hide unused CRM fields?

Hide first. Removing a field from every layout is reversible in minutes and shows you who actually needs it. Archive or delete only after 30 to 60 days with no requests, zero references and an owner's sign-off, and export the values before you delete.

Can I show different record layouts to different teams in HubSpot?

Yes. On Professional and Enterprise subscriptions, go to Settings > Data Management > Objects, choose the object, open Record Customization and create a team view. Assign it to teams, and use conditional logic on cards to show them only when they apply.

What are Salesforce Dynamic Forms?

Dynamic Forms move page layout fields into sections on a Lightning record page, where each section can show or hide based on record data, the user and the device. They work on most LWC-enabled standard objects and on custom objects, but not on Tasks, Events or Products.

How many custom fields can a Salesforce object have?

It depends on the edition: 100 on Professional, 500 on Enterprise and 800 on Unlimited and Performance, according to Salesforce Help. Managed packages can add more, up to the object's hard limit.

How many fields should a sales rep see on a record?

In our audits, strong setups show 25 fields or fewer on a rep's default view, with the 10 to 15 decision-critical fields at the top. More than 60 is where critical fields start getting skipped.

The JayOh take

A record that shows everything gets nothing filled in

Field bloat is not a hygiene project you schedule for next quarter. It is a design decision you make every time someone opens a record. Fix the screen in week one, prove what nobody needs, then clean up with evidence instead of nerve.

This is the same method behind the data cleanups where we have cut data errors by 90%. Our HubSpot audit and Salesforce audit frameworks start with exactly this export.

Get a field audit for your CRM

Sources: HubSpot: Customize records · HubSpot: Organize, delete and export properties · Salesforce: Dynamic Forms · Salesforce: Custom fields per object