White Paper · November 2026

Why we built Mack.

Moving a business into Salesforce shouldn't mean losing its history. This paper covers what usually goes wrong in a migration, and the principles we built Mack on to prevent it.

Your data lives everywhere

Small and mid-sized businesses rarely run on one system. Customers live in a payment processor, appointments in a booking app, jobs in a field service tool, quotes in email, and everything else in spreadsheets. Moving to Salesforce means bringing all of it together as one clean, connected picture of each customer.

Most migrations treat that as a file-loading exercise: export, reformat in a spreadsheet, import, repeat. It works for a tidy list. It breaks down when the same customer appears in four systems under three spellings.

Where migrations usually go wrong

  • Duplicates. The same customer in three systems becomes three records, and the sales team stops trusting the CRM in week one.
  • Broken relationships. Contacts land without their company, and payments land without the person who made them.
  • Wrong dates. Every record is stamped with migration day, so five years of history look like one busy afternoon.
  • Numbers that don't tie out. Revenue in Salesforce doesn't match the source, and nobody can say which records are missing.
  • No way back. A bad load means weeks of manual cleanup, because nothing recorded what was created or changed.
  • Rebuilt from scratch every time. Each project starts over with one-off spreadsheets and scripts, and the decisions live in someone's head.

The principles behind Mack

  • Decisions belong in a questionnaire, not in code. Who counts as a customer, what a sale is, which date wins. Each project's answers are saved as a migration profile that can be reviewed, versioned and reused.
  • Every record gets a permanent identity. Mack gives each record a source ID that never changes. Running a move twice creates nothing new, and changes in the source show up as explicit updates.
  • Preview first, then approve the exact plan. A dry run shows what will be created, updated or left alone, plus every row that needs a decision. Approval is tied to that exact plan and org, and it expires if anything changes.
  • Fill gaps from other systems. A payment with no name often matches a store order or a booking. Mack cross-checks sources and fills blanks without overwriting good data.
  • Every run is a version you can undo. Mack backs up affected records before writing and logs every change with its previous value. Any run can be rolled back and re-run as many times as needed, while records your team has edited since stay protected.
  • Prove it at the end. A reconciliation report ties every count and every dollar back to the source.

In practice: the first production move

Mack's first production migration was for a Florida wellness studio running on Stripe, Squarespace, Acuity Scheduling and Gmail, moving into Salesforce Professional Edition.

1,017accounts
1,020contacts
1,657opportunities
$276,444revenue reconciled to source
  • 45 customers recorded only as "unknown" were identified by matching their payments to store order records.
  • Booking history added a visit summary to 648 contacts, and 60 booking-only customers were added.
  • Every sale was linked to the person who bought it through 1,662 contact roles.
  • Follow-up dry runs found every record unchanged, so nothing was duplicated.

What it means for you

A move you can preview, prove and undo is a move you can start sooner. Our consultants spend their time on the decisions that shape your org, not on rebuilding scripts.

See what your move would look like.