Cutover executed on schedule, ahead of the contract deadline






Two Salesforce orgs, both heavily customised, had to become one. The org being kept was described as barely built out; the scan found roughly 275 Apex triggers, 6,500 Apex classes, 190 active flows, 60 installed packages, and a customer-facing community with several thousand external users that could not be disturbed.
Deep metadata scans on both sides ran before scoping, and they immediately contradicted the client's own description of the target org. The complexity discovered in that scan is what moved the estimate from weeks to months. A cross-org dependency map followed, then a migration blueprint.
Every record carried across gets a legacy source-ID field, and a formula boolean derived from it answers 'did this come from the old org?' on Account, Contact, Lead, Opportunity and Case.
Every user in the legacy org was renamed with a suffix so the original username was free to be re-created in the surviving org, which meant users log in with their normal username afterwards and nobody has to relearn anything.
The clearest example: both orgs had an account-type value whose underlying API name was identical, and API names must be unique. One value had to be renamed, which is why downstream filters started returning nothing.
An opportunity quoted at one value in the old org displayed that same value in the new org under a field label that had nothing to do with it. The cause: the surviving org had relabelled the standard Amount field. The retiring org did not use standard Amount at all and reported off its own recurring-revenue fields.
Rather than reconciling two legacy role trees, the unified hierarchy was built against the actual HR org chart, which is how it came out at roughly 50 unique roles instead of the ~95 in the combined legacy spec.
Standard history tables on Opportunity, Account and Contact cannot be moved; the platform blocks it. The replacement was a custom object holding the historical progression as flat records, and the customer was told plainly that it is a list, not a timeline view.
Cutover executed on schedule, ahead of the contract deadline
Roughly 625,000 records across ten core objects plus about 2,900 cases landed in the surviving org over a weekend blackout, with go-live on the Monday morning.
Users, roles and profiles consolidated. About eighty users migrated in a single big-bang cut, with roughly 300 legacy usernames suffixed to free the originals.



+2
4 steps
Re-architecting a segmentation field across two CRMs, and rebuilding every report that depended on it
~195k contacts re-segmented
ERP implementation or migration

4 steps
Retiring a legacy ERP integration and answering 'what is our active ARR?'
Legacy ERP retired
CPQ


5 steps
Retiring a sunsetting CPQ and standing up guided quoting with a four-tier approval matrix
Reps quoting live in the new system