In my previous blog entry I gave the overall view how our Dynamics CRM 2013 account/contact entities have been used and what kind of Dynamics CRM 2013 custom fields I have used with those entities.
In this blog entry I will describe the process how we integrate to SharePoint 2013 Online (part of Office 365). The built-in integration between Dynamics CRM 2013 Online and SharePoint 2013 Online is not built in a way that satisfies my our needs and as I told you in my previous blog entry, I was not willing to do custom app development and maintain something I could not potentially support in the future.
The Dynamics CRM 2013 built-in integration today between these two systems do not utilize the benefits of the power of SharePoint so I decided to enable synchronization between Dynamics CRM 2013 entities and SharePoint 2013 Online custom lists. What this means in practice is that account and contact information from Dynamics CRM 2013 is synchronized with account/contact custom lists in SharePoint 2013. The synchronization is one-way where the Dynamics CRM 2013 is the hub and the SharePoint 2013 is the slave. My policy is that Dynamics CRM 2013 database with account/contact/project information is the “kernel” of our information and everything else pulls information from this source. Yes, I could have implemented two-way synchronization, but I wanted this to be simple and just tell people to maintain the CRM database with any new information or updates.
To initiate the synchronization, the only thing the end user has to do is to click the button “Move to DMS” and all of the needed fields are moved to a SharePoint list (account).
The synchronization can be defined in the settings of the synchronization tool that we are using and in our case it is 120 seconds. The tool runs in its own Microsoft Azure instance, which makes this solution completely cloud-based. I do not have to have anything installed on the laptop/desktop/mobile phone, everything runs automatically in the cloud. This is really the way I envisioned a solution architecture when I looked at the options what I had with the integration itself.
Let’s look at the use case itself. How does the end user act when working with both the Dynamics CRM 2013 and SharePoint 2013? First of all, I do not want all of the account/contacts to flow into a SharePoint list, just then ones that are relevant and associated with a document(s). Secondly, the idea is that CRM is not the UI for searching documents, it really is not optimized to do that in any respect. Once the account/contact is synchronized to a SharePoint list, the documents are entered into SharePoint and tagged to relevant people and accounts. The synchronization will refresh any updates on the account/contact records so there is no need to worry about getting updated information to SharePoint. Any search activity happens in SharePoint as that is really optimized for it.
I am not using the SharePoint list within Dynamics CRM 2013 whereby the account/contact record has no knowledge of the documents in the SharePoint site. In our case it has not impact as we work with larger projects and there are not that many clients at any point in time. The rule of thumb is that when any document is created, that is the time to click on the “Move to DMS” button in CRM as we want the account/contact information to move to the SharePoint repository.
The other rule that we have set is that a lead is converted (if lead is used) when a document is generated of any reason. Therefore, there is not a need to synchronize leads to SharePoint as it has been already converted to account/contact due to the requirements we have set.
I will dig into more detail of how we use SharePoint 2013 with its built-in content types and what kind of power we get from SharePoint itself. I have been extremely impressed with the content types and the inheritance structure that it enables for developers. However, it is very easy also to make the metadata structure too complex so what I did in my case, I really took time to learn/read and talk to SharePoint architects before I made my final decisions on the SharePoint structure I wanted to get in place.
In summary, our Dynamics CRM 2013 is the hub for our account/contact information and some of this information is synchronized to SharePoint 2013 lists using a Microsoft Azure instance. We do also maintain two other custom entities within Dynamics CRM (project and education events) and I will explain how these link to the over solution in future posts.