Microsoft Dynamics CRM & Salesforce Analytics Cloud

In this blog, I am currently focusing on data acquisition by Microsoft Dynamics 365 CRM in conjunction with Einstein Analytics. I wanted to highlight some touch points on building a campaign performance dashboard by aggregating Microsoft & Salesforce marketing data for this use case.

Why Data Acquisition?

Data Acquisition is one of the core factors to deliver successful Einstein Analytics projects. This has been one of my fav topic in Einstein Analytics. Because it gives me plenty of room to display the power of data integrations in Einstein Analytics, where different lines of business could easily connect their data points and applications in just a few clicks. In addition, you can have one unified holistic view without hopping too much to get those insights.

Personally, I myself a big fan of point and click actions. Always emphasizing more on to use as much declarative capability as possible from the platform. If I look at the commercial aspect then I see a huge potential to position Einstein Analytics stronger compares to other data exploration tools to our salesforce customers. Indeed, without a question the ease of using this application is phenomenal.


“Design is so simple. That is why it is so complicated – Paul Rand”


Dynamics 365 is a product line of enterprise resource planning (ERP) and customer relationship management (CRM) applications announced by Microsoft in July 2016. Like Salesforce, they are also having their cloud solutions for Sales, Service, Marketing, Field Service etc. Additionally, it is easy to integrate with other Microsoft programs and services, such as SharePoint, Yammer, Office 365, Azure and Outlook.  In case of having a broader use case, these data points can easily ingest into Einstein Analytics.

EA Connectors:

Based on the data ‘Pull’ mechanism Einstein Analytics has several out of the box data connectors on the platform. Not only these can be scheduled individually but further down you can also prepare or transformed in your pre-post dataflow operations to simplify it for your end users on the dashboards. Below is one of the connector I will be using for my demo (Snapshot Below).

Snapshot: EA Microsoft CRM Connector

Campaign Performance Dashboard (Microsoft & Salesforce):

Below is the dashboard I have constructed for my use case. Behind this design below were some of the key thoughts I was having (Snapshot Below)–

  • I wanted to convey my message through icons more than writing texts for this dashboard.
  • Target Audience: Our Marketing team is very dynamic (20-30s age group) in the organization. Therefore, I can surely play around with some colors to convey my overall message.
  • If I have to start my customer journey from this page, then how can I achieve this by breaking down my aggregated number into more child detail dashboards? (Not Covered in this use case)
  • How can I simplify my design more so it can fit into multiple devices without too much scrolling with enriching UI/UX?


Snapshot: Sample Campaign EA Dashboard

Use case Overview:

In order to simplify this use case for a broader audience. I am bringing Microsoft Dynamics campaign, opportunity & account data. Later utilizing this data point to integrate with my Salesforce marketing data to build ‘Campaign Performance’ dashboard in Einstein Analytics.

Environment Overview:

Below are the key components I am using for my use case.

  • Microsoft Dynamics 365 Trial Account: Source Link
  • Salesforce Development Environment: Analytics Enabled: Source Link

Implementation Focus Steps:

  • Step 1: Pulling the Marketing data from Microsoft Dynamics 365
  • Step 2: Post-transformation & Salesforce Data Augmentation
  • Step 3: Final Dataset creation for Campaign Dashboard in Einstein Analytics.

Approach Description:

1) Dynamics Sign up: You need to sign up for the free Dynamics trial account (30 days) – Snapshot (Below)-

2) Dynamics App Selection: Select the application on which you want to test your integration. You can also extend further after the sign up in case you want to decide later for more applications. (Snapshot Below)

Snapshot: Microsoft Trial Account Overview

3) Dynamics 365 Home: After the signup, you will be landing on the default homepage. (Snapshot Below)

Snapshot: Microsoft Trial Homepage

4) Dummy Data Import: In case, if you are using a trial account. You may see no test data or an empty instance. In this step, we will have to activate some dummy data for our Microsoft Dynamics 365 application.

Go to Setting section from the top left panel by pressing the arrow icon (Snapshot Below):

In the next step under the System menu, select ‘Data Management’ and then Select ‘Sample Data’ (Snapshot Below):

Snapshot: Microsoft System Settings Page

Snapshot: Microsoft System Settings – Data Management

As I have already installed the sample data. In your case, you will see the pop-up stating adding sample data button. Press ‘Add Sample Data’. This will take a few moments. After that, you will have some dummy data to play around in the application. Also, follow the same process in case if you want to remove the sample data from your application (Snapshot Below):

5) Data Created in Dynamics 365: In my case, you can see I have the marketing data created in my application. (Snapshot Below)

Snapshot: Microsoft Dynamics Sample Dashboard

6) Microsoft Dynamics 365- Einstein Analytics Replication Connection:

In this step, we will create a Microsoft Dynamics connection from Einstein Analytics. In order to fetch our campaign relevant data and then store into the replication cache. Now go to your Salesforce Environment and then Analytics Studio. Then you need to press ‘Data Manager’ in the very right corner (Snapshot below).

Press ‘Setup’ from the left panel and then press ‘Set-Up Replication’ in the very right corner (Snapshot Below).

Select the connection type ‘Microsoft Dynamics CRM Connector’ for your new remote connection (Snapshot Below).

Snapshot: Microsoft Dynamics EA Connector

Now you need to add the Microsoft Instance credentials in order to establish the connection

  • Connection Name: Any meaningful name
  • Developer Name: Any meaningful name
  • Description: Any meaningful Description
  • Username: Your User Name
  • Organization Name: Your Microsoft Trial Org. ID  (Snapshot Below)
  • Discovery Service URL:
  • Domain:
  • Password: Your password credentials

Organization Name: You can find your Microsoft Trial Org id at the very right corner of your account (Snapshot Below)

Snapshot: Microsoft Dynamics Org. Name

Discovery Service URL: This discovery service is necessary because Microsoft Dynamics 365 is a multi-tenant environment—a single Microsoft Dynamics 365server can host multiple business organizations. By using the discovery Web service, your application can determine the endpoint address URL to access the target organization’s business data.

Syntax: https://dev.<hostname[:port]>/XRMServices/2011/Discovery.svc

In order to locate the service URL for your instance. You have to go to ‘Settings’ then select ‘Customizations’ menu. From there you have to select the ‘Developer Resource’ (Snapshot Below)

Snapshot: Microsoft Dynamics Settings

Then under the ‘Discovery Service’ section, you can locate the URL for your instance (Snapshot Below).

Snapshot: Microsoft Dynamics Service URL Overview

Now the connection has been established.  In the next step go to your ‘Connection’ select some specific fields from your replication in order to make those available for your data flow to use and Press Continue and then SAVE (Snapshot Below).

Now you can see your new ‘Microsoft Dynamics CRM Connector’ connection is there in the Einstein Analytics data manager tab for your data flow to use for the future. In addition, you can set your scheduling for this connection from there (Snapshot Below).

In the last step ‘Run’ the Microsoft Dynamics CRM Connector replication and monitor the job run (Snapshot Below)

8) EA Replication – EA Dataflow: In this step, we will create our first data flow to use our Microsoft Dynamics in conjunction with SFDC campaigns from the replication cache. In order to register those as our ‘Microsoft CRM based Dataset’ in Einstein Analytics. Create a new data flow and in my case, I am giving my data flow name as ‘Salesforce_Microsoft_Campaigns’ data flow (Snapshot Below).

In the last step run your data flow and check your dataset in the Shared app folder.

Voila 🙂  Now you can see your dataset in Einstein Analytics (Snapshot Below)


Summary & Conclusion:

  • In the above scenario, I have focused on unidirectional flow to ingest the data into EA from Microsoft Dynamics CRM. But this could be easily transformed into bi-directional using n number of target SFDC instances for your use case using EA API’s.
  • Think ahead about designing the data schemas for your data models. Eventually, the data will be incrementally increased over the time. You don’t want to put yourself in a position where you will be having bottlenecks in your architecture and have to re-engineer your schemas from scratch.
  • Performance testing should be equally considered individually for your use cases in running sprints.  It’s not only about having the right KPI number on the UI. But underlined processes are equally important how you have derived that number on a long run for scalable reporting architecture.
  • I have used the fairly straightforward sample use case in order to showcase the dataset creation via this connector.  You can extend this easily to integrate Sharepoint sites or office 365 apps or  Yammer or Azure cloud etc.


For the new audience on this topic, I hope it gave you a fair idea about the Microsoft Dynamics CRM data utilization in regards to Einstein Analytics.  Let me know your feedback or any missing pieces you found in this scenario.





5 thoughts on “Microsoft Dynamics CRM & Salesforce Analytics Cloud

  1. Nice work!! Keep it up…

  2. Great blog. How did you use soccer ball icons in your forecasted ball value chart?


    1. Hi Mark, Just an image static asset on the canvas nothing else. Thank you, Varun

  3. I am getting issue “Discovery service URL isn’t in the correct format”

    I am trying the same way

Leave a Comment

Your email address will not be published. Required fields are marked *