Today we’ll discuss using the CRM import function to create Connections in Dynamics CRM. (If you’d like more information on importing, check out Creating Attributes via Import Wizard in CRM 2011 and Dynamics CRM Data Import – Setting Primary Contact Field #2.)
Microsoft addressed the limitation of Relationship Roles in CRM 2011 by introducing Connections. Relationship roles limit connections between accounts, contacts and opportunities only, while connections allow CRM users to create connections between most entity types.
CRM users who have upgraded to CRM 2011 from previous versions will still have their relationship roles and records, but who wants to maintain and look in two different areas for similar types of information? Why not take your current relationships and create connections from them?
This blog post will help you with that effort and help you prevent most users from creating new relationships moving forward. We’re going to use the import process to accomplish this.
1. First we need to visit the current Relationship Roles and create Connections with the same name and settings. Relationship Roles are found in Settings > Business Management. Connection roles are in the same area. Since you cannot have both screens open at the same time without having two sessions of CRM running, I exported all of my relationship roles to Excel and I will use the file to quickly create new connection roles with the same name.
2. Note that my Relationship Roles have some interesting names set for the same type of relationship found in the Connection Roles. I can simply rename the Connection Role to match my list. You will also want to verify that the Connection Role is configured to allow a connection to the same type of record that the Relationship Role used.
3. Once you have a Connection Roles for each of your Relationship Roles, we can export the Relationship Roles for importing.
4. Start an Advanced Find on the entity called Customer Relationships. Edit the output columns to include all fields. Run the advanced, then click the Excel icon and select Static worksheet with records from all pages in the current view.
Note: It would be ideal to be able to check “Make this data available for re-importing by including required column headings”, but at the time of this blog post, this was generating an error on multiple systems/servers.
5. Open the resulting file in Excel and save as a CSV file.
6. Go to CRM and click Import Data from the ribbon.
7. Locate your CSV file, verify the delimiter settings.
8. Select Connection for your record type.
9. Now it’s time to map the fields.
10. If your Relationship Roles data contains values in the Description2 field, you can set map to create the new field to store this data.
11. Map Party1 to Connected From (Lookup) and Party2 to Connected To (Lookup)
12. Map Role 1 to Role (From) Lookup and Role 2 to Role (To) (lookup)
13. This is where it would be nice to have the GUIDs for Party1 and Party2, but since we don’t we’ll have to use the lookup feature. Since we know relationship roles are limited to account, contact and opportunity, we include all three of them in the lookup.
14. For the Roles we are going to do a lookup against the name field of the Connection Roles, which should match because we did that first. (Way to go us!)
15. Finish the import wizard and monitor its progress in Settings > Data Management > Imports.
Since we’re stuck having to use the friendly name lookup for accounts, contacts and opportunities, there’s a good chance there will be some duplicate lookup reference errors. This is because the import found more than one possible record for that line. If the line is for John Smith and there are four John Smiths in your organization, CRM won’t know which one you meant.
Another error I encountered was, “The connection cannot be saved. The selected record types are not defined for use with the selected connection roles. Select a different set of records or change the connection roles.” This means I was trying to create a connection to a record type that didn’t allow it. That’s simple to fix, then export your error rows and run the import again!
After a successful import, you can run an advanced find on connections and you will see that there are twice as many records as you successfully imported. A connection record is made for each party in the relationship.
Now that we have connection records to replace the relationship roles, let’s change CRM so users cannot create new relationship roles.
Modify each security role, removing any rights to the Customer Relationship entity (under the Core Records tab) and we may as well keep the users from creating new relationship roles too by clearing all of those rights too. Now only system administrators or system customizers will be able to create new relationships, but the users will not even see them as an option anymore.
We hope you found this tutorial helpful and that you will consider moving your existing relationship roles to connections.