Blog Archives

Dynamics CRM & SharePoint Integration Overview

Dynamics CRM & SharePoint

Introduction

In October 2014 I will be giving a talk to the Geneva SharePoint User Group about the integration options between Dynamics CRM and everyone’s favourite document management repository.  It’s a rich subject with a lot of blog posts, Microsoft white papers and general articles and so here is a condensed version if you’re looking for a quick overview of the fundamentals of integrating the two – both the “out of the box” features and the possibilities for extending the functionality with custom code.

I have included a list of references at the end to draw them in to one place and my material for the presentation (including a PowerPoint overview) is available on OneDrive here: –

http://1drv.ms/WCEc08

Versions

First a word about the versions of SharePoint that are compatible with CRM: –

Dynamics CRM 2011 Dynamics CRM 2013
  • SharePoint Server 2010
  • SharePoint Server 2010 Online
  • SharePoint Server 2007
  • SharePoint Server 2007 Online.
  • Microsoft SharePoint Server 2010 SP1
  • Microsoft SharePoint Server 2013
  • SharePoint Server Online

Option 1: Do Nothing

Simply, if we do not perform any integration then SharePoint cannot access/benefit from any of the data in CRM and CRM cannot use SharePoint as a repository for its documents and the only option for working with files will be to attach them to CRM Activity or Notes.  Files attached in this way will, of course, not be searchable.

SUGOption1

Figure 1: Without SharePoint the only option is to attach documents to Notes/Activities.

Option 2: Out of the Box

CRM 2011 and 2013 add slick “out of the box” integration options to get CRM and SharePoint working together and these are configured via the CRM Settings > Document Management page.  For CRM 2013 online a pop-up alert appears at the top of the page nagging you to set this up.

Essentially you point your CRM at a SharePoint instance and select whether you want to create folders for each entity type or create sets of folders underneath a Contact  / Account parent node.  Whenever you then wish to associate documents with your CRM record, a SharePoint folder is created (if one does not exist) and the uploaded material is placed there.  A recent enhancement in the Spring 2014 release of CRM is that the SharePoint folder now contains the CRM record GUID to make this easily available to any SharePoint code.

To present the documents stored on SharePoint within CRM there is the free CRM List Control.  This gets installed on the SharePoint server (under Site Settings > Web Designer Galleries > Solutions) and presents the list of documents in a style consistent with CRM’s look and feel.  If this List Control is not installed then CRM simply renders an IFRAME to show the SharePoint contents.

With CRM 2011 and (I believe) 2013 on-premises you need to download and install the List Control yourself but if you’re working with CRM and SharePoint online then the List Component is not required and direct server to server communication can be enabled instead.

The List Components renders SharePoint document lists with familiar CRM look and feel.

Figure 2: The List Components renders SharePoint document lists with familiar CRM look and feel.

Option 3: IFRAMEs

Another nice simple option, you can expose CRM pages within SharePoint and vice-versa by simply setting up IFRAMEs and referencing the appropriate URL.  This is particularly useful when you want to deliver CRM Dashboards or SharePoint document lists that are not linked to CRM data.

Security considerations are important here t ensure that the authenticated user works across both sites.

IFRAME used for delivery of data.

Figure 3: IFRAME used for delivery of data within a CRM Dashboard.

Option 4: SharePoint Business Connectivity

SharePoint includes the Business Connectivity Services to allow SharePoint Team Sites to display and work with data from a range of other sources.  You’ll need the free SharePoint Designer to configure this but the basic steps are to create an External Data Source and set up the Lists and Forms that SharePoint will use to display the data retrieved.

I set up a demonstration for CRM 2013 on-premises and SharePoint 2010 by setting up a SQL Server External Data Source referencing the CRM database.  The only supported way to work with data within the CRM database is via the Filtered Views and so this method can be used to present Read-Only data but not to allow Updates and Deletions of CRM data from SharePoint.

Figure 4: CRM Data delivered as a SharePoint list via the Business Connectivity Service.

Figure 4: CRM Data delivered as a SharePoint list via the Business Connectivity Service.

Option 5: SharePoint Search

The previous example of using the Business Connectivity Services can be extended to set up a SharePoint Basic Search Centre relying on the External Data Source of a CRM database.  This is particularly useful if you want to search multiple entities within the CRM with SharePoint.

Figure 5: Creation of a SharePoint Search site working with CRM data.

Figure 5: Creation of a SharePoint Search site working with CRM data.

Option 6: Power BI

Although it strays a little from the subject of SharePoint and CRM integration, it is worth noting that Excel 2013 comes with an ORest connector that can be used to pull CRM data in to Excel for Power Viewm Power Pivot and Power Map visualisations.  Data Models can be built and data from several sources linked within Excel to provide a “mash up” of CRM and SharePoint data.

The final Excel containing the data model and its reports can either be uploaded to a SharePoint site document list and opened with Excel online or can be published to the dedicated Power BI site offered as a service via Office 365.

Power BI looks set to become then the quickest and easiest way to deliver reports using both SharePoint and CRM data.

Figure 6: Exploiting CRM data within Excel for Power BI.

Figure 6: Exploiting CRM data within Excel for Power BI.

Option 7: Custom Code

Finally, the web service endpoints exposed by SharePoint and CRM can be used by custom code for bespoke integration.  CRM exposes both SOAP/WCF and ORest services and one thing to note is that if you’re planning to integrate CRM 2013 and SharePoint 2010 you’ll need to create your own proxy service in the middle as CRM 2013 is .Net 4.0 and SharePoint 2010 Web Parts only support .Net 3.5.

The CRM SDK contains sample code showing you how to programmatically work with the SharePoint entities within CRM.

Figure 7: C# Code executing against CRM to work with SharePoint data.

Figure 7: C# Code executing against CRM to work with SharePoint data.

Summary

The core intention is to use SharePoint as a document repository for CRM but the possibilities of working direct with Filtered Views in the CRM database (for on-premises), with Power BI and with the CRM SOAP and ORest web services means that SharePoint could just as easily be used to deliver CRM Reports or be a portal solution on top of CRM data.

For companies already using SharePoint as their key collaboration and communication tool, there are therefore plenty of options for bringing CRM “in to the fold” and making its functionality available.

References

Here’s a list of useful articles and references – everything you could possibly want to know about SharePoint and CRM!

Overviews & Introductions

http://www.microsoft.com/en-us/dynamics/crm-customer-center/manage-sharepoint-documents-from-within-microsoft-dynamics-crm.aspx

http://crmconsultancy.wordpress.com/2011/10/23/crm-2011-integration-with-sharepoint-taking-a-deeper-look/

http://blogs.msdn.com/b/crm/archive/2010/10/08/crm-with-sharepoint-integration-introduction.aspx

http://crmbook.powerobjects.com/system-administration/sharepoint-document-management/accessing-crm-from-sharepoint/

http://blogs.msdn.com/b/girishr/archive/2013/03/06/what-s-new-with-sharepoint-2013-and-dynamics-crm.aspx

http://www.slideshare.net/atulchhoda/sharepoint-2013-term-store-and-dynamics-crm-2013-true-love-story

Walkthrough of setting up CRM Online and SharePoint Online: –

http://blog.creative-sharepoint.com/2013/10/storing-dynamics-crm-online-documents-in-sharepoint-online/

http://msdn.microsoft.com/en-us/library/jj863709.aspx

http://blogs.msdn.com/b/girishr/archive/2013/05/13/connecting-sharepoint-online-and-crm-online-using-bcs-2013-edition.aspx

Blog Series on Various Integration Options

http://blogs.technet.com/b/anand_nigam/archive/2011/12/04/crm-2011-and-sharepoint-2010-integration-part-1.aspx

http://blogs.technet.com/b/anand_nigam/archive/2012/01/20/crm-2011-and-sharepoint-2010-integration-part-2.aspx

http://blogs.technet.com/b/anand_nigam/archive/2012/01/20/crm-2011-and-sharepoint-2010-integration-part-2-continued.aspx

http://blogs.technet.com/b/anand_nigam/archive/2013/01/26/republished-crm-2011-and-sharepoint-2010-integration-part-3.aspx

http://blogs.technet.com/b/anand_nigam/archive/2012/07/29/crm-2011-and-sharepoint-2010-integration-part-4.aspx

Shortcomings of Security Model

http://www.powerobjects.com/blog/2013/09/27/microsoft-dynamics-crm-driven-sharepoint-security/

Power BI in CRM

http://www.microsoft.com/en-us/powerBI/support/default.aspx?topic=getting-started

http://blogs.msdn.com/b/powerbi/archive/2013/12/19/dynamics-crm-online-in-power-query.aspx

http://blogs.msdn.com/b/crm/archive/2013/04/17/using-power-view-in-excel-2013-to-analyze-crm-data.aspx

http://blogs.u2u.be/u2u/post/2014/02/05/Dynamics-CRM-2013-and-Power-BI-for-Office-365-Part-1.aspx

Using BDC service within SharePoint to pull in CRM data.

http://crmconsultancy.wordpress.com/2011/12/15/integrating-dynamics-crm-data-into-sharepoint-2010/

http://www.concurrency.com/blog/sharepoint-2010-web-parts-and-crm-2011/

Calling SharePoint from CRM

http://bingsoft.wordpress.com/2013/06/19/crm-online-to-sharepoint-online-integration-using-rest-and-adfs/

Microsoft Exam MB2-702 – CRM 2013 Installation & Deployment

 image010

Introduction

So I am churning out these exams at the moment to keep the boss happy and benefit from a Summer break in the usual rush of project work.  Next up was the beast that is installing and deploying CRM 2013, something a little outside my regular job title but I have played around with installs on virtual machines for customer demos.

Happy to say that today I took and passed MB2-702: Installing and Deploying CRM 2013 however and this post then covers how I prepared, what sorts of questions came up and what material I used.  It follows the same format as my other posts on CRM certifications.

The Exam

The exam is the usual 48 questions of multiple-choice format with a passing level of 70%.  It concentrates on installing CRM Server and all related elements (the CRM Outlook client, the Email Router, Active Directory), upgrading from CRM 2011 to CRM 2013 and how to troubleshoot and maintain your shiny new CRM once it is in place.  Both CRM 2013 online and on-premises/partner-hosted are covered in the exam.

The Microsoft page relating to the exam is here: –

http://www.microsoft.com/learning/en-us/exam.aspx?id=mb2-702

Preparation

The main resources I would recommend are: –

1)      If you can get hold of the official course material for this exam (course code 80539A) from the Microsoft Online Courses (MOC) site then this is the best source of training.  It includes ten student PDFs for each of the main topics and also PowerPoint and virtual machine for lab exercises.  Working through this is the best way of preparing as questions on the exam should limit themselves to what is covered on this course.

2)      There is the installation and preparation section of the CRM 2013 Implementation Guide and this is also a great resource for learning about how to prepare, plan and execute your CRM deployment.

3)      Any notes and material related to the older CRM 2011 Installation exam – MB2-867 – are useful as background material as the new exam will continue to test feature that have not changed (much) between CRM2011 and CRM2013 such as Email Router set up, Internet Facing Deployment configuration etc.

4)      If you’re still hungry for more, then check the end of this article and I will paste the notes that I made when preparing for the exam although they are rather rough) to show you exactly what I considered important.

5)      I reverted to MSDN articles to clear up a few unclear points about version compatibility.

6)      Finally there is no substitute for playing with a trial CRM 2013 online version or walking through an on-premises CRM 2013 install yourself.  The bulk of the questions on the test relate to doing this and so you should ideally have installed CRM in the course of your job or be prepared to set aside time to actually do a deployment yourself.

Points Covered

As a general pointer, the following sorts of questions came up a lot for me during the exam and are mentioned on the curriculum link: –

  1. Make sure you know your way around the Office 365 administration interface, be comfortable on the steps needed to set up a new CRM user here and assign a license to them.  Know what you can change concerning the CRM instance itself.
  2. You should particularly know the difference between the administrative roles in O365 and the security roles in CRM, what is where?
  3. Understand the different rights of the essential, basic and professional licenses.  I don’t believe Enterprise license is covered on this exam as it was introduced with the CRM release that post-dates the exam.
  4. Know your online and on-premises licensing, particularly what licenses are needed for different deployment scenarios (multiple servers hosting CRM roles, legacy users, do you need a license for email router or tablets and smartphones?)
  5. Understand the anatomy of a CRM Server, the services that get installed and the role group that they belong to.  You should know which key features are processed by which services and how you would set services up in a load-balanced environment.
  6. Understand the role of Active Directory, what it does for CRM and how you might migrate CRM users from one AD domain to another.  You should know the domain requirements for all the elements in a CRM solution (SQL Server, CRM Server, Email Router etc.)
  7. A bit of memory work but you should know the principal operating systems and versions that CRM and its allied elements support.  I’ve included a table in the next section to try to pull this all together.
  8. Know the difference between workgroup and CRM server and how/if you can migrate from one to the other.
  9. Know how you use product keys during a CRM installation/upgrade.
  10. As I mentioned already, you should walk through at least one CRM on-premises install if you have never done one and get a feel for the main steps, it’s the best way to learn.
  11. Once you have done this you’ll also appreciate the command line interface for installation and what it is doing behind the scenes.
  12. Likewise, provision at least one CRM online instance if you don’t do this as part of your job and have a good nose around Office 365 Admin so you’re comfortable which what you can do.
  13. During on-premises installation understand what you would do if you did not have rights to create Active Directory groups and had to use ones already set up for you by an administrator.
  14. Know the difference between delivering CRM via HTTP and HTTPS and how settings interact between the CRM Deployment Manager and IIS.
  15. Know what the CRM Reporting Extensions are, where they get installed and what they give to CRM.
  16. Similarly, know what the CRM Authoring Extensions are, where you install them and what they are used in conjunction with.
  17. Internet Facing Deployment (IFD) is a big topic and one that I was personally weak on having never done a proper install.  You should be familiar with the high-level steps of IFD and the role of each of the key components.  You should know how you install a new CRM instance to be an IFD and how the procedure is different to change an existing CRM instance into an IFD.
  18. Pay close attention to the role of Active Directory Federated Services, what it is doing for IFD and the port it operates on.
  19. Load-balancing is a similar tricky subject and like IFD might be something that you (like me) have never had to personally implement.  You should what CRM roles must be installed where for load balancing and, related, how you configure CRM to use a SQL cluster.
  20. I had a number of questions on disaster recovery, particularly how you plan to restore each element in the CRM architecture in case of failure (what do you back up?)  Your experience at installing a CRM instance will be of help here so you can explain how you would quickly redeploy just one element of the architecture (CRM server, Email Router, AD, SQL Server) in case of failure.
  21. CRM 2013 introduced server-side synchronisation for email and so you should be comfortable on what it does, how it differs from the Email Router and how it is configured.
  22. You need to go and play with the Email Configuration web page under Settings within CRM and understand the entities there like server profiles and mailboxes so you’re comfortable with what gets configured where.
  23. Know what a forward mailbox is, why it might be used, why and when you approve email addresses in CRM and how emails are tracked (correlation, tracking tokens, smart matching),  Again any time you can dedicate to playing with these and actually configuring some working mailboxes will be time well spent.
  24. Know the pre-requisites for installing the Email Router.
  25. Definitely install and have a play with the Dynamics CRM for Outlook control, you should be happy with the functionality that it offers and au-fait with the constraints for multiple users, multiple organisations, going offline etc.
  26. You should also know what permissions and rights are needed to install the Outlook control and how upgrade from CRM 2011 to CRM 2013 and update rollups affects it.
  27. Upgrading is a whole section in itself and you should know the different upgrade options (in-place, side-by-side) and their strengths and weaknesses.  I was expecting some scenario questions on these but didn’t get any.
  28. You should understand the option to defer the table merge at upgrade.
  29. You should know about upgrading the email router.
  30. Know how the update rollup packages for CRM work, just what Microsoft release and how they get deployed.

That’s a bit of a dump of everything I remember being important from the course study and from the emphasis placed in the exam.

Version Compatibility

Knowing which versions of operating systems, databases, browsers etc. are required for CRM will help you with a number of questions.  You should have gained insight into this when you did your own install but here is (what I hope is) an accurate list taken from course notes and online sources as of June 2014.  It details what I believe are the key things worth committing to memory.

Software Compatible
CRM Server Windows Server 2008 (x64) SP2Windows Server 2008 R2 (x64) SP 1

Web Server, Standard, Enterprise & Data Centre for 2008

Windows Server 2012 (x64)

Standard and Data Center for 2012

SQL Server SQL Server 2008 (x64) SP 3SQL Server 2008 R2 (x64) SP 2

Developer, Standard, Enterprise & Data Centre for 2008

SQL Server 2012 (x64) SP1

Standard, Business Intelligence & Enterprise for 2012

Outlook CRM Client Office 2007, 2010, 2013Windows Vista (x32 and x64) SP2

Windows 7 (x32 and x64)

Windows 8 (x32 and x64)

Windows 2008 Remote Desktop Server

Windows 2008 R2 Remote Desktop Server

Windows 2012 Remote Desktop Server

IE8 or IE9 for setup

Email Router Windows 7 (x32 andx64)Windows 8 (x32 and x64)

Windows Server 2008 (x64)

Windows Server R2 2008 (x64)

Windows Server 2012

Exchange 2007, 2010, 2013

Exchange Online

SMTP

POP3

SharePoint SharePoint 2010SP1SharePoint 2013

Conclusion

MB2-702 does take some dedicated study and, ideally, some real-world experience installing and maintaining a CRM instance both online and on-premises.  If you’re coming to the exam as a seasoned CRM admin then you’ll want to concentrate on any elements of the solution with which you have less experience (IFD, load balancing, disaster recovery) and if you’re coming from a CRM business analyst or developer background where you have less day-to-day contact with deployment then it’s well worth creating a virtual machine to play with and a trial online instance.

Kev Notes

As promised, here are my own revision notes taken from the course material.  They are quite long and detailed as there was a lot of new material for me.

MB2-702KevNotes

Microsoft Exam MB2-700 – CRM 2013 Applications

microsoft_dyanmics_crm_banner

Introduction

Yesterday I passed Microsoft’s CRM 2013 Applications exam (MB2-700), which is part of the new wave of updated CRM exams for the 2013 release.  This post covers how I studied for the exam, what sorts of questions came up and what material I used for anyone else thinking of adding this qualification to their hit list.

In my limited CRM experience, very few of the projects I have done have used the Sales and Case management modules to their full potential – usually because the way these processes are modeled in the “out of the box” CRM does not match the specific customer’s needs.  As a result I realised, when studying for the exam, that I hadn’t fully explored all the functionality present and so relying on my work experience alone would not be enough to get through the exam.

A solid grounding in sales and case management also seems wise at the moment, given the enhancements to these areas which are arriving with the Spring 2014 CRM release.

The Exam

The exam is the usual 48 questions of multiple-choice format with a passing level of 70%.  It concentrates on two areas of CRM’s “out of the box” functionality, namely: Sales Management and Case Management and there are two seperate Microsoft courses which cover these (80545 – Cases and 80546 – Sales).  The exam I took was evenly balanced with questions from both areas. The Microsoft web page describing the exam and the skills tested is listed below and this should always be your final check list that you are ready: –

http://www.microsoft.com/learning/en-us/exam.aspx?id=mb2-700

Preparation

For preparation I did three key things: –

  1. I worked through the two official Microsoft courses (about 14 chapters of notes split into individual PDFs) and can happily confirm that the exam is based on this material with all questions relating to information covered in the courses.
  2. I made my own notes as I went (there’s a copy of them at the end of this article for download).
  3. I worked through some lab examples and tested out some scenarios in a copy of CRM 2013.  More so than the other exams I think this is critical for MB2-700 – as several of the exam questions related to the different processes for handling leads, opportunities, contracts, contract templates etc. and there is no substitute for actually playing with these – it certainly seemed to stick in my head a lot better when I was “hands on” as opposed to just reading lots of abstract training material.

Points Covered

Here’s a review then of the sorts of topics/questions that came up: – For CASE MANAGEMENT

  • Be comfortable with the workflow of a case, how it gets raised in the system and then routed to different people.
  • Know what parts queues play in case management, how permissions work with queues and the difference between “Worked On” and “Owner”.
  • Understand the use of the Knowledge Base, the different template types and how you deactivate/delete a template and what that means for any articles already using that template.
  • Know the workflow of a Knowledge Base article and the conditions for emailing it out to a customer.
  • Know the way that contract templates and contracts are used specifically the different allotment types and how they work.
  • Understand the use of contract lines and what state a contract must be in for you to be able to add these.
  • Be familiar with the contract life-cycle, what stages can pass to what other stages and what stages allow you to link cases to the contract.
  • Understand how cases can be linked to contracts to use up their allotment and the difference between calculated Total Time and Billable Time.
  • Look at the subject tree and know which entities MUST have a reference to the tree to be saved.
  • Know what conditions are necessary to be able to close a case (specifically closing activities linked to that case).
  • Be familiar with that entities can be easily converted in to cases.
  • Know about the use of comments and notes against a Knowledge Base article.
  • Memorise which entities are enabled for queues “out of the box” and which entities have queues created for them automatically.
  • Understand the relationship between a Queue Item and the record it relates to.
  • Understand the use of goal metrics and the goals that use them – this was one area where I found it essential to set up some examples myself and play with them.
  • Know how you use in-progress and actual goals.
  • Know about the different time periods to which a goal applies.
  • Have a play with rollup queries to understand their use.
  • For service scheduling, look at the service calendar and understand the different types of resources that can be scheduled.
  • Understand the selection rules for combining resources to provide a service.
  • Look at the periods of unavailability for resources and how the schedule engine will take note of these when proposing the next available slot.  Be aware that CRM is clever enough to take time zone in to consideration and site.
  • Be familiar with the use of capacity for resources.
  • Look at customer’s preferences for service provision.

For SALES MANAGEMENT

  • Know the difference between a lead and an opportunity.
  • Be comfortable with the workflow of a lead and the entities that can be created when a lead is won.
  • Understand how emails, activities etc. can be converted in to leads and opportunities.
  • Be familiar with all the key entities in the sales area and how they link together – which entities can use sales literature for example?
  • Be comfortable with the workflow for an opportunity and what related entities get closed when a workflow is won.
  • Understand the use of the resolution activity.
  • Play with the product catalog and understand the use of unit groups, discount lists and products.
  • Understand the use of kits.
  • Know how the standard price directly present on a product record can be used by the price lists and the different sort of pricing methods available.
  • Be comfortable with how CRM handles price lists of different currencies.
  • Know the quote – order – invoice workflow like the back of your hand 🙂
  • Know how the use of price lists and system calculated pricing flows through this workflow.
  • Be familiar with what triggers an update to automatically-calculated prices, particularly for mixed currencies.
  • Look at the links between products and quotes and products.
  • Understand what happens to a quote when an order is generated.
  • Know what changes you can make to quotes, orders and invoices AFTER they have been activated.
  • Look at the Sales History and Sales Pipeline reports and understand what they are built to show and what data they use.

Conclusion

Solid preparation is needed for this exam as the questions went in to quite a bit of detail about the workflows, about the set up of certain screens and about how CRM can be used to handle some particular scenarios.

I firmly believe that playing with the system and testing out everything you learn as pure theory is the best preparation you can do.  On my exam there were a few of those annoyingly ambiguous questions that Microsoft seem to throw at you from time to time where it’s not 100% clear what exactly is being asked or multiple interpretations are possible but on the whole the exam was good, very close to the training material and a great way to familiarise yourself with these modules.

Kev Notes

Here are the notes I made during my own preparation, I hope they are of use to you.

MB2-700KevNotes