Microsoft SharePoint 2010 is a diverse platform that provides solutions for many collaboration, workflow, document management, search and business intelligence problems and processes in today’s enterprises. From company intranets to customer extranets to public-facing websites, SharePoint 2010 is a robust solution that provides real value right out of the box. SharePoint developers and consultants can leverage this functionality and also extend it to provide rich experiences for users. From customer portals to custom search applications, organizations can integrate a variety of extraneous data sources and repositories to make both public and highly private/secure data available to individuals both inside and outside of the enterprise.
I was recently engaged in a SharePoint 2010 migration from Microsoft Office SharePoint Server (MOSS) 2007 at a large pharmaceutical client. In addition to the migration effort, a new customer portal was implemented where existing customers log in and retrieve targeted product information and specialized reports. Access to the customer portal required approval of a registration form submitted by the customer. The last phase of the implementation was to deliver an administration portal where customer access to the public-facing portal is managed by employees of the technical services team.
At the same time my team worked on the migrations and new portals, other consultants were responsible for the implementation of a new Microsoft Dynamics CRM 2010 organizational-wide implementation. Because the two implementations were designed and scoped without input from the other, there was no realization that two separate customer information sources would be maintained: the customer contact records within CRM and the customer account data within the customer portal, stored in a SQL Server database. Both systems were used by sales and marketing and the technical support team to manage customer relationships and portal access.
Our team recognized a way to design a single master data repository while allowing multiple business applications to access that data without having to maintain redundant data. Contact records in CRM would serve as the master record, supported with data from other applications, such as the portal registration information. The only changes needed on the CRM side were the addition of two custom fields into the CRM model: a field for the SharePoint user record URL and a field for the flag indicating whether or not the user is active in the customer portal.
Registrations submitted by customers are either approved or denied in the administration portal based on the current relationships with the pharmaceutical client. If the registration is approved:
- The CRM system is queried
- If the registration email is already tied to a record in the system, that contact entity is used as the record of note.
- If the registration email is not tied to a record in the system, a new contact entity is created using the data from the registration form.
- The SharePoint user record is created with a link to the CRM record and permissions are assigned
- The forms-based user credentials are generated
- The CRM contact record of note is updated with a link to the SharePoint user record and flag for whether or not the customer login is active in SharePoint.
A SharePoint timer job is used to pull customer account details from the CRM system into the customer portal on a nightly basis.
Figure 1: CRM contact record (Note the new ‘Customer’ section added at the bottom of the screen.)
Figure 2: Details of the custom Customer section added to CRM
Figure 3: SharePoint customer management portal which contains a direct link to the CRM contact record
The result of loosely integrating these systems has a number of benefits:
- Ease of use. Data stored in SharePoint or CRM can be accessed from either system. Employees no longer have to spend time navigating two disparate systems.
- Ease of maintenance. CRM is the master data from which all other systems pull data. The customer portal account data is not maintained as a separate data source.
- Lower cost of training. Processes across the enterprise can be streamlined using familiar software, resulting in higher employee effectiveness.
- High client visibility. Sales and marketing can leverage CRM to maintain customer relationships while also being able to extend access to custom content and reports through the customer administration portal.
Microsoft CRM Dynamics 2010 offers the flexibility to integrate with a variety of Application Programming Interfaces (APIs): a full software development kit (SDK), Windows Communication Foundation (WCF) web services and classic SOAP web services for backwards compatibility. Integrating with SharePoint 2010 was done using SOAP web services because of .NET compatibility versions. (The SDK and WCF web services require the .NET 4.0 framework but SharePoint 2010 only supports the .NET 3.0 version.)
SharePoint 2010 is a platform that eases the integration of enterprise data and processes. From Microsoft CRM Dynamics 2010 data to other CRM platforms to custom back-end database applications, the richness of the underlying SharePoint platform provides multiple integration points for extraneous data and custom applications. Let’s see how RDA can assist you with your SharePoint 2010 integration needs.
For more on SharePoint, visit this page.