Category Archives: Common Data Service for Apps

The future of xRM / CRM is here! ūüĒ• A first (impressed) look at the new PowerApps and Common Data Service for Apps

Note: this article was first published on LinkedIn.

Following my article¬†The new PowerApps and CDS for Apps run on xRM!, I’m happy to share with you my first steps in the CDS for Apps and PowerApps “Model-Driven App” world!

The Common Data Service (CDS) enables customers and partners to build and deliver rich LOB applications using data from the Dynamics 365 family of services and Office 365. CDS is ubiquitously available in Dynamics 365, Office 365 and as a standalone aPaaS platform through PowerApps.

Creating a new CDS for Apps environment

Creating a new CDS environment is quite easy, but you need an appropriate subscription! Check out the¬†PowerApps Plan 2 subscriptions¬†($40 / user / month). It’s available for a 30 day trial.

Now that you’re licensed, simply log into the¬†Microsoft Business Platform admin center¬†(or in the¬†PowerApps admin center, in fact it’s the same thing). Here, you will find all your existing¬†Dynamics 365 Customer Engagement¬†and¬†Common Data Service for Appsinstances / environments:

Click on “New environment”, fill-in a name, a region (the region must be the same as your Azure AD if you plan to create a database), and the type of environment (Production or Trial).

After you click create, you will be prompted to configure the base language and currency (yes, just like CRM!)

After creating the database, just wait a few minutes and your instance should show up (and it will display the Dynamics 365 Administration Center as well!).

As you can see in the screenshot below, it offers the same options as a “classic” Dynamics 365 Customer Engagement instance: you can edit the instance Name, URL, Type (Production / Sandbox), Security Group, and you can also copy it to a sandbox (even a Dynamics 365 Customer Engagement one).

If you navigate to the instance, you will be surprised (or not) to see that the sitemap only includes the Settings and Trainings areas. No more default areas for Sales, Service and Marketing as we used to know:

But wait, there is more!

Microsoft has accomplished quite a tour de force! They completely striped down the environment from what used to be core business entities¬†such as Lead, Opportunity, Case, Campaign… Those are now included in dedicated solutions and packaged as apps.

The Default Solution contains in fact very few functional objects: Account, Contact and Activity entities. The rest is just configuration related. Out-of-the-box, the system contains only 56 entities (these are the entities visible in the solution, if you browse the metadata, there are 312 entities, a lot of them technical, but still no opportunity, case, etc.). To give you a comparison, vanilla instances of Dynamics 365 Customer Engagement (with no applications such as Field Service, Sales, etc. installed) contain 130 entities in the Default Solution.

Now that’s pure xRM, isn’t it?

There are also only a few dashboards and reports:

4 security roles (on top of System Administrator, of course):

What solutions are installed by default?

  • Common Data Services Default Solution. This unmanaged contains all customizations you have done¬†from¬†PowerApps (
  • CDS Management.¬†A managed solution that only contains the “Environment Maker” security role.
  • Base Custom Controls Core. This managed solution contains 52 controls (based on the new¬†Custom Control Framework).

What about users?

You will find in the Security / Users part of the instance¬†the full list of users of your Office 365 tenant.¬†That’s right, even those who don’t have a single PowerApps or Dynamics 365 Customer Engagement license!

I’ve created a dummy user with a simple Office 365 E3 license to check if he could access the instance with a proper security role, and it works. I was even able to configure Server-Side Synchronization for his Exchange account. There was however no options to enable / configure the Dynamics 365 App for Outlook.

What about model-driven apps?

You can either create Apps from the CDS for Apps instance, in the classic Dynamics UI (either is Settings / My Apps, or within a Solution), or you can create an App from the PowerApps interface:

Whether you create the App from the CDS instance (the Dynamics 365 experience) or from PowerApps is quite similar. It will open the the app designer (…) of your CDS instance. The only difference is that the App you create from PowerApps will have¬†CDS Default Publisherprefix.

Just like any app, your App can contain system or custom entities, and you will be able to customize the system the same way you did on a classic Dynamics 365 Customer Engagement instance.

Here, I have created a little Model-Driven App for my dummy user containing a “Show” custom entity. The user was able to access it from the Web:

And from the mobile Dynamics 365 for phones application:

What about customizations done from the PowerApps side?

You can easily create and modify Entities, Fields, Keys, Relationships, Views, Business rules, shared option sets, directly from within the PowerApps user interface. New fields and entities will be prefixed with the CDS Default Publisher prefix (just like new apps), and all new or modified customizations will be added to the Common Data Service solution.

What data integration options does PowerApps bring to the table?

PowerApps comes with some Power Query Data integration options. Here are the available sources as of today:

Final words

The new CDS for Apps is a fantastic opportunity for customers and ISVs to easily create new cost-effective business applications on top of the same robust foundation that powers Dynamics 365 Customer Engagement.

I was surprised my dummy user did not need a PowerApps Plan 2 license to access the CDS for Apps instance and app, but this could because this is all brand new.

I tried to trick the system and install the Dynamics 365 Sales Application, but it failed, maybe because of missing dependencies or by protection mechanism to prevent people to add Dynamics 365 Customer Engagement apps on basic PowerApps Common Data Service for Apps environments.

The new PowerApps and CDS for Apps run on xRM

How the Dynamics CRM technology foundations have come the beating heart of the Microsoft Business Application Platform.

NB: I’ve changed the initial title to avoid confusion: xRM is not dead, it just got reincarnated into a new product and has a new official name. The new PowerApps & CDS for Apps platform is now the platform that the Dynamics 365 for Sales, Service, Marketing, etc. applications are natively built on.

A little history…

A long time ago, there was Dynamics CRM. A solution that integrated sales, service and marketing automation features.

People quickly started talking about xRM because of the great extensibility of the platform. It became possible (and easy!) to manage new business processes and objects. Customizers could create new entities to meet business requirements that were not supported of the box, and customize them with their own fields, relationships, business rules, workflows forms, charts, dashboards…

Dynamics CRM then became Dynamics 365 Customer Engagement. A platform that was able to integrate various business application packages that could be activated (and licensed) independently: Sales, Customer Service, Field Service, Project Service Automation, Marketing… But Dynamics 365 Customer Engagement remained an “xRM” platform that allowed to create your own business applications or integrate prebuilt industry verticals or more advanced modules (such as ClickDimensions, for marketing automation).

In parallel, Microsoft developed PowerApps. A solution that allowed to easily create new business applications with a WYSIWYG approach, mainly to create mobile / tablet applications in a PowerPoint-like editor. One could mix various sources of data (Dynamics, SharePoint, Office, but also from non-Microsoft editors such as PowerApps leveraged the Common Data Service, a kind of transverse database for applications.

It might not be obvious to the eyes, but the July Update of Dynamics 365 (9.0) was a big architecture update of the Dynamics CRM / 365 platform (watch this video if you haven’t, to better understand what happened). Under the hood, Microsoft worked very hard to separate the “core” features and entities of the platform from the various business modules (sales, service, marketing) that were historically embedded in the core. One of the goals was to remove dependencies between the different business applications packages lifecycles:¬†for example you could update the Sales app without touching the Service app. To me, this big architecture makeover is one of the reasons that v9.0 is still not available On-Premise.

With the Spring 2018 Release, PowerApps and the Common Data Service for Apps become the beating heart of the Microsoft Business Application Platform.

With the migration of more an more Dynamics 365 Customer Engagement components to Azure (since v9.0, the database runs on Azure SQL), Microsoft transformed the old-fashioned xRM platform and made it the foundation to the various lines of business business applications running on PowerApps.

Dynamics 365 Customer Engagement was the ideal choice for this new foundation, as it already offered many out-of-the-box no-code extensibility features. Any customizer can quickly create new entities and fields (including roll-up and calculated fields), business process flows, workflows, business rules, forms, views, dashboards, etc. that would seat within dedicated application packages. These applications can be associated with target user groups and integrate a powerful and robust security model.

What was yesterday the Dynamics 365 Customer Engagement platform has become the Common Data Service for Apps. Applications created within the Common Data Service for Apps (so the Dynamics 365 Customer Engagement core, if you follow me) are now called PowerApps Model-Driven Apps. These apps leverage the new Unified Interface (UI). CRM instances have become CDS instances / environments.

Dynamics 365 Customer Engagement app modules (for Sales, for Customer Service, for Marketing, for Field Service, for Project Service Automation…) are based on the Common Data Service for Apps.

In front of the Common Data Service for Apps, the Common Data Service for Analytics. What ties them together: the Common Data Model.

Intimately related to Power BI, the Common Data Service for Analytics brings intelligence and insights to the business data coming from Common Data Service for Apps (or from external sources) and stored in the Common Data Model.

CDS Architecture



The evolution of PowerApps

Existing PowerApps applications (now called “Canvas Apps”) will continue to work, and the legacy CDS environments will be migrated to the new CDS for Apps architecture.

Canvas and Model-Driven types of apps will both appear on On the mobile side, those types of apps will remain separated, but that should change later this year.

What subscription for some pure xRM application design?

For customers who need to create their own applications (if their functional requirements are not covered by existing Dynamics 365 modules) they can use this SKU: “Microsoft PowerApps P2” (catalog price: 33,70 ‚ā¨ / user / month). ISV will certainly also offer prebuilt applications to extend the existing Microsoft Business Application Platform offering.

Where to start to better understand all changes brought by the Spring 2018 Release?

For a global vision:

CDS Digital Feedback Loop

On PowerApps and the CDS for Apps:

On instance management:

On Flow:

On the Common Data Service for Analytics: