Salesforce Exits: 5 Horror Stories and What We Learned
Sometimes we get the call after the exit already failed. Here's what went wrong and how much it cost.
Story 1: The Lost Audit Trail ($1.8M Fine)
What Happened
Healthcare SaaS company, 14 years on Salesforce. Decided to exit to HubSpot. Hired a migration firm, moved data over 3 months. Decommissioned Salesforce 60 days after cutover.
18 months later: compliance audit requested proof of patient consent documentation from 2019–2022. All consent records were in Salesforce Chatter posts and File attachments.
Export didn't include Chatter or Files. Original Salesforce org: deleted.
Outcome: $1.8M HIPAA violation fine. Legal fees: $240K. Emergency data recovery attempt (failed): $85K.
What Should Have Been Done
- Retention policy audit before export
- Full metadata inventory including ContentVersion, FeedItem, EmailMessage
- Archive all attachments/files to immutable storage (S3 Glacier, etc.)
- Retain Salesforce org read-only for 7 years (cost: ~$30K/year vs. $1.8M fine)
Story 2: The Integration Time Bomb ($3.2M Overrun)
What Happened
Manufacturing firm exiting to Microsoft Dynamics. Budget: $800K, 9 months. Finished data migration on schedule.
Week 2 post-cutover: 47 integrations failed. They had mapped the main integrations (ERP, billing, marketing automation) but missed:
- 12 legacy webhook endpoints still hitting Salesforce APIs
- Field service mobile app calling Salesforce for routing (undocumented)
- Quarterly financial close script pulling Opportunity data directly from SOQL
- Partner portal SSO configured via Salesforce Identity
Emergency rewiring + Dynamics customization + data backfill: 14 additional months, $3.2M over budget.
What Should Have Been Done
- API usage logs analysis (90 days minimum)
- Network traffic inspection to catch undocumented endpoints
- SSO/Identity audit (check every SP in SAML config)
- Parallel-run integration testing for 30 days before cutover
Story 3: The Relationship Black Hole (6-Month Revenue Gap)
What Happened
B2B SaaS company, exiting Salesforce for homegrown CRM. Migrated Accounts, Contacts, Opportunities. Forgot to map:
- OpportunityContactRole (which contacts influenced which deals)
- Account hierarchies (parent/child relationships)
- Campaign membership history
Sales team lost visibility into: buyer committees, account org charts, marketing attribution. Deals stalled. New CRM showed flat account lists with no context.
Outcome: Revenue dropped 34% for two quarters while sales rebuilt relationships manually. Estimated lost revenue: $8.4M.
What Should Have Been Done
- Schema dependency graph showing all parent/child and junction objects
- Migrate relationships first, validate referential integrity, then migrate dependent records
- User acceptance testing with actual sales reps before cutover
Story 4: The Compliance Lockout (Exit Cancelled After $600K)
What Happened
Global pharma company planning exit to Veeva. Six months in, Legal discovered:
- Salesforce org contained EU clinical trial data subject to GDPR
- Data Processing Agreement required Salesforce-certified storage for 10 years post-trial
- Veeva didn't have equivalent certification for that specific data type
Exit blocked by Legal/Compliance. Spent $600K on discovery and planning. Had to stay on Salesforce.
What Should Have Been Done
- Legal/compliance stakeholder involvement from day zero
- Data classification audit (PII, PHI, CUI, export-controlled, etc.)
- Certification matching between source and target platforms
- Regulatory review before vendor selection
Story 5: The Incremental Export Disaster (9TB of Duplicates)
What Happened
Retail company, 87M records. Decided to export incrementally over 4 months to avoid downtime.
Export script used LastModifiedDate to identify "new" records each week. Didn't account for:
- Automated nightly batch jobs updating
LastModifiedDateon 40% of records weekly - Trigger cascades re-touching parent records
Same records exported 8–12 times. Deduplication failed (no External_ID__c on some objects). Loaded 9TB of data; actual unique data: 1.2TB.
Cleanup: 11 weeks, $340K. New CRM performance degraded from duplicate index bloat.
What Should Have Been Done
- Use immutable audit field or create
Export_Checkpoint__ctimestamp - Require External ID on every object before export starts
- Test incremental export on sandbox with real automation running
- Validate record counts per batch; halt if anomalies detected
Common Patterns
- Underestimating scope: "Just move Accounts and Opps" ignores 80% of the schema
- Trusting the tool: Migration vendors optimize for speed, not compliance or data fidelity
- Skipping parallel run: Cutover with no fallback = high-stakes gamble
- No retention strategy: Deleting source data before retention period expires
- Integration blindness: Only documenting the integrations you remember
Exit Readiness Checklist
- Full schema export including all standard/custom objects, relationships, and junction tables
- Compliance audit: retention policies, certifications, data residency, audit trail requirements
- Integration inventory: API logs, webhooks, SSO, ETL jobs, mobile apps
- Metadata archive: Chatter, Files, EmailMessage, Task history, Case comments
- External ID strategy: every object must have a unique, immutable identifier
- Parallel-run period: 30–90 days with both systems live
- Rollback plan: can you revert if the new system fails?
- Retention commitment: keep Salesforce read-only until legal/compliance clears deletion
What We Do Differently
Our Exit Assessment Service includes:
- Compliance review before vendor selection
- Schema dependency graph with relationship mapping
- Integration discovery via API logs + network trace
- Metadata inventory (not just "data")
- 3-scenario cost model: best case, realistic, disaster
- Retention strategy with annual cost projections
Goal: no surprises, no compliance violations, no lost revenue.
Planning an Exit? Don't Learn These Lessons the Hard Way.
Our Exit Assessment identifies hidden risks, compliance gaps, and integration landmines before you spend your first dollar on migration.