The CRM Data You’re Legally Required to Delete (But Probably Haven’t): A 2026 Retention and Archiving Playbook

The CRM Data You’re Legally Required to Delete (But Probably Haven’t): A 2026 Retention and Archiving Playbook

Most CRM advice tells you how to capture more data, enrich it, and keep it forever. Almost none of it tells you that keeping certain records past their useful life is a compliance liability, a performance drag, and—on some platforms—a five-figure annual line item. Under the GDPR’s storage limitation principle, a controller has to delete or anonymize personal data at the end of its retention period whether or not anyone asks. That is not the same thing as the right to erasure. Yet the typical CRM we’re brought in to fix has ten years of dead leads, closed-lost opportunities, ex-employees’ contact records, and email engagement logs that no policy has ever touched.

This is a practical playbook for building a CRM data retention, archiving, and deletion program that satisfies compliance, keeps your org fast, and stops storage costs from quietly compounding—whether you run Salesforce, HubSpot, Zoho, or NetSuite.

Key Takeaways

  • The GDPR storage limitation principle (Article 5(1)(e)) requires deletion at the end of a retention period even if no data subject requests it—this is a standing obligation, not an on-demand one.
  • Every CRM record needs three things: a lawful basis, a retention period tied to that basis, and an automated deletion or anonymization step that fires when the period expires.
  • Deletion that leaves the same personal data alive in your data warehouse, marketing tool, analytics platform, and backups is not compliant erasure.
  • On Salesforce, objects above roughly two million records enter Large Data Volume territory, where reports, list views, and integrations start to degrade—archiving is a performance strategy, not just a compliance one.
  • Salesforce data storage runs about $125/month per additional 500MB; letting junk data accumulate is a real, recurring cost.
  • Archiving and deleting are different tools—archive what you may need later for legitimate reasons, delete what you have no lawful basis to keep.

Why This Problem Is Getting Worse, Not Better

Three forces are converging. First, regulators have moved from “we recommend” to “we expect.” The UK ICO is explicit that you should not keep personal data “for longer than you need it” and must be able to justify how long you hold each category. Second, AI agents and copilots now read across your entire CRM—so stale, duplicated, and out-of-basis records don’t just sit there quietly; they feed wrong answers into the tools your reps are starting to trust. Third, storage-based and consumption-based pricing means the cost of hoarding data is no longer invisible.

The uncomfortable truth we see on nearly every assessment: companies have a documented retention policy sitting in a compliance folder, and a CRM that ignores it completely. The policy says “delete inactive prospects after 24 months.” The CRM has leads from 2016.

Step 1: Classify What You Actually Hold

You cannot retain or delete on a schedule you haven’t defined. Start by mapping the personal-data-bearing objects in your CRM—typically Leads, Contacts, Accounts (for sole traders and individuals), Cases, Activities/Email logs, and any custom objects storing consent, health, or financial information.

For each category, record who the data subject is, what lawful basis you rely on (consent, contract, legitimate interest, legal obligation), and what purpose justifies keeping it. This is the work most teams skip, and it’s the work that makes everything downstream defensible. A closed-won customer’s invoicing history may need to be kept for tax law reasons for years; a cold lead who never converted and never consented has no such shield.

Step 2: Set a Retention Period for Each Category

The GDPR deliberately does not publish a schedule of retention periods—the regulator leaves it to you to justify based on purpose. That freedom is also the trap: “we never decided” is not a defensible period. Tie each retention clock to its lawful basis and to any overriding statutory requirement (tax, employment, sector rules such as HIPAA, SOX, or FINRA where they apply).

A workable starting framework, to be tuned with your legal counsel:

CRM data categoryTypical lawful basisIllustrative retention approach
Converted customer account & transaction recordsContract / legal obligationDuration of relationship + statutory period (often several years for tax)
Marketing prospects (consent-based)ConsentUntil consent withdrawn or a defined inactivity window (e.g. 24–36 months no engagement), then delete or re-permission
Unconverted leads (legitimate interest)Legitimate interestShort, justified window; delete when the sales purpose lapses
Closed support casesContract / legitimate interestRetain for warranty/quality window, then anonymize
Email open/click engagement logsLegitimate interestRolling window (often 12–24 months); older detail rarely justifiable

Write the period, the basis, and the trigger down. If you can’t explain in one sentence why you keep a category as long as you do, that’s the category a regulator will ask about.

Step 3: Decide—Archive or Delete?

These are not the same tool, and conflating them is where programs go wrong.

Delete when you no longer have a lawful basis or purpose to hold the personal data. Storage limitation is a positive obligation—the data has to actually leave.

Archive when you have a legitimate reason to retain the record but no operational reason to keep it in the live org—for example, historical customer records you must keep for tax or dispute reasons but don’t want slowing down your reps’ list views. Archiving moves the record to cheaper, separate storage while keeping it retrievable. It reduces performance load and storage cost; it does not discharge a deletion obligation.

The mistake we correct most often: teams “archive” data that they were actually required to delete, and treat the checkbox as done. Archiving personal data you have no basis to keep just moves the liability to a different bucket.

Step 4: Understand the Performance and Cost Stakes on Your Platform

On Salesforce, any object holding more than roughly two million records is generally treated as a Large Data Volume, and even lower volumes cause problems if queries aren’t selective. As objects scale, report execution, list views, SOQL queries, sandbox refresh times, and API integrations all degrade. Salesforce’s own guidance leans on selective, indexed filters—a custom index is only used when a filter matches under about 10% of records, up to a ceiling near 333,333 records—and, for the heaviest reporting objects, support-provisioned skinny tables. But indexing and skinny tables are workarounds for a database that’s carrying weight it shouldn’t. Archiving old records is the cleaner fix, which is why Salesforce’s LDV best practices explicitly recommend it.

Cost matters too. A Salesforce org gets on the order of 10GB of base data storage plus a small per-user increment (roughly 20MB of data storage per user license), and additional data storage is priced steeply—in the region of $125 per month for each extra 500MB. File storage is cheaper per gigabyte but adds up fast for orgs with heavy attachments. Junk data isn’t free; it’s a recurring bill you pay to slow your own system down.

Step 5: Automate the Deletion—Manual Processes Fail

At any meaningful scale, manual retention enforcement does not work. It relies on someone remembering, having the right permissions, and doing it consistently across objects. The reliable pattern is a scheduled job that identifies records whose retention trigger has passed and either deletes or anonymizes them—Salesforce scheduled Apex or Flows, HubSpot workflows plus its data-retention and deletion tooling, Zoho’s scheduled functions and data-subject request features, or a purpose-built archiving product.

Anonymization is a legitimate alternative to deletion when you want to keep aggregate analytics (how many deals closed in Q3 2022) without keeping the identifiable person. Done properly—so re-identification isn’t reasonably possible—anonymized data falls outside personal-data rules while preserving your reporting.

Step 6: Close the Downstream Loop

This is the step that turns a good CRM policy into an actual compliance program. A deletion from the CRM that leaves the same personal data intact in your data warehouse, BI tool, marketing automation platform, and backups is not a compliant erasure. Modern stacks sync CRM data everywhere, so your retention job has to either propagate deletions downstream or your architecture has to treat the CRM as the source of truth that others honor. Backups are explicitly in scope—personal data removed from live systems has to age out of backups within a defined, documented window too.

Common Mistakes to Avoid

  • Treating erasure requests as your whole program. Article 17 responses are reactive; storage limitation is proactive. You owe deletion on schedule regardless of requests.
  • No retention field on records. If nothing on the record encodes its basis and expiry, no automation can act on it. Stamp records with the data you’ll later filter on.
  • Deleting from the CRM only. The warehouse, marketing tool, and backups still hold the data.
  • Archiving as a synonym for “done.” Archiving is a storage and performance tool, not a legal discharge.
  • Bulk-deleting without checking references. Orphaned activities, broken campaign histories, and dangling lookups create their own mess—plan the object graph, not just the target object.
  • No audit trail. You need to be able to show what you deleted, when, and why. “We think it’s gone” is not evidence.

CRM Experts Online’s Perspective

We come at this as the team that has to actually build the scheduled jobs, not just write the policy PDF—and the gap between those two things is where the risk lives. Our starting move on a retention engagement is almost always the same: get legal and operations in the same room, agree a retention schedule that maps to real lawful bases, and only then touch the org. Deciding the schedule in the CRM console is backwards.

When we implement, we favor a record-level design first—every personal-data record carries the fields an automated job needs to judge it (basis, last-meaningful-activity date, retention expiry). Then we build the deletion/anonymization automation, test it hard against “already handled” and edge-case records so it doesn’t silently skip or double-process, and only then let it run on production data. For high-volume Salesforce orgs, we combine that with an archiving layer (Big Objects or an external store) so historical records you must keep stop dragging down live performance. The payoff is threefold: a defensible compliance posture, a faster org, and a smaller storage bill—and increasingly, cleaner ground truth for the AI agents now reading your CRM.

FAQ

Is deleting old CRM data actually a legal requirement, or just good hygiene? Under the GDPR’s storage limitation principle it is a requirement—you must not keep personal data longer than needed for its purpose, and you must be able to justify the period. Many sector rules add specific mandates. It’s both hygiene and law.

What’s the difference between the right to erasure and storage limitation? Storage limitation is a standing obligation to delete at the end of a retention period whether or not anyone asks. The right to erasure (Article 17) is an additional, on-demand right that lets an individual accelerate deletion. You need to satisfy both.

Can we just archive everything instead of deleting? No. Archiving is appropriate when you have a legitimate reason to keep a record but want it out of the live system. If you have no lawful basis to hold the data, you must delete or anonymize it—archiving doesn’t discharge that.

Does anonymizing count as deleting? If the data is genuinely anonymized so a person can’t reasonably be re-identified, it falls outside personal-data rules and is a valid alternative that preserves aggregate reporting. Weak pseudonymization that’s easily reversed does not count.

How does this affect Salesforce performance? Objects above roughly two million records enter Large Data Volume territory, where reports, list views, queries, and integrations slow down. Archiving old records—alongside selective indexing—is a core remedy.

What does keeping junk data cost? On Salesforce, additional data storage runs on the order of $125/month per 500MB, plus the harder-to-quantify cost of slower reports and worse AI outputs. It’s a recurring bill for a liability.

Do we have to delete from backups too? Yes. Backups are not exempt—personal data removed from live systems has to age out of backups within a defined, documented timeframe, and the same applies to warehouses and marketing tools.

How do we start if we’ve never done this? Classify your personal-data objects, assign each a lawful basis and retention period with legal input, decide archive-vs-delete per category, then automate. Don’t start by bulk-deleting—start by knowing what you hold.

Conclusion

A CRM that keeps everything forever isn’t a well-managed asset—it’s an accumulating compliance liability, a performance problem, and a storage bill, and now a source of bad data for your AI agents. The fix isn’t dramatic; it’s a defined retention schedule tied to lawful bases, an honest archive-versus-delete decision per category, and automation that enforces it across the CRM and everything downstream of it.

If your org has years of data nobody has ever pruned, that’s exactly the state we’re brought in to fix—on Salesforce, HubSpot, Zoho, or NetSuite. Schedule a consultation with CRM Experts Online and we’ll help you build a retention and archiving program that stands up to an auditor and speeds up your org at the same time.

Further Reading