I had a bit of time recently to investigate some of the new and not-so-new technologies coming out of the Redmond campus and things look quite interesting.
Microsoft Common Data Model (CDM)
The first piece of the puzzle is something called the Common Data Model or CDM. Surprisingly enough, Microsoft actually chose a nice name for this product that is self-describing in what it actually does. The CDM is a secure cloud database (think SQL Azure) that sits at the base of the upcoming Microsoft Dynamics 365 Application Platform.
Currently, it is accessed only from within PowerApps, but considering it sits in Azure I would fully expect that to change soon. The idea behind this approach is that the database contains standard business entities that can be deployed in your company to be consumed by other applications.
It is also quite easy to either extend the standard entities or make your own custom entities entirely if applicable using rich data types. This provides the obvious benefit of a unified view of data across an organization and goes a long way towards addressing silos of disparate (and possibly duplicated) data.
In the current User Interface, creating a new Entity is as simple as clicking the New entity button at the top right.
Once you click next you can see the standard fields on all entities. Click the Add field button at the top right to add your own, and finally Create to commit your changes.
So now that you understand the basics of how to modify and maintain your CDM, the next logical question would be how do you actually get data into it? While there is the ability to import data using Excel provided within the CDM, this isn’t very exciting from an application integration perspective.
That brings us to the 2nd piece of the puzzle, which is something called Flow.
A Flow is Business Process Automation similar to a workflow (hence the name). It is used to integrate applications and services, and take actions based on predefined events.
With regards to the Common Data Model, Microsoft has provided a handful of templates that should give you a good idea of what to expect.
There is clearly a focus on Dynamics CRM and Salesforce as potential sources for bringing data into the CDM and this is somewhat expected as they are closely following the development cycle of the Dynamics 365 initiative.
Since we at Rockton are heavily involved in Dynamics CRM development, let’s see how we could take data from CRM and get it into the CDM.
We will choose the Copy Contacts Template since that is a fairly common scenario.
On the next screen it automatically selected my CRM and CDM connections that I had previously configured.
Clicking continue brings me to the screen where I would select my CRM Organization and CDM Namespace.
I am not sure why I need to select the CDM Database since at this point you are only able to create a single instance, but maybe future functionality will include the ability to have multiples. You can add additional steps or click the Edit links to specify additional mappings between fields for both the source and destination.
After clicking the Create Flow button at the top of the screen the Flow is ready to copy Contacts created in CRM to the CDM.
So now that we have data “flowing” from our CRM into the CDM, what can we do with it?
That brings us to the 3rd and final piece of the puzzle, which is something called PowerApps.
We have been discussing PowerApps within the context of modifying our CDM, but now we will switch from the backend to developing something on the front end. For our scenario, we will want to display Contacts contained in the CDM into a mobile application on our phone.
Once again, Microsoft has provided a template specifically for this purpose.
Choosing the Common Data Model template takes us to the screen where we can select what entity we want to deal with.
Here we will select the Contact entity and click Connect at which time it will begin building our app.
When it is complete, we are presented with three screens (Browse, Detail and Edit) that we can modify to fit our needs.
Save the Application, download PowerApps to your phone and when you login you should see the application available with basic functionality to Browse and Edit Contacts from the CDM.
Now, obviously there are many approaches available to solving the business problem of viewing & editing CRM Contacts on your mobile device.
You could have used the mobile forms and functionality that is native in CRM, or connected PowerApps directly to your CRM data, but the intrigue to the approach above is when you are dealing with multiple systems.
It’s not difficult to imagine an environment where you have Contacts in CRM, Internal Systems or Legacy Applications and you want a consistent view of them all. Leveraging the CDM, Flow and PowerApps tool set makes this a business problem that is easily solved. And remember, just as we consumed our data from the CDM we could have also added a Flow that goes the other direction and updates other systems with any changes resulting in data that is always in Sync.
Of these 3 technologies the most intriguing for me personally is the CDM and being able to have a singular source of data for application development. Cloud computing is definitely proving to be big business and it is becoming more important than ever to be able to analyze and leverage data as a key differentiator of technology.
Written by Shawn Strayer, Web Developer at