A migration screen
A spreadsheet of leads or contacts, or a CSV of tickets, can be imported from the interface. Nothing in the web app or the phone connects to a source system, maps its objects, or moves accounts, deals and their history across. That is the biggest gap on this page, and the reason a managed migration is a service rather than a button.
HubSpot, Pipedrive, Zoho and the rest
Salesforce is the only source system with a built importer. For anything else the path is CSV where the entity supports it, and the API where it does not. We would rather name the one than imply the many.
Workflow and automation recreation
Nothing carries your old workflows across. Simple ones can be rebuilt by hand as automation rules (when a record changes and the conditions hold, set a field, assign, create a task, notify or send a webhook). Branching, waits and anything on a schedule have no equivalent, and recreating rules is not part of the Salesforce importer.
Email history
Mail that arrives at a connected mailbox becomes a ticket, threaded against the account it came from. There is no import for the years of correspondence sitting in your old CRM, and no two-way mailbox sync to reconstruct it.
Activity and audit history
Notes and comments can be written through the API against the record they belong to. The timestamps will be the timestamps of the import, not of the original activity, because created dates are server-derived.
A rollback button
Import jobs can be cancelled while they run. Once rows are written, undoing a migration means restoring the database, which is why the first real advice on this page is to move a hundred rows and look at them.