DATA MIGRATION within CRM system (CRM 4.0) - Contact data to become Account Data RRS feed

  • Question

  • Hi

    The organisation I have just started work for has set up Accounts for Groups/Organisations and Contact record for Indivduals that they do business with. This has caused many headaches as the customer service team have to search 2 tables to potentially find the correct record and many customer duplicates have been added to the system in the past.

    They have asked me to make this a more Account Based CRM system where Accounts are used for all CUSTOMERS (groups/organisations/individuals) and contacts are used for the employees that work for the organisation only. The changes to the structure to make this happen going forward is a relatively simple change however I am struggling with the data migration as I can only find references of people migrating from another system into the CRM or to do with upgrading to CRM2011 (which will be the next project after this issue has been resolved),

    I need a good way of transferring ALL data from contacts to accounts including NOTES and RELATED ENTITES that may be associated with the contact (Custom and System relationships). I can not see a simple cvs file doing the trick as there are over 150,000 records that need migration.


    Also is it possible to retain the GUID?

    This is required to talk to external systems via web services. Any ideas would be a big help.

    Tuesday, September 3, 2013 5:27 AM

All replies

  • Hi,

    You have options different options, you can use third party data migration tool to transfer your contact data to account, or can write you custom .net component if you know CRM development. Exporting manually your contact and attachment data won't be a good option here and new guid will be generated for account records.

    Our Website | Our Blog | Follow US | My Facebook Page | Microsoft Dynamics CRM 2011 Application Design
    Make sure to "Vote as Helpful" and "Mark As Answer",if you get answer of your question.

    Tuesday, September 3, 2013 6:07 AM
  • Your data migration tool would be fairly simple I would imagine, just needs to be a console application that runs on the CRM server.

    This is how I would structure the code/logic:

    1. Retrieve all the contacts and related entities (notes, activities, etc)
    2. Group by the contactid or however you've done the retrieve, then loop through each contact
      a. Create the account with the same ID + contact details
      b. Create all the associated entities (notes, activities, etc) + set status if needed
      c. Once the account is created, DEACTIVATE the contact (DO NOT DELETE IT in case the data doesn't get migrated correctly)

    I would also strongly recommend you take a backup of your production database and restore it to a development environment so you can run test data migrations and test it before doing the real thing.

    Hope that helps


    If my response helped you find your answer please show your thanks by taking the time to "Mark As Answer" and "Vote As Helpful".

    Twitter LinkedIn Facebook Blog Magnetism

    Tuesday, September 3, 2013 6:32 AM
  • Thanks Paul,

    Setting up a test environment as we speak and this will be throughly tested before we attempt on the live system.

    Your post has given me a starting point (very similar to one that I had already thought of but yours deals with the related entities better).

    Doesnt seem to resolve the GUID issue however - do you know if you can update the GUID after the migration has taken place - i.e check data integry if ok update reverse the GUIDS between the entities? or is that to complex?

    Tuesday, September 3, 2013 7:36 AM
  • I think you might have to use different GUIDs. The only way to reuse the same GUID would be to delete the contact before creating the account. But this is obviously an undesirable solution as you would lose the existing data if you needed to fall back.

    SQL has limits that won't allow you to create 2 records with the same GUID (even across different entities it seems). And you won't be able to change a records GUID unless you go through SQL, but this is a very bad idea as it would break all the references to that record.

    If having different GUIDs is definitely an issue then you may need to just go for the delete first approach and make sure you have a backup of the database in case anything goes wrong, and have some try catch's to log the contact details or recreate the contact etc so the failed records aren't lost.

    Hope that helps


    If my response helped you find your answer please show your thanks by taking the time to "Mark As Answer" and "Vote As Helpful".

    Twitter LinkedIn Facebook Blog Magnetism

    Tuesday, September 3, 2013 10:27 AM
  • Data migration will require alot of energies and risks. Another option which you can propose to your customer canbe:-

    Create a custom entity for Searching of records.

    Put two iframes one contact and other account.

    Put the fields which the company uses for seaching.

    Show the matching record in Iframes. (You can show both contact and account record in one iframe using html)

    I think the data is stored in proper manner Companies in account and Individuals in contact which is required in CRM. You should try to solve the searching issue. I have created such iframes in the past and will be happy in providing you with the code if you are interested.

    Regards Faisal

    Tuesday, September 3, 2013 10:58 AM
  • Faisal - please can you send me more information code on how to do this - all for reducing the amount of work. My email address is cheriejross@gmail.com if you prefer to send via email.

    Monday, September 9, 2013 10:21 PM