SharePoint Dynamics CRM Integration

Category : Dynamics CRM, sharepoint

I recently ventured into Dynamics CRM integration with SharePoint and was surprised with all the different ways to integrate the products. After playing around with all the different capabilities I came to some conclusions that I thought I would shared.

Dynamics CRM has a very nice UI and seems to be very customizable. However, out of the box it is setup for very specific functionality. Thus, turning it into a true portal seems like it will take some work. Microsoft has created some “accelerators” to help with these customizations: http://crmaccelerators.codeplex.com/.

However, before thinking about integration we have to take a step back and think about who is going to be accessing the systems. Is the CRM system going to be a “portal”? Or, is it going to be used by high end, customer/contact relationship individuals? Are there people in the organization who need to see some of the CRM data, but not other parts? Is the out-of-the-box SharePoint functionality important to your end users?

If we make CRM the “portal” and then want to incorporate SharePoint functionality into it, most people seem to use iFrames to do this. I am not a big fan of iFrames, so I don’t see that as the best possible solution. I do see that as a “one off” solution to incorporate a little more functionality into CRM, but I don’t see it as a strategy for an extensible portal structure.

Thus, I turned the other way in my thinking and decided to incorporate CRM data into SharePoint. The thought here is to let your contact/customer relationship people work in the CRM system, but expose important data from that system into SharePoint. Thus, SharePoint is still the place the majority of your users go to in order to collaborate and view business lines of data. CRM is just the management system for you contacts. This seems to be a good separation of functionality to what can be a fuzzy line because of the amount of flexibility in both products.

Creating the CRM Dashboard in SharePoint

For this blog I am dealing with Dynamics CRM 4.0 on-premise and Enterprise MOSS 2007. These techniques will only work with the On-Premise version of Dynamics CRM because the Online version does not give access to the database.

The CRM Dashboard shows CRM data to the end user through charts, graphs and bdc lists. This data is in a read-only format in SharePoint. However, the BDC lists have custom “actions” which allows the data to be edited in Dynamics CRM by opening up CRM windows to the specific entity needing editing.

In order to create this dashboard the first step is to create the BDC definitions for SharePoint. The BDC  definitions define how to interact with the Database for Dynamics CRM. I created my definitions using BDC meta man and I was quite impressed with the structure of the database Dynamics CRM creates. This makes it a lot easier to work with the BDC. However, if you don’t have access to BDC meta man you have other choices:

  1. Use the Microsoft BDC Definition Editor found in the SharePoint SDK http://www.microsoft.com/downloads/details.aspx?familyid=6d94e307-67d9-41ac-b2d6-0074d6286fa9&displaylang=en
  2. Use the Enterprise Search Accelerator for Dynamics CRM http://crmaccelerators.codeplex.com/releases/view/21449

The Microsoft BDC Definition Editor is perfectly fine for creating simple BDC files. However, I prefer BDC meta man (which is a pay for product) for creating more robust, complicated BDC files. The Enterprise Search Accelerator for Dynamics CRM is a great place to get started. They actually created a pretty comprehensive BDC file that hooks into Dynamics CRM 4.0. I completed 90% of my Dashboard with their BDC. I just used BDC meta man to create some relationships and entities they didn’t include. I “highly” recommend people start with this accellerator when integrating SharePoint and Dynamics CRM.

So, step number 1 in creating a Dynamics CRM Dashboard in SharePoint is to use the search accelerator BDC files.

The other good thing about the search accelerator is that they show you how to setup your bdc files for search (if you don’t know how to do that) and they show you how to utilize the BDC WebParts to create connections. Thus, after you are finished with their walkthrough (which is very well written and easy to follow), you should have something like this:

I crossed out any personal information in the image so people don’t spam me :)

Notice that you can now start showing your CRM data in SharePoint, through the BDC, and you can connect your relationships together just like they are connected in Dynamics CRM. Also, through the use of custom actions, we get menus for opening/editing the entities in CRM popups:

After you have the BDC hooked up and some BDC webparts on your screen through the search accelerator for CRM, you can see the process of showing CRM data through normal BDC techniques in SharePoint. At this point, I went ahead and edited the BDC file from the search accelerator with BDC meta man to add in more entities, relationships and I even added some filters.

Step number 2 in my process for creating this Dashboard was using Dundas Charts for SharePoint to show some charts. http://www.dundas.com/Components/Products/Chart/sharepoint/index.aspx. This is a pay product, but it is relatively inexpensive and has many uses in a SharePoint environment. SharePoint 2010 does have some charting capabilities, but if you are on SharePoint 2007 you need a product like this. The Dundas Charts can hook into the BDC to use the same exact data that we previously used for our webparts. Also, the Dundas Charts allow you to use simple SQL Queries to access the data. I used SQL Queries so that I could do some grouping and counts to get my data. But, either way will work.

So, that’s basically it. Without any real development I had a pretty good dashboard to expose some of my CRM data into my SharePoint portal. I just used 2 tools to get me started:

  1. CRM Accelerators from SharePoint to get me started on my BDC
  2. Dundas Charts for my graphical representations of my data

I know there are lots of other techniques for integrating these two products together. But, I believe this is the best technique in order to let the products do what they are meant to do. CRM is meant for certain people in the organization to maintain those relationships. It is hard to control if you let an entire organization into your CRM system. SharePoint is meant for portal and collaboration functionality. In addition, SharePoint is a great platform for Business Intelligence. Reporting your CRM data in SharePoint for you organization is a logical choice.