The Common Data Service(CDS) and Prospect to Cash integration between Dynamics 365 For Sales and Dynamics 365 For Finance & Operations

Dynamics 365 as a platform has so much to offer for your organization. Be it, best in class Talent management, Sales & Marketing, Customer Service management, Field Service, Project Service automation(PSA), Retail, Finance & Operations management, Microsoft Dynamics 365 offers purpose built apps for each of these areas for organizations of any size, ranging from 5 – 10 employees to large enterprise organizations with 10,000 + users.

All D365 Apps

Any Tier 1 cloud ERP in the market today will probably provide you pretty much the major functionalities, that you would expect for your organization. However, what sets Microsoft Dynamics 365 apart from the crowd, is the platform itself. Along with purpose built, best-of-breed apps and functionality for all areas of your businesses, you also get the tools, services, technology and the best of Microsoft cloud. A few to name are,

  • Common data Services for integrating business apps seamlessly.
  • Microsoft PowerApps to build mobile apps and extend business processes easily with minimal or no coding needed .
  • Microsoft Flow to automate routing, approvals, event based actions and notifications etc.
  • Power BI for incredibly stunning data visualizations and data intelligence.
  • Microsoft Azure technology stack, such as Azure functions, Artificial intelligence, Machine learning and much more.

Probably, no other business application platform provides this breadth of technology and functionality that Microsoft Dynamics 365 provides today.

In my last post, I explained the Common Data Service and the capabilities, what is coming etc. In this post today, I will share some of my findings of testing of Prospect to Cash integration scenarios between D365 Sales and D365 Finance & Operations.

One of the most common requirements of every ERP implementation is the integration of the Sales and marketing application with the Finance and operations application, to exchange business data such as Customer accounts, contacts, quotations, sales orders, products, invoices and more, so that the respective team members from different teams can get a 360 degree view of the customer’s data. The Microsoft Common data service aims to make it possible to integrate Dynamics 365 For Sales and Dynamics 365 For Finance and Operations out of the box, with various data project templates readily available for use.

Why Common Data Service?

You may argue why use Common Data Service to build integration between the apps/services  Vs. just leveraging OData Service or even Customer services (REST/JSON). Sure, you can always leverage either OData Service or the Custom Services to build your integrations between D365 for Operations with other Dynamics 365 or other 3rd part services if you feel more comfortable with that approach. However, leveraging the CDS will give you advantages such as, voiding significant investments in writing custom integration that you need to maintain at a cost. Additionally surfacing business data from multiple business applications of your organization into CDS provides you the capability to create mission critical business intelligence using Power BI or even build custom apps with ease leveraging PowerApps.

Connection Sets in CDS:

Connection Sets defines what apps/services/systems you are going to connect for data exchange.

In PowerApps Admin center, I have already created my Connection Set, that establishes connection between my D365 For Sales and D365 For Finance and Operations apps. I also have done the Organization(s) mapping between these two apps, so that my data will surface in the required entities/organizations. Screenshot below shows the Connection set I have established. This is the first thing you need to setup, before you actually setup the data integration projects.

Connection Set

Data Integration projects in CDS: 

The Data integration projects defines what entities are being integrated/synced between the two apps defined in the Connection set. It contains the following information.

  • A template of the project (Predefined list of Data integration projects provided by Microsoft). Note: Currently, when you create a new data integration project, you are required to select a predefined template. This might change in future, where you can create your own mapping.

DataIntegrationProjects

  • Connection Set: Select the connection set you want to use within the data integrator project.

ConnectionSetInDataIntegrator

  • Organization Mapping: Since you could define more than one organization mapping within one connection set, you will can select a organization mapping that is applicable for the data integrator project.

DataIntegratorOrgMapping

  • Tasks: The data from the source app (D365 For Sales ) flows through the Common Data Service(CDS) to the Destination app(D365 For Operations). The tasks under the project contains the individual data field mapping between the entities in source app, CDS and destination app. It also contains the information such as how frequently the project should run (Manually Vs in Batch).

TaskDataMapping

DataIntegrationProjectRunSchedule

DataMapping

A default task comes automatically when you use a template to create a data integrator project, however, you can add your own tasks to the project, where you can map additional entities.

NewTaskUnderProjectCDS

 

Now that the Data Integrator Project and the Connection sets are configured, let us see how the Customer account data automatically flows from D365 Sales to CDS and then from CDS to D365 For Operations. In this case, I will just run the project manually ( I could set it to run automatically also)

Below screenshot shows the new customer I have setup in D365 For Sales.

NewCustomerInD365FroSales

I ran the data integrator project now manually in CDS admin center. In an ideal scenario, you would set it up to run automatically.

RunDataProject

When the project run successfully , you can see the detailed execution history which will tell that the data got successfully transmitted from source to destination (D365 Sales to D365 For Operations in this case). See screenshots below. This execution log helps you identify issues with data sync if any and take necessary actions.

Execution History1

Execution History2

Now that the execution happened successfully, let us go verify if the Customer account got successfully created in D365 For Operations.

D365CustomerAccount1

D365CustomerAccount2

This was my testing just for one scenario of passing Customer account data from D365 from Sales to Operations for this blog post. There are other templates that addresses the full picture of Prospect to cash scenario(See screenshot below) such as syncing,

  • Contacts from Sales to Operations
  • Products Operations to Sales”,
  • Quotes from Sales to Operations
  • Sales orders from Sales to Operations
  • Sales Invoice details from Operations to Sales.

IntegrationTemplates

I am continuing my testing of all these other entities to see how the overall data flow looks between Sales and Operations. I will share results and findings later 🙂

A few important Notes (Just my thoughts) about these out of the box integrations in D365  using Common Data Services:

  1. The Common Data Service platform seems to be very promising and is absolutely the right step in the right direction for enabling integrations and extension scenarios for Dynamics 365.
  2. With all honesty, CDS platform and functionality is fairly new and we are seeing new capabilities being added frequently. At this point, I have some important questions such as the below, for which I have still trying to get answers . I certainly need to learn more.
    • How does data updates/modifications/deletions sync.
    • Why do I need to select a template always to create a new data project.
    • What about notifications on execution history/results.
    • What happens to Bi-directional data update for an entity.
    • what is the data size/volume limitations for the Data integrator.
  3. I am also not very clear on the data security management of CDS . It looks like there are security roles and permissions that Microsoft provides in CDS, but looks like this needs to mature more.
  4. Right now, it seems like you can connect only Azure based services/apps. I don’t know how this will work with non-azure/external apps/services. At least, I have not tried yet.
  5. In my view, it does not look like the out of the box integration is ready for prime time, that customers can simply deploy and get going smoothly without issues. This will change significantly for sure in the months to come, when more features are released and bug fixes are out. I would imagine by the Fall of 2017, we should see a much robust out of the box integration using the CDS.
  6. Customers who are flexible to adopt the platform with a long term vision for success, can adopt the CDS integrations right away and go through the process of learning and will certainly get return on the investments in long term.
Advertisements

Common Data Services (CDS), Data Integrator and Dynamics 365, What will you do?

In my post on “My favorite features from the July 2017 update of Dynamics 365 For Finance & Operations“, I highlighted the availability of the Prospect to Cash integration scenarios between Dynamics 365 For Sales and Dynamics 365 For Finance and Operations.

The out of the box integration is probably one of the best things that can  happen to an ERP and CRM platform, where we will now depart from the traditional way of writing custom integrations every time, to be able to connect CRM and ERP systems. With the power of “Common Data Service(CDS) and the new “Data Integrator” feature now available, the integration of Dynamics 365 for Sales (CRM) and Dynamics 365 For Finance and Operations (ERP) is now possible right out of the box in Dynamics 365, with no or not much custom integration needed.

In this post, let us decode some of these new features and terminologies into simple definitions, so that we all can better understand what these are, how they work and what benefits these will bring on to the table for partners and customers.

Common Data Services: The ultimate purpose of Digital transformation initiatives and implementing business applications for an organization is to be able to drive and produce actionable data and then democratize the data for key users to make more sense out of those data from all areas of the business. You can then use the data to create BI dashboards/reports using Power BI or configure business apps using Microsoft PowerApps and share it with others in the business as needed.

At the core, Common Data Services is a Microsoft Azure based Cloud data storage service that allows to surface data from multiple applications (Such as Dynamics 365, Office 365, and other similar Azure or Non-Azure based services), and make them all available at one central place. The data model in the Common Data Services is referred to as the “Common Data Model” that basically contains several out of the box data entities. These entities then contain  the required set of data fields to store the data. Some examples of these data entities are “Customers”, Accounts, Contacts, ERP Sales Orders etc. When you create a new environment in CDS, you will see the readily available entities that you can take advantage of, or you can create your own entities as you need. You can  also modify the standard entities of CDS to be able to store data specific to your business.

Screenshot below shows some standard entities of the CDS and specific data fields of one of the entities.

Common Data Service Entities

Accounts Entoty

Data Integrator: With that high level overview of what is Common Data Service, let’s understand what is the Data Integrator. The Data Integrator is a new feature of the Common Data Services, that lets you build an end to end view of your business data by making Dynamics 365 data available in Common Data Service. It enables you to connect multiple business applications such as “Dynamics 365 for Sales” and “Dynamics 365 for Finance and Operations”, by surfacing data from the source app to CDS and then passing it over from CDS to the target app automatically.

This is done through a set of Connection definitions and Connection sets, which are eventually used in the data integrator projects. Connections basically stores the active directory credentials for your target app/system. Connection sets primarily stores the organization mapping info(For example the Legal entities of D365 For Finance & Operations app and Sales Unit/organization of D365 for Sales). We will discuss more about the specifics of the Connections and Connection sets in a future post.

The data that is synchronized to CDS by Data Integrator is currently Read-Only and will not be editable. You can use the CDS data to sync that to other business apps or to create business applications using Microsoft Power Apps and CDS SDK.

Customers can create Data Integration projects by themselves from scratch or use existing templates provided by Microsoft and then set those data integration projects to run on a recurring basis to sync data into the CDS flow the data between multiple applications.

Screenshot below shows some data integration templates that are already available to pass data between Dynamics 365 for Sales and Dynamics 365 For Finance and Operations. These templates seems to be supporting the Prospect to Cash scenario between D365 For Sales and D365 For Finance and Operations, where you can pass Customers/Accounts data from Sales to Operations , pass Products/Items data from Operations app to the Sales app, or pass Sales quotation data from Sales to Operations(Still in preview) via the Common data Services.

Note: I have not configured my D365 For Sales environment yet, so I am not able to test the full experience yet, but it is very obvious how this feature is architected and how the data flow will happen between the apps. I will be able to test this soon, when the environment is ready in coming weeks.

Data Flow Overview via CDS

Data Flow Overview via CDS

Connection Set

Data Integrator

PowerApps and CDS: If you do not know already, think of PowerApps as the front end interface for interacting with the data in your database (which in this case will be the Common Data Services or any other supported services). The configurable data integrator feature of the CDS is the first step towards integrating the Dynamics 365 apps (Such as D365 For Sales and D365 For Finance and Operations). Down the line, all the apps under Dynamics 365 such as D365 for Project Service Automation, D365 for Field Service etc., will be supported for this integration, where we will be able to sync data between all these different purpose built apps using the CDS as the staging database.

This slideshow requires JavaScript.

Think about it ! Once your data is available in CDS via the Data integrator from multiple applications, Power users of your organization can write business apps (Mobile or tablet based) using this data and PowerApps and extend the business processes more with this. I explained some of my initial observation about PowerApps and CDS in my earlier post here. In future, Microsoft will surely make it easier by providing more and more out of the box data integration templates for more data integration scenarios and will automate the data sync to CDS automatically at some point, so that the data will be readily available in CDS any time for you to consume and use.

What is next: For customers who have the Plan 2 or Dynamics 365 For Finance and Operations subscription, they have access to Common Data Services and the Data integrator feature right now. Go and explore what you will do with it!!

I will share some real time testing experience of the Prospect to Cash integration scenarios between D365 Sales and D365 Operations with the Data Integrator, Connections, Connection sets etc., once I have my environment for D365 For Sales configured and after I have fully tested it.

Till then, stay tuned, stay current !!