Skip to content
SlashClone
Made by@revopslab

Crm field audit

@revopslab/crm-field-audit

Audit the fields in any CRM export (HubSpot, Salesforce, or other CSV). Reports fill rates, placeholder junk like n/a and unknown, top values, and flags empty, sparse, constant, default-heavy, and likely duplicate fields, plus fill rates by owner or team. Ends with a cleanup plan: what to hide, merge, make required, or fix.

SkillRevOpsv1.0.0 (latest)Tested
Activity
New: be the first to try it
  1. 1---
  2. 2name: crm-field-audit
  3. 3description: Audit CRM fields from a CSV export (HubSpot, Salesforce, Pipedrive, or any CRM) to find which properties are actually used. Reports fill rate per field, placeholder junk (n/a, unknown, tbd), top values, inferred type, and flags empty, sparse, constant, default-heavy, and likely duplicate fields, with optional fill rates by owner or team. Use when the user says "which fields are unused", "clean up our CRM properties", "field fill rates", "audit our Salesforce fields", "too many custom properties", or before a CRM migration or redesign.
  4. 4license: MIT
  5. 5---
  6. 6
  7. 7# CRM field audit
  8. 8
  9. 9Every CRM collects fields nobody fills in. This kit measures what is really used, from an export, and turns it into a short cleanup plan. It never changes the CRM.
  10. 11## When to use
  11. 13- Before a CRM cleanup, migration, or new reporting project.
  12. 14- When reps complain about too many fields, or reports have holes.
  13. 15- To check whether a required field is really being filled, and by whom.
  14. 16- Not for deduplicating records (that is a different job) and not for deleting fields.
  15. 18## Inputs
  16. 201. **An export with all columns** at `data/<object>.csv`, one object per file (contacts, companies, deals or opportunities, tickets).
  17. 21 - HubSpot: export the view with "All properties" selected.
  18. 22 - Salesforce: a report with every field you care about, or a Data Loader export.
  19. 23 - Use a recent, representative slice (for example records created in the last 12 months) so old imports do not skew the result. Ask which.
  20. 242. Optional: the **key fields** the business depends on (`--key-fields "Industry,Amount,Owner"`), and a **group column** to compare fill by owner or team (`--group-by "Owner"`).
  21. 26## Steps
  22. 281. Confirm the object, the time slice, and the key fields with the user.
  23. 292. Run:
  24. 31 ```bash
  25. 32 node scripts/field-audit.mjs data/companies.csv --group-by "Owner" --key-fields "Industry,Employees,Owner" --sparse 10 --out out --name companies-field-audit
  26. 33 ```
  27. 353. Read `out/<name>.json`. Flags mean:
  28. 36 - `empty`: nothing in it. `sparse`: filled on under `--sparse` percent of records (default 10).
  29. 37 - `constant`: one value everywhere. Often a default or a field only one integration writes.
  30. 38 - `default_heavy`: one value is 90% or more of filled records. The default is doing the work, not people.
  31. 39 - `placeholders`: 5% or more of records hold n/a, unknown, tbd, test, and similar. These are counted as empty.
  32. 40 - `possible_duplicate`: similar names, or the same value on 95% or more of rows where both are filled.
  33. 414. Write `out/<name>-plan.md` with the plan format below. Group fields into: hide or archive, merge, fix the default, make required or automate, keep.
  34. 425. Present the summary and the plan. For anything in "hide or archive", remind the user to check workflows, reports, and integrations that use the field before removing it.
  35. 44## Output format
  36. 46```markdown
  37. 47# Companies field audit (12 records, 14 fields)
  38. 49| Action | Fields | Why |
  39. 50| --- | --- | --- |
  40. 51| Hide or archive | Legacy Score | Empty |
  41. 52| Merge | Industry (Custom) into Industry | Same value on 10 of 10 rows |
  42. 53| Fix the default | Lifecycle Stage | 91.7% "Lead" |
  43. 54| Clean values | Original Source | 5 of 12 are n/a or Unknown |
  44. 55| Make required or automate | Annual Revenue | Key field, 33% filled: enrich it |
  45. 57Fill by owner: Rep C 68.8% average vs Rep A 87.5%.
  46. 58```
  47. 60## Guardrails
  48. 62- Read-only. Never delete, hide, or edit fields or records. The plan is a recommendation for the CRM admin.
  49. 63- A low fill rate can be correct (a field only for one segment). Ask before calling it unused.
  50. 64- Exports contain personal data. Show field-level stats only; do not paste rows.