CRM Snapshot has a lot of uses, and I’ll be honest, we’re discovering new ones every day as we get feedback from both internal and external users of the solution. Last week a colleague asked if we could export Snapshot records to import them into another CRM organization as a way of migrating data from one organization to another while maintaining relationships and the original IDs of records. I knew it should work in theory so I gave it a try and what do you know? It worked like a dream.
If you need a simple solution for moving data between two CRM instances follow the steps below.
Here’s how it’s done.
1. If you haven’t already, you can Download CRM Snapshot from here www.cobalt.net/dynamics-crm-snapshot.
2. Import the solution on both source and the destination instances of CRM.
3. Now on your source CRM instance find the records you want to export, select the records and run the Backup workflow. (NOTE: If there is no Backup workflow configured for the entity you are exporting you can configure it as shown in this post using the “As an on-demand process” rather than the “Start when Record is deleted” option.)
4. Once the backup workflows are complete. Find the Snapshot records that were just created and export them to a static Excel worksheet (NOTE: Include Entity Name, Entity Type, Actions and Serialized Entity in your export as shown below)
5. At this point you have a couple of choices. You can import the snapshots into your destination CRM instance and then run the restore against the newly imported snapshot records. However, a simpler solution is to modify the worksheet by setting the value in the Actions columns to ‘Rollback’ before importing. This will automatically restore the Snapshot records as the accounts they were backed up from.
6. Save your worksheet as a .csv to import into your destination CRM instances.
7. Now in your destination CRM instance start the Import Data Wizard and select your saved .csv file.
8. Choose all of the Default Settings for the import and when you get to the Map Record Types page select ‘Snapshot’ from the dropdown under “Microsoft Dynamics CRM Record Types”
9. Continue through the rest of the wizard until you reach the end. Once the import is complete all of your exported data will be fully imported to the destination system, with two obvious exceptions in the picture below. Keep reading to find out why.
So…What happened to the Primary Contact’s information?
If you were paying close attention you may have noticed that some of the fields that were exported originally didn’t make it to the destination. More specifically, Primary Contact and Primary Contact Email. The great thing about moving data in this way is that Snapshot will handle all of the data integrity checking for you. In this case I imported accounts with look-ups to contacts that didn’t exist in the destination system. Snapshot simply left that field empty. If I wanted to make sure that the Primary Contact came over in the import I’d need to export / import the contact records first, or even cooler, I could export / import them afterwards and then rerun the account import to fix the missing fields! CRM Snapshot will never create duplicates no matter how many times you export / import because it maintains the same IDs across CRM organizations.
One last note: This process can also be used to export your backups for safe keeping outside of CRM for disaster recovery.
Snapshot is a lightweight, easy to use and easy to customize solution for Dynamics CRM that will allow you to create point in time backups and restore records with the click of a button.
Let us know if you have any questions or comments. We welcome your feedback and look forward to hearing from you.