The purpose of this chapter is to introduce the primary approaches of extending Microsoft Dynamics CRM beyond what is capable using the out-of-the-box customization tools. It will introduce you to a variety of the most common methods of extending CRM and examples of why each method is valuable.
Jump to the following topics to learn more:
- The big picture: CRM as a development platform
- When is custom development necessary?
- Valuable skills for extending CRM
- Form event programming
- Xrm.Page Object Model
- Web resources
- Ribbon and site map customizations
- Web services
As we are learning throughout this book, CRM includes preconfigured entities, fields, forms, views, security models, reports, and workflows that help businesses manage their sales, marketing, and customer support needs. These out-of-the-box features are designed to provide functionality that is common to most sales, marketing, and service processes.
Microsoft Dynamics CRM also includes many out-of-the-box tools to extend custom business logic into CRM, including the ability to build custom entities, fields, forms, views, security models, and workflow to inject specific business needs into CRM. For example, an insurance company might build a custom entity to store and manage their specific policy types for their customers, build rules into their security model, or build workflows to send reminders when a policy is about to expire or to adjust rates based on the status of the customer. All of this is possible using out-of-the-box tools provided within Microsoft Dynamics CRM.
The true power within the Microsoft Dynamics CRM platform is its ability to grow and change to work the way your business works. The examples are endless. However, sometimes more complex business needs require extending the system customizations beyond what is possible using the out-of-the-box tools. When this is the case, businesses can rely on CRM as a development platform. Microsoft Dynamics CRM is built on what is commonly referred to as the “Microsoft Stack”, utilizing .Net, SQL Server, Windows Communication Foundation (WCF), and Windows Workflow Foundation.
As another example, a business could further extend the functionality of Microsoft Dynamics CRM to read and/or write customer data between their CRM system and the ERP system. Instead of relying on CRM users to perform double-entry of data, you can extend the CRM system to automatically “integrate” data between the business CRM and ERP systems using custom code built within, say, a SQL Server Integration Services (SSIS) package or a custom application that sends and receives data through the CRM web service endpoints.
With all these options in hand, there are few business software solutions that cannot be met using CRM. And, with much of the functional foundation provided out-of-the-box (the “plumbing”), building highly customized business solutions on CRM is also an extremely cost effective approach to solving a wide variety of business problems.
As businesses use Microsoft Dynamics CRM, they rely more and more on its feature set. Their data is centralized and when coupled with their business processes becomes a vital cog in the growth of the business. As time passes, the business will identify more and more specific needs for analyzing data, supporting their customers, increasing sales, and finding ways to be more cost effective and profitable in their business. It is with this growth that a business begins to find needs that are unique to their business; or perhaps, a business identifies a need that will drastically increase efficiency or give them an edge in their field.
When the data in CRM becomes this critical, so does the functionality in your business processes. It is this point that extending Microsoft Dynamics CRM becomes more beneficial and powerful.
While it’s true that CRM can’t do everything–it won’t make your coffee–it is pretty rare to find a situation where custom extensions in CRM won’t meet a business need.