Ask anyone who has moved a CRM and you’ll hear the same story: consultants, frozen systems, lost history, months of cleanup. Earlier this year we moved our own customer records out of Salesforce — and we braced for all of it.

None of it happened. Nobody stopped working, nothing was lost, and the moving part ran in a single evening. Here is what we did, step by step.

What we were moving

Our Salesforce account held a little of everything, accumulated over many years:

  • About 138,000 people and companies — leads, accounts, and contacts
  • About 7,700 deals, with the products, prices, and contacts attached to each one
  • About 1.7 million logged activities — emails, calls, and to-dos going back to 2008
  • Dozens of custom fields our team had added over the years

Altogether, just over 1.9 million records. The kind of pile that makes people say a migration takes a quarter. It didn’t.

Step 1: We counted the furniture before moving house

The first thing we did was, technically, nothing — at least nothing Salesforce could feel.

We ran a read-only audit: a careful count of everything in the account without changing a single record. It told us how many of each kind of record we had, which custom fields existed, and which automated rules were still running — 39 workflow rules and 39 email templates, as it turned out.

Two useful things fell out of that count. First, we finally knew exactly what we owned — you’d be surprised how few companies can say that. Second, the audit caught a few automations that could never have fired as written, which meant we could leave them behind guilt-free.

Step 2: We decided what was actually worth moving

Not everything in an old CRM deserves a seat on the truck. We chose the records that matter — people, companies, deals, products, and the activity history — and deliberately left some things behind: 1,282 old file attachments, stale reports, and dashboards we could rebuild better anyway.

For the 1.7 million logged activities, we made one sensible split: the last three years stay instantly searchable inside the new CRM, while the older history moves to low-cost archive storage — kept, but out of the way.

Step 3: We took a copy — not the originals

Here is the part that makes the whole thing stress-free: the export was read-only. Salesforce’s own tools handed us a complete copy of the data as simple spreadsheet files — the kind you could open in Excel. Nothing was deleted, nothing was locked, and the team kept working the whole time.

Every file came away with two numbers attached: a record count and a digital fingerprint. Those fingerprints are what let us prove — not hope — that nothing was lost on the way over.

Step 4: We translated, field by field

A copy is not the same as a move. Each row still had to be translated into the new CRM’s language: old field names mapped to new ones, money and dates cleaned up, addresses tidied — and every record’s original details kept attached for reference.

The translated records were written out as small, reviewable batches instead of one giant blob, so a human could actually look at what was about to be imported before it was imported.

Step 5: We rehearsed before opening night

Before anything touched the real system, we ran the entire import into a private practice copy of the new CRM. Only after that rehearsal looked right did we approve the real run — an explicit “yes” required before a single live record was written.

The import then applied the batches one at a time and kept score as it went. If anything had stopped halfway, it would have picked up where it left off. Nothing stopped.

Step 6: One last sweep for stragglers

Business doesn’t pause for plumbing. While the move ran, a few records in Salesforce naturally changed — so we finished with one quick catch-up pass that collected anything created or edited since the first snapshot.

The final sweep picked up four records. Four. Then the counts and fingerprints matched on both sides, and that was that.

Why it was easy when everyone says it’s hard

  • We never wrote to Salesforce. Read-only access meant there was nothing to break at the source.
  • The numbers had to match. Counts and fingerprints on both sides turned “we think it worked” into “we can prove it worked.”
  • We rehearsed first. The real import was the second run, not the first.
  • No shutdown window. The catch-up pass replaced the usual “everyone stop working” freeze.

This exact move is built into Zen & Zen

The same method we used on ourselves is the migration flow every Zen & Zen customer gets. Tell us where your records live — Salesforce included — choose the data and history you want to bring across, and confirm before anything switches. We do the counting, copying, translating, and checking.

Your old system stays untouched and running until the new one has proven it has everything. No consultants, no freeze window, no lost history — just a calm move to a CRM with a flat $99/month price.

Moving off Salesforce? Talk to us — or take a look at the CRM your records land in and the flat pricing that comes with it.

The honest fine print

A couple of things didn’t come across, on purpose: the ancient file attachments we no longer needed, and the handful of automations the audit showed were broken anyway. A good migration is partly about what you choose to leave behind.