I’ve written a few articles on the “XRM thing”, and why the Dynamics CRM 4.0 is such a great platform for the development of line-of-business applications. At a recent meeting of the Dynamics CRM User Group we had a very good presentation from Microsoft’s Bob Piskule. Along with Bob, Microsoftie John O’Donnell provides adult supervision when we DCRMUG’ers meet at their Downers Grove office for our monthly meetings. Bob and I had a brief exchange towards the end of the session (you can view the recording from this page) that crystallized my thinking on some XRM topics, which I’ll try to summarize here.
What if they took the “C” out of CRM?
I’ve had a few recent customer conversations where the “C” part of CRM got in the way of the conversation. They were interested in developing a custom application that I knew would be a great fit for Dynamics CRM, but it wasn’t going to use much if any of the baseline feature-set of the product (sales, marketing, customer service). If you aren’t familiar with the platform, I can imagine it’s a little hard to think about an application built in Dynamics CRM that has nothing to do with its core features! But that’s really what the XRM concept comes down to: you can use the platform to develop any application, whether it has anything to do with “customers” or not.
The exchange I had with John was an extension of these XRM lines of thought: what would a real XRM platform look like? It won’t be too long before companies who aren’t using any of the built-in functionality start wondering why they’re paying for it. I’d be surprised if Microsoft hasn’t been approached already on the topic.
Or what about a developer who builds an application on the XRM platform and wants to sell a jillion seats. At $44/seat (the retail price of the Pro version of Dynamics CRM Online, on a per-user per-month basis), $44 jillion might be cost prohibitive, but he might be willing to pay $25k for an unlimited seat license in return for not being able to use any of the sales, marketing or service core feature-set.
XRM you can do Now
There actually are some options along these lines available now. There’s a “connector” license you can purchase for a one-time fee. If you have the connector you can expose read/write forms to users without a per-seat license fee. The catch is that the forms have to be ones you create yourself with custom .NET code, and you don’t get any of the built-in user experience goodness like reports, Advanced Find and so forth.
This approach is better than nothing, but it excludes what in my view is the secret sauce of of the platform: the native customization techniques exposed entirely through the web UI in Dynamics CRM.
Create an XRM Application in 5 Minutes
I’ll present an example here that illustrates the bare essentials of what you can do now, using the current capabilities of the Dynamics CRM customization feature-set (this works identically in the CRM Online or on-premise versions). It is simple, but if you’re new to this it illustrates some important customization techniques. And even if you aren’t the person who will be implementing customizations for your organization, it shows how you can “take the C out of CRM”, which is essentially what the XRM discussion is all about. Here’s the executive summary:
- Create a new security role. New security roles (created “from scratch” – that is, NOT by copying an existing security role) contain no privileges to any entities by default, so the only way to expose entities to a user with this security role is to explicitly add privileges. I called it “XRM User”, for the purposes of the demo.
- After creating the XRM User security role, I added privileges to it that will expose only some of the custom entities my organization uses.
- For a specific user, remove any existing security roles and assign the XRM User security role only.
- For the custom entities I wanted this user to see, I customized them so that they only appear in the “Workplace” area in the site map.
- I also customized our Site Map, changing the name of the “Workplace” are to “IMG Workspace”. This isn’t essential, but it does illustrate that you can make the site map appear however you want it to.
The main point of this exercise is that you can easily strip down Dynamics CRM so that users see only the entities you want them to see, mixing and matching entities from your Great American XRM application with anything from the core feature set.
Let me know what you think of my awesome XRM application, and if you want to do it yourself, follow these steps:
Create the XRM User Security Role with privileges to none of the built-in entities, and only to the “XRM” entities you want to expose:
- In the left navigation area, click Settings, then click Administration.
- Click the Security Roles link, then click New to create a new security role.
- Call it “XRM User”, use all of its default settings (remember: a security role created from scratch like this has permissions to almost nothing!) and save it.
- Click on the “Custom Entities” tab for the security role, and add the privileges you want for any custom “XRM” entities you want to expose to these users.
- Pick a user, and remove all of their current security roles, and assign them this new “XRM User” security role only. (If you want to prank you buddy, use his or her user account. If you’re in one of those buttoned down corporate environments where things like messing with people’s user accounts are taken seriously, use a dummy account or do this in a sandbox environment.)
Customize XRM Entities so they appear only in the “Workplace”
For each entity, follow these steps:
- In the left navigation area, click Settings, then click Customization.
- Click the Customize Entities link, then select the entity you want to customize.
- Double-click it to open its customization form, then uncheck everything in the “Areas that display this entity” section except for the Workplace.
- Save and close the form, then publish.
Customize the Site Map
- In the left navigation area, click Settings, then click Customization.
- Click the Export Customizations link.
- Select Client Extensions from the View drop-down, and select Site Map from the list.
- Click Export Selected Customizations, and OK to confirm.
- Save the file to disk somewhere you won’t forget about it.
- Extract the zip file and edit the extracted XML file with Visual Studio, or XML Editor, or Notepad or whatever text editor you like.
- Find the line that looks like this:
<Area
Id=“Workplace“
ResourceId=“Area_Workplace“
ShowGroups=“true“
Icon=“/_imgs/workplace_24×24.gif“
DescriptionResourceId=“Workplace_Description“>
- At the very end of the line, add a “Title” attribute with whatever custom title you want for your XRM Workplace:
<Area
Id=“Workplace“
ResourceId=“Area_Workplace“
ShowGroups=“true“
Icon=“/_imgs/workplace_24×24.gif“
DescriptionResourceId=“Workplace_Description“
Title=“IMG Workspace“>
- Save the file, and go back into XRM – er, Dynamics CRM.
- In the left navigation area, click Settings, then click Customization.
- Click the Import Customizations link. Browse to the saved XML file, and import it.
- When you refresh the browser, you will see the Workplace customized with the new name you’ve given it.
After you complete these steps, you can get a good visualization of how customizable the platform is by signing in first as a System Administrator or somebody with lots of privileges. Here’s what it looks like for me, for example, in my “normal” CRM Online production organization:

Then, sign in as the user you assigned the “XRM User” security role to. Make sure that’s the ONLY security role they have, otherwise it spoils everything! Here’s what it looks like to that user:

This user doesn’t have privileges to see any entities except for the five custom ones exposed on the “IMG Workspace” site map area, so none of the traditional CRM areas – Sales, Marketing, Service – appear. She can click Advanced Find but can’t see anything except the specific entities her security role grants her privileges to.
Wrapup
Like anything else, it takes some time to learn how to build custom XRM applications on the Dynamics CRM platform. But once you’re up to speed, there’s no question that it’s a more productive approach to application development than most of the alternatives. My guess is, it would take about 10-20% of the time to create an XRM application on Dynamics CRM that it would to create it using C# and SQL Server. To be clear, I’m saying it’s reasonable to expect, for a comparable application, 5-10x more productivity on Dynamics CRM than with traditional development approaches.
The flip side, of course, is the licensing model. With the DIY C#/SQL approach I don’t have any user CALs to purchase. So the platform decision amounts to trading off developer productivity against licensing costs. I’ll close out by characterizing three scenarios I think are pretty common and provide some guidance on the decision process for each:
- Organizations who have already licensed Dynamics CRM have an easy choice: don’t do any more development of line of business apps in Access or C#/SQL or whatever other alternatives you might consider. Most or all of your application development should be done in CRM.
- Organizations considering the purchase of a CRM should incorporate the potential XRM benefits of Dynamics CRM into their decision process. It might not be obvious that when you’re comparing different CRMs for your sales/service/marketing functions, you should incorporate developer productivity on entirely different XRM apps into the decision process. But I think sometimes this could be an important factor.
- Organizations or individuals developing standalone XRM apps with potentially large user populations, many of whom might be outside the firewall. For this scenario the current licensing model for Dynamics CRM will make it prohibitively expensive for many. Let’s hope that changes!