The Complete Guide to
Leaving Salesforce.

Everything we've learned from 20 years of Salesforce data migrations, distilled into a practical guide. What to expect, what to watch for, and how to do it without losing your data or your mind.

Contents

Should You Actually Leave?

This might seem like a strange way to start a guide from a company that does exit migrations. But we've told organizations not to leave. If leaving doesn't make sense, we'd rather say so upfront than take your money for a project that hurts your organization.

When Exit Makes Sense

Cost has exceeded value. Salesforce licensing costs increase annually. If your per-user cost has climbed to $300+/month and you're using 30% of the platform's capabilities, the math stops working. Especially for nonprofits and mid-market organizations where those dollars directly compete with mission delivery.

You've outgrown the platform. Your data model has been stretched beyond what Salesforce handles well. You're fighting governor limits, building workarounds for features the platform doesn't support natively, or spending more time on Salesforce administration than on the work it's supposed to enable.

Your industry has moved. Purpose-built platforms now exist for verticals that used to rely on Salesforce because there was nothing better. Nonprofit CRMs, healthcare platforms, and financial services tools have matured significantly.

Vendor relationship has deteriorated. Aggressive renewal tactics, surprise price increases, feature deprecation without alternatives. When the vendor relationship becomes adversarial, it's time to evaluate options.

When Exit Doesn't Make Sense

You're frustrated with implementation, not the platform. A poorly configured Salesforce org doesn't mean Salesforce is wrong for you. Sometimes the answer is a better implementation, not a different system.

You don't have a destination. Leaving Salesforce without knowing where you're going is a recipe for landing in a worse situation. Choose your destination first, or at least narrow the field.

Your contract just renewed. If you signed a 3-year agreement last month, start planning now but don't panic. You have time to do this right.

The pain is temporary. Mid-implementation growing pains, a recent org merge, or a team transition can feel like platform failure. Give it 6 months. If the pain persists, revisit.

What Data You Own

The good news: you own your data. Salesforce's Master Subscription Agreement (MSA) is clear on this point. Customer data belongs to the customer. Salesforce is a processor, not an owner.

The nuance is in what counts as "your data" and how easy it is to extract.

Data You Clearly Own

  • All records in standard and custom objects (Accounts, Contacts, Opportunities, etc.)
  • Attachments and files (ContentDocument, ContentVersion, Attachment)
  • Field history tracking data
  • Chatter posts and comments
  • Email message records
  • Reports and dashboard definitions
  • Custom metadata and configuration

Data That Gets Complicated

AppExchange managed package data. If you use managed packages (NPSP, Conga, FormAssembly), the data in their custom objects is yours, but the schema definitions and code belong to the package publisher. You can extract the records; you can't replicate the object structure without rebuilding it.

Platform-generated metadata. Salesforce IDs, system timestamps (CreatedDate, LastModifiedDate), and formula field outputs exist because of the platform. You can export them, but they may not be meaningful in your destination system.

Einstein and AI outputs. Predictions, scores, and insights generated by Salesforce Einstein are derived from your data but produced by Salesforce's models. These typically don't transfer.

How to Get It Out

Salesforce provides several extraction mechanisms. None of them are complete on their own. A real exit typically requires combining multiple approaches—which is the subject of Chapter 4.

The Hidden Complexity

Salesforce exits fail for one reason above all others: organizations underestimate what "getting the data out" actually means. Here's what makes it hard.

Relationships Are the Real Challenge

Your data doesn't exist as flat tables. Accounts have Contacts. Contacts have Activities. Opportunities have OpportunityLineItems which reference Products and PricebookEntries. Break one relationship and you lose referential integrity across the entire chain.

A typical enterprise org has 200+ lookup and master-detail relationships. Some are 4-5 levels deep. They all need to be mapped, extracted in the right order, and re-established in the destination system with new IDs.

Attachments Are Massive

Over the years, Salesforce has used three different file storage mechanisms: Attachments (legacy), ContentDocument/ContentVersion (modern), and Feed Attachments (Chatter). Most orgs have data in at least two of these. File extraction is slow (API limits apply), storage-intensive, and requires matching files back to their parent records.

We've seen orgs where attachments account for 80% of the total data volume but were barely considered in the exit plan.

History Tracking Doesn't Export Cleanly

Field History Tracking records are read-only and only accessible via API. They can't be exported through Data Loader or Reports. If your compliance requirements mandate preserving field-level change history, you need specialized extraction—and you need to plan where this history will live in your destination system.

Automation Contains Business Logic

Every Flow, Process Builder, Apex trigger, validation rule, and workflow rule represents business logic that lives inside Salesforce. This logic doesn't "export." It needs to be documented, understood, and rebuilt in whatever system you're moving to.

The risk isn't forgetting the automation exists. It's not realizing that a validation rule from 2019 is the only thing preventing duplicate records, or that a trigger handles a critical integration handshake that nobody documented.

Picklists Define Meaning

Field values like "Active," "Closed Won," or "Board Member" only mean something because of how they're used in reports, automations, and user workflows. When you move to a new system, you need to decide: do you keep the same values? Map them to new ones? Consolidate? Every picklist field is a decision point.

How Data Gets Extracted

There are five primary ways to get data out of Salesforce. Each has strengths and limitations.

1. Data Export Service (Weekly Export)

Salesforce's built-in export generates CSV files for all objects. It's free and simple, but it misses attachments, has no relationship preservation, and runs on Salesforce's schedule (weekly or monthly). Useful as a backup, not as a migration tool.

2. Data Loader

Salesforce's desktop application for bulk data operations. Handles SOQL queries, can export to CSV, and supports the Bulk API for large volumes. Good for straightforward object-by-object extraction, but requires manual handling of relationships and doesn't handle files well.

3. REST and SOAP APIs

Programmatic access to all queryable data. Maximum flexibility, but you're building and maintaining extraction scripts. API call limits apply—a large org can take days to extract via REST API alone.

4. Bulk API 2.0

Designed for high-volume data operations. Processes up to 100 million records per 24-hour period. The right tool for large extractions, but requires development effort to handle pagination, job monitoring, and error recovery.

5. Specialized Migration Tooling

Purpose-built tools (like ours) that combine multiple APIs, handle relationship ordering automatically, manage file extraction, and preserve referential integrity. Higher cost, dramatically lower risk.

What We Use

We use a combination of Bulk API 2.0, REST API, and custom tooling depending on the data type. Our extraction engine handles dependency ordering (parent objects before children), relationship ID mapping, and file retrieval automatically. All data lands on dedicated encrypted storage during the migration.

Realistic Timelines

How long it takes depends on what you have. Here are ranges based on actual engagements.

Simple Org

2-4 months

Straightforward exit with minimal complexity.

  • < 1M total records
  • < 10 custom objects
  • Few or no integrations
  • Minimal automation
  • Standard objects only
  • < 50 GB total storage

Medium Org

4-8 months

Typical enterprise org with meaningful customization.

  • 1-10M records
  • 10-50 custom objects
  • 3-10 integrations
  • Moderate automation (Flows, some Apex)
  • Managed packages in use
  • 50-500 GB storage

Complex Org

8-18 months

Large org with deep customization and dependencies.

  • 10M+ records
  • 50+ custom objects
  • 10+ integrations
  • Heavy Apex, complex Flows
  • Multiple business units
  • 500 GB+ storage

These timelines include assessment, planning, extraction, transformation, loading, and validation. They don't include destination system implementation—that's a separate workstream handled by your team or a destination vendor.

Common Pitfalls

After 20 years of migrations, we see the same mistakes. Here's what to avoid.

Starting Without an Assessment

The most expensive mistake is committing to a timeline and budget before you know what you're dealing with. A $50K migration estimate becomes $200K when you discover 500 GB of attachments, 14 integrations nobody documented, and 3 years of field history that compliance requires you to keep. Get the assessment first.

Letting Your Salesforce Partner Run the Exit

Your Salesforce implementation partner has a financial incentive for you to stay. Their certifications, partnerships, and recurring revenue depend on the Salesforce ecosystem. This doesn't make them bad people—it makes them the wrong people to run your exit. Choose a vendor with no Salesforce partnerships.

Ignoring Attachments Until Load Time

File migration is consistently underscoped. Organizations plan meticulously for record migration and then discover at load time that they have 400 GB of attachments spread across three storage mechanisms. File extraction is slow, storage-intensive, and needs to happen early in the project.

Skipping the Parallel Run

Cutting over in a single weekend feels efficient. It's actually reckless. A parallel run—where both systems operate simultaneously for 2-4 weeks—gives you a safety net. Users can verify data, integrations can be tested under real conditions, and rollback remains simple.

Treating Migration as a Data Problem Only

Data is the hardest part, but it's not the only part. User training, process changes, integration rewiring, report rebuilding, and change management all need planning. Organizations that focus exclusively on "moving the data" end up with a technically successful migration and a user base that can't function.

Waiting Until the Contract Ends

Salesforce access ends when your contract does. If you haven't extracted everything by that date, you're negotiating from a position of zero leverage for an extension. Start the exit process at least 12 months before contract expiration for medium orgs, 18+ months for complex ones.

Next Steps

If you've read this far, you're serious about leaving. Here's how to start.

1. Get an Assessment

Before anything else, know what you're working with. Our Exit Assessment gives you a complete inventory of your org, a complexity score, cost comparison, and an honest recommendation. It takes 2-3 weeks and requires minimal effort from your team.

2. Choose Your Destination

If you haven't already, evaluate destination platforms. The assessment report will help frame what your destination system needs to support. We don't implement destination systems—this keeps us conflict-free—but we're happy to discuss what we've seen work.

3. Plan the Migration

With an assessment in hand and a destination chosen, the migration can be planned properly. Field-by-field mapping, transformation specifications, integration cutover sequences, and a realistic timeline. We offer strategic exit planning as a standalone engagement.

4. Execute

Extraction, transformation, loading, validation, and cutover. This is where the planning pays off. Done right, it's methodical and boring. Done wrong, it's a crisis.

Throughout the process, your data is handled according to our data security standards—dedicated encrypted hardware, documented chain of custody, and secure deletion when the engagement ends.

Ready to Start?

The first step is always an assessment. Let's find out what you're working with.

tyler@colbysdatamovers.com