·
11 min read

Importing Data from Salesforce.com to Microsoft Dynamics CRM Online – Part 2

Welcome back, to the second part in series of Importing data from Salesfore.com. In this post I will take you deeper into the mapping details of the two Salesforce.com maps.

The out of box Salesforce.com Maps, map 18 record types from Salesforce.com to the corresponding record types in MSCRM. The table below lists the names of these 18 record types as well as their mapping details. It also gives you details of some of the known things which you will observe during Import.

The following table lists the record types that are included in the default Salesforce.com data map.

No.

Salesforce.com Record Type

Microsoft Dynamics CRM Online Record Type

Limitations

1

Task

Task (task)

In Salesforce.com Tasks records, the WhatID column refers to Solution or Product2. But in Microsoft Dynamics CRM, a task cannot refer to a Kbarticle(Solution) or Product(Product2). Thus, the Task.csv records referring (through “WhatId” column) to Solution.csv or Product2.csv files are not imported, and are shown as failure ‘The lookup reference could not be resolved.’ in the Imports grid.

2

Contact

Contact (contact)

None

3

Opportunity

Opportunity (opportunity)

All opportunity records imported in Microsoft Dynamics CRM using the default Salesforce.com data map are created with the Revenue field set to ‘user calculated’.

This is done so that the data from the Expected Revenue column of Oppurtunity.csv is correctly imported into Microsoft Dynamics CRM.

4

Account

Account (account)

None

5

Campaign

Campaign (campaign)

During the Import, the Salesforce.com map performs the following conversions to the data in the Status column:

Status before import

State/Status after import

In Progress

Active/Ready to Launch

Planned

Active/Proposed

Aborted

Active/Canceled

Completed

Active/Completed

After the import is complete, you can manually change the state/status of these imported campaign records if you want.

Status before import

State/Status after import

In Progress

Active/Ready to Launch

Planned

Active/Proposed

Aborted

Active/Canceled

Completed

Active/Completed

Status before import

State/Status after import

In Progress

Active/Ready to Launch

Planned

Active/Proposed

Aborted

Active/Canceled

Completed

Active/Completed

6

Case

Case (incident)

In Microsoft Dynamics CRM Online, all cases refer to a subject. The default Salesforce.com data map uses Assign transformation to automatically populate the Subject field in the Microsoft Dynamics CRM Online case record.

After importing data, once you have developed your subject hierarchy in Microsoft Dynamics CRM, you might want to update these values.

Or, if you prefer to create subjects prior to importing the cases, you will need to remove the transformation for Subject from the default data map.

Case records with Closed status are always imported with an Active state and an InProgress status.

During the Import, the Salesforce.com map performs the following conversions to the data in the Status column:

Status before import

State/Status after import

On Hold

Active/On Hold

Escalated

Active/Researching

Closed

Active/In Progress

New

Active/InProgress

After the import is complete, you can manually change the state/status of these imported case records if you want.

Status before import

State/Status after import

On Hold

Active/On Hold

Escalated

Active/Researching

Closed

Active/In Progress

New

Active/InProgress

Status before import

State/Status after import

On Hold

Active/On Hold

Escalated

Active/Researching

Closed

Active/In Progress

New

Active/InProgress

7

Lead

Lead (lead)

In Microsoft Dynamics CRM Online, all Lead records must have a Topic. Salesforce.com data does not use a Lead topic. The default Salesforce.com data map uses the Concatenate transformation to automatically populate the Topic field in the Microsoft Dynamics CRM Online Lead record type by concatenating the FirstName and LastName columns of the record in Salesforce.com.

During the Import, the Salesforce.com map performs the following conversions to the data in the Status column:

Status before import

State/Status after import

Open

Open/New

Unqualified

Disqualified/Lost

Contacted

Open/New

Qualified

Qualified/Qualified

After the import is complete, you can manually change the state/status of these imported lead records if you want.

Status before import

State/Status after import

Open

Open/New

Unqualified

Disqualified/Lost

Contacted

Open/New

Qualified

Qualified/Qualified

Status before import

State/Status after import

Open

Open/New

Unqualified

Disqualified/Lost

Contacted

Open/New

Qualified

Qualified/Qualified

8

Contract

Contract (contract)

In Microsoft Dynamics CRM, all contracts use a contract template. Salesforce.com does not use contract templates. The default data map uses an Assign transformation to automatically populate the Template field in the Microsoft Dynamics CRM contract record with the default “Service” contract template.

After importing data, once you have developed your own contract templates in Microsoft Dynamics CRM, you might want to update the contract template values in the imported records.

Or, if you prefer to create contract templates prior to importing the contracts, you will need to remove the transformation for contract template from the default data map.

In Microsoft Dynamics CRM, all contracts must have a date in the Contract End Date (expireson) field. This is not required in Salesforce.com. The default data map automatically creates an end date by using the Add to Date transformation to map the sum of the contract start date and contract term source columns to the Contract End Date (expireson) field.

During the Import, the Salesforce.com map performs the following conversions to the data in the Status column:

Status before import

State/Status after import

Activated

Draft/Draft

In Approval Process

Draft/Draft

Draft

Draft/Draft

After the import is complete, you can manually change the state/status of these imported contract records if you want.

Status before import

State/Status after import

Activated

Draft/Draft

In Approval Process

Draft/Draft

Draft

Draft/Draft

Status before import

State/Status after import

Activated

Draft/Draft

In Approval Process

Draft/Draft

Draft

Draft/Draft

9

Event

Appointment (appointment)

In Salesforce, the event records refer to Solution or Product2 or Campaign using WhatId. But Microsoft Dynamics CRM does not support an Appointment (Event) to refer to a Kbarticle(Solution) or Product(Product2) or Campaign. Thus, Event.csv records that refer (through “WhatId” column) to Solution.csv or Product2.csv or Campaign.csv file will not be imported, and these will be shown as failure “The lookup reference could not be resolved.” in the imports grid

The Salesforce.com map for full-data export uses the following AddToDate transformation to calculate the Start and End date of the Event:

End Date Time = ActivityDate + ActivityDateTime + DurationInMinutes

Start Date Time = ActivityDate + ActivityDateTime

The Salesforce.com map for report export uses:-

End Date Time = Start + Duration (minutes)

This is done because in Microsoft Dynamics CRM, the End date is a required field, but in Salesforce.com there is no corresponding End date field.

10

Pricebook2

Price List (pricelevel)

In Microsoft Dynamics CRM, the name of the Price List must be unique. Salesforce.com allows multiple records in Pricebook2 to have the same name. Edit your source Pricebook2 data to provide unique values in the Name column.

11

Solution

Article (kbarticle)

In Microsoft Dynamics CRM Online, all articles refer to a subject . The default data map uses two Assign transformations to automatically populate the Subject and Template fields in the Microsoft Dynamics CRM Online article record.

After importing data, once you have developed your subject hierarchy and article templates in Microsoft Dynamics CRM Online, you might want to update these values.

Or, if you prefer to create subjects and templates prior to importing the articles, you will need to remove the transformation for Subject and Template from the default data map.

During the Import, the Salesforce.com map performs the following conversions to the data in the Status column,

Status before import

Status after import

Duplicate

Unapproved

Draft

Draft

Reviewed

Published

Status before import

Status after import

Duplicate

Unapproved

Draft

Draft

Reviewed

Published

Status before import

Status after import

Duplicate

Unapproved

Draft

Draft

Reviewed

Published

12

Product2

Product (product)

In Microsoft Dynamics CRM, all product references also need Unit Group, Unit, and Decimals Supported values. Salesforce.com does not use these values in Product2. The default data map uses Assign transformations to automatically populate the Unit value in each Microsoft Dynamics CRM Product record with the default values “Primary Unit”, the Unit Group value with “Default Unit”, and the Decimals Supported value with “1”.

After importing data, once you have developed your own unit records in Microsoft Dynamics CRM, you might want to update these values in the imported records.

Or, if you prefer to create unit records prior to importing the Product2 records, you will need to remove the transformation for units from the default data map.

13

PriceBookEntry

Price List Item (productpricelevel)

In Microsoft Dynamics CRM Online, all Price List Item references also need Unit values. Salesforce.com does not use these values in PriceBookEntry records. The default data map uses an Assign transformation to automatically populate the Unit values in each Microsoft Dynamics CRM Online Price List Item record with the default value “Primary Unit”.

After importing data, once you have developed your own unit records in Microsoft Dynamics CRM Online, you might want to update these values in the imported records.

Or, if you prefer to create unit records prior to importing the PriceBookEntry records, you will need to remove the transformation for unit from the default data map.

Microsoft Dynamics CRM Online price list items include a required field, Quantity Selling Option. This field defines the type of quantities in which the product is sold. By default, the values are No Control, Whole, Whole and Fractional. For example, if you are selling an item that can’t be sold in fractions, such as a digital camera, you would set this option to Whole. If you are selling something like fabric, which can be sold in yards or fractions of a yard, you would set this option to Whole and Fractional. Or, if you don’t want to enforce this, you can set it to No Control.

Salesforce does not have an equivalent field in PriceBookEntry. You need to create a source column in the PriceBookEntry source file called “quantitysellingcode”. Each row needs to be populated with a valid value from Microsoft Dynamics CRM Online. If you prefer different values, you need to customize the Price List Item entity in Microsoft Dynamics CRM Online before importing your data.

When you run the Import Data Wizard or manually edit the data map, map your new column to the Microsoft Dynamics CRM Online Quantity Selling Option field.

14

Note

Note (annotation)

None

15

User

User (systemuser)

None

16

Attachment

Note (annotation)

In Salesforce.com, Solution records can have attachments associated with them. But Microsoft Dynamics CRM does not allow KbArticles (Solution) to to be associated with attachments. Hence Attachment.csv records referring to Solution.csv file will not get imported, and these will be shown as failure “The lookup reference could not be resolved.” in the Imports grid.

17

CaseComment

Note (annotation)

In the default Salesforce.com map, the Idea.csv is set to Ignored. Thus, if you use the Saleforce.com map, any records in CaseComment.csv that are referring (through “ParentId” column) to Idea.csv file will not get imported, and these will be shown as failure “The lookup reference could not be resolved.” in the Imports grid.

18

Asset

Asset (create a new custom entity in Microsoft Dynamics CRM)

The Salesforce.com map creates new custom fields for some of the columns and ignores the rest. Because data in any column that are set to be ignored is not imported, we suggest that you review the mappings.

Additionally there are some Salesforce.com record types which are not included in the OOB Salesforce.com Maps, but you can import them by doing the steps outlined below:-

The following record types can be migrated but are not included in the data map created for Salesforce.com data files. See the specific instructions for each record type you want to migrate.

Salesforce.com Record Type

Required Preparation

Partner

There is no separate record type in MSCRM for Partner. If you need to import partner records, you need to map it to Account:

1. Prepare your partner file. It should have a Relationship Type field, with the value for each record set to “Partner”.

2. In the Import Data Wizard, map this file to the Microsoft Dynamics CRM Online Account record type.

Approval

If you need to import approval records, use the Import Data wizard to create a custom Approval record type.

CampaignMember

In Salesforce.com, this record type includes both lead and contact records. In Microsoft Dynamics CRM, for each marketing list, marketing list members can only contain one type of record: leads, contacts, or accounts.

You have several options: split your source CampaignMember.csv file into two files: one containing all lead records, and one containing all contact records. In Microsoft Dynamics CRM, for each Salesforce.com campaign that includes leads and contacts, set up two marketing lists. Edit the source data or create a transformation so that each source record maps to a marketing list. Use the Import Data Wizard to map the new source files to the Marketing List Members record type.

CaseSolution

If you need to import CaseSolution records, use the Import Data Wizard to create a custom CaseSolution record type.

Idea

If you need to import Idea records, use the Import Data Wizard to create a custom record type.

IdeaComment

If you need to import IdeaComment records, use the Import Data Wizard to create a custom Idea record type.

OpportunityLineItem

If you need to import OpportunityLineItem records, you can map it to Opportunity Product in Microsoft Dynamics CRM Online. However, you must edit your source file and add a new column for Product reference because Opportunity Product in Microsoft Dynamics CRM Online requires a Product reference. You can get the correct Product references using the PriceBookEntry.csv. Sales Force uses multi level reference. OpportunityLineItem.csv has reference to PriceBookEntry.csv, which has reference to Product.csv. But Microsoft Dynamics CRM Online has only a single level of reference from Opportunity Product to Product.

OrgWideEmailAddress

If you need to import OrgWideEmailAddress records, use the Import Data Wizard to create a custom record type.

Document

If you need to import Document records, use the Import Data Wizard to create a custom record type.

Entities that Use N:N Relationships:

Partner

OpportunityContactRole

AccountContactRole

ContractContactRole

UserRole

CaseContactRole

OpportunityCompetitor

CaseHistory

CaseHistory2

OpportunityHistory

The Import Data Wizard cannot create custom record types with N:N relationships. If you need to import data to these record types, you must create these record types in Microsoft Dynamics CRM Online and set up the N:N relationships, and then import data to them.

Apart from this, there are Salesforce.com record types which are not recommended for Import in MSCRM:-

The following source files are created when you back up Salesforce.com data. We recommend not importing these source files to Microsoft Dynamics CRM Online.

Salesforce.com Record Type

Purpose

How Handled in Microsoft Dynamics CRM Online

BusinessProcess

Tracks business processes.

Business processes must be created using workflow in Microsoft Dynamics CRM Online.

EntityHistory

Tracks history of changes to entities.

This is not tracked by default in Microsoft Dynamics CRM Online.

FieldHistory

Tracks history of changes to attributes.

This is not tracked by default in Microsoft Dynamics CRM Online.

EmailRoutingAddress

Stores information about how to convert incoming e-mail messages to cases.

In Microsoft Dynamics CRM Online, this is a per-user setting set in Tools/Personal Options in Microsoft Dynamics CRM Online for Outlook.

FiscalYearSettings, Period

Stores information about the fiscal year of the organization.

To define the fiscal year in Microsoft Dynamics CRM Online, in Settings, click Business Management, and then click Fiscal Year Settings.

RecordType

This stores information about record types. This is used in Salesforce.com to control how the user interface is displayed.

To customize the user interace in Microsoft Dynamics CRM Online, in Settings, click Customize Entities.

I guess you might have already tried using the powerful MSCRM Data Import functionality. And this blog post will help you to further understand the mappings between your Salesforce.com source files and MSCRM entities.

In the next blog I will cover some more specific scenarios of Importing data from Salesforce.com. Till then enjoy the productivity with simplicity offered by MSCRM. And Stay Tuned!!