Using Power BI to Provide Recommendations To Website Visitors

When we hear about business intelligence tools like Power BI, the first thing that comes to mind is reporting. Typically, we associate “business intelligence” with reports and analytics that help people make decisions, and generally speaking, these “people” are internal users at an organization (sales people for example), their managers and/or leaders who are responsible for the growth and direction of their respective teams, departments, business units or the entire organization. But why can’t this same intelligence be shared with their customers so they can make decisions for themselves too?

Power BI’s ability to expose reports and dashboards externally (on a website; in an email) can be extremely insightful for the audience that has access to it. Any organization, not for profit, agency or establishment that deals with/has data can make meaningful reports for its customers so they can make their own decisions.

Let’s look at an example.

Let’s say we are a “Yelp” like organization that provides recommendations to our customers on what to do when they go to a certain city. When someone visits a new place, let’s say lower Manhattan, they would want to know places for dining (different kinds of food), shopping, nail salons, night clubs, post offices, and visitor centers, among many other places. To find these recommendations, they like to come to our website, find out what’s around them in their new city, and then decide what they want to do, and where they want to go. What’s the easiest way to expose this information to our website, especially if we have all this data in our CRM?

With Power BI, you can create graphical dashboards/reports with such information really quickly, and embed them on your website. In this example below, we see four components – (1) a map that shows physical location of all sorts of establishments in lower Manhattan, (2) a couple of lists that lets the user choose a primary (eating, shopping, nightlife) and secondary (Indian, Italian, fast food; chocolates, cigars, cars; club, bar) category, (3) a third list that shows the actual names of location, and (4) the last list that shows the address of selected location.

(Note: This is fully functional embedded Power BI report – play with it!)

 

At first glance, as a visitor coming to the website, I have a few first impressions:

1. Looking at the map, I know I have several options in the lower Manhattan area. The legend also really quickly tells me what kind of options are available.
2. The four lists tell me that I have the ability to really drill down/ narrow down my choices. I like that I have the options and sub-options (dining->type of food, for example).
3. Totals: I know that I have 764 options to choose from. (As I drill down, I also notice that these totals change to reflect the available options for a given primary or secondary category)

There are a few options I have here as I start interacting here.

1. I can either zoom in and out on the map, and start clicking specific locations. The lists on the left update with information on what exactly that location is. Just bringing my mouse on a location pops up for more information about it.


(Note: Interacting with this map on an iPad or iPhone does not bring up the popup)

2. Or, I can start drilling down on the lists to the right. I will start with the Primary category, then choose secondary, and then find a location I want to go to. Doing so will also tell me the exact location on the map, and also the address of it on the last list.


3. I don’t always have to start with the Primary category. I can start wherever I want, and still find the results I am looking for. For example, I can start with the Secondary category, and look for ice cream options available in the area. In our example, there is only one, and by looking at the results, I know exactly where it is.


Essentially, what we are doing here is providing the information that we house to our visitors, and enabling them to
(1) filter through a plethora of options
(2) self-serve,
(3) make their own decisions,
(4) post a photo on Instagram of the food they ate with the hashtag #bliss

We didn’t do any fancy design work, nor did we write any sort of script to create this report. All we really did was create this report using drag and drop features, and publish it to Powerbi.com from where we got the embed code that goes on our website.

 

Note: Speaking of fancy – you be the judge of the aesthetics of the report here. I like the way I have designed this report (:D) but the Power BI “designer” definitely gives a lot of options to work on the aesthetics of the report.

Conclusion

“Business intelligence” doesn’t always have to be about and for internal users. Using Power BI, we can churn out data in a meaningful manner that can be used by our customers for their specific needs. Also, these reports can be created effortlessly, without the need of a developer or a traditional report builder. The tool is extremely flexible and user friendly, and empowers business users by giving them the ability to server their customers with utmost ease and finesse!

Slight twist(!): Once the report/dashboard is ready, it can definitely be used by internal users too for their own purposes. Remember, dashboards in Power BI can be shown in Dynamics 365 with literally just a few clicks, so, internal users could just be in Dynamics 365 and access this information without having to switch to Power BI. The same report could be accessed in the mobile app in which users can annotate, and share their thoughts with others. And to take things things to a totally ridiculous level, you can even access certain type of information from these dashboards on your Apple Watch (GASP!!)! (And you thought your Apple Watch was good for just counting steps? :))

Data Source: Data.gov

Visualize Daily Data In A Calendar In Power BI & Dynamics 365

If you are a long time user of CRM (for Dynamics 365), you’ve probably noticed that there are lots of new ways now of displaying and comprehending information. With Power BI’s out of the box integration with CRM, it is so easy to bring in additional visualizations to get more perspectives and insights. Gone are the days of dashboards that consisted only of static pie and bar charts. Not that anything’s wrong with looking at traditional pie and bar charts! In fact, in many cases, simple visualizations are much more effective than flashy “cool” controls, but there are times when information presented in a different format may trigger newer ways of processing information, and in turn, help us with better decision making.

Beyondsoft Calendar Visualization

One of the controls that was recently introduced in the custom visual store is Beyondsoft’s Calendar visualization. This is one of the simplest yet extremely useful controls that can visually provide important information on how busy (or not) your days are. From your dataset, it looks at one date field (date a sale was made, for example), one measure field (revenue, for example), and a bunch of tooltip fields. What’s unique about this visualization is that it takes into account the highest and lowest values for a given month, and shades the background color from light to dark. The higher the value for a given day is, the darker the calendar day is.

Click to enlarge.

 

You see what I mean? In one quick glance, you can tell that the 2nd, 9th, 11th, and 19th, were super busy. In fact, 19th was the busiest. Also, the first half of the month was the busier than the second half.

Here’s another view:

Click to enlarge.

 

The gray in this month’s view indicates no numbers. Another way of seeing that the beginning of the month, we had no business (GASP!), but then it picked up on the 21st, and got really busy by the end of the month.

How Do You Create It?

First, you add the Beyondsoft Calendar visualization from here.

Once you have it, drop the visualization on the canvas, and add your date and measure fields.

Next, set the colors for the “spectrum” under the Format tab.

 

Feel free to change other formatting values, but essentially, your calendar visualization is ready!

Who Is It For?

  • Well, it’s for everyone. Here are some examples I can think of.
  • Businesses that track daily sales. A bike shop, coffee shop, restaurant, etc.
  • Businesses that process orders per day. Print shops, for example.
  • Not for profits that work with clients and are required to work on cases on a daily basis.
  • A disability resource center that provides accommodations and prepares Braille, captions or other services to its disabled clients.
  • Organizations that work with volunteers, and need to track daily volunteers hours.
    • Speaking of volunteers, seeing how busy certain days of the month get, this calendar can provide insights into when an organization should get volunteers to take care of busy/seasonal periods.

The Best Part

You use this visualization in a Power BI dashboard which can be displayed in CRM for Dynamics 365! You don’t have to go to Power BI to look at this information. Here’s my Power BI dashboard displayed in Dynamics 365.

Click to enlarge.

Quick Additional Note

This visualization shows only one month’s (the first month in your dataset) data. In order to go through other months, create a slicer and use it with this calendar.

Click to enlarge.

 

Does this visualization excite you? How do you plan to use it? Let me know in the comments below!

Have other questions about Dynamics 365? Drop me a line!

Create Records In CRM For Dynamics 365 By Pressing A Physical Button! (Using Flic & Microsoft Flow)

What if your customers could just literally press a button to solve their problems? Picture the following scenarios:

– Your clients, who use your products or services, are having trouble with them. Something’s not right! They press a button and immediately get a call from your support staff.

– You run a coffee shop or a restaurant. You notice that you are low on supplies (Coffee beans? Beverages? Ketchup?). You press a button which sends an email to your supplier telling them to restock supplies.

– You run a roofing company. Your staff is up on one of the roofs fixing things. Once they are done, they press a button that creates a record in CRM, notifying office staff that the job has been completed.

That would be pretty awesome, right? (no? aww okay :/)

In case you didn’t know, Microsoft Flow can now be triggered by “Flic” – a physical button that connects to various services like Uber (to order a cab), Sonos (to control music), and Philips Hue (to control smart bulbs) to name just a few.

With Flic now working with Microsoft Flow, we can use this combination to create records in CRM for Dynamics 365, and perform various actions. For example, in the video below, I show how a customer, whenever they have an issue with our product or service, can just press Flic once, which will create a case record in our CRM.

Benefits

So what are some benefits of automation tools like Microsoft Flow, especially when they are combined with smart buttons like Flic?
  1. It makes initiating a process or action much easier and convenient.
  2. It encourages people to follow the process because everything is already automated.
  3. It brings convenience to your employees with disabilities because just pressing a button performs various tasks for them.

The Flow

This is what my Microsoft Flow looks like. Easy peasy!

Explore:

Flic

Microsoft Flow

Microsoft Dynamics 365

Embed Power BI Dashboards in CRM For Dynamics 365 With Just One Click

So, you have some really amazing and insightful dashboards in Power BI (like the one below) based on your data you have in CRM for Dynamics 365, and you use them regularly to see what’s going on with your business, institution, facility or wherever that you work.

image shows a dashboard with three charts in power bi.

 

Ideally, you would want to have these dashboards in CRM so that you have access to all these valuable insights in just one place. But how would you go about doing it?

Enabling and embedding Power BI dashboards in CRM is literally just a click away.

Go to System Settings (under Settings->Administration) and open the Reporting tab. Under that tab, set “Allow Power BI visualization embedding” to Yes.

image shows System Settings window  in CRM for Dynamics 365. The image shows that clicking the "Reporting" tab and setting the option "Allow Power BI visualization embedding"  to Yes enables power bi dashboards in crm.

 

Uhhhh that’s pretty much it.

Now, if you go to your Dashboards and click the chevron next to “New” , you will see a new option for “Power BI Dashboard”.

in the dashboards area, a new option "Power BI dashboard " is displayed when the chevron next to the "New" button is clicked.

Note: Make sure to click the chevron to get this option. Clicking the New button  defaults to creating the traditional CRM dashboard.

When you select that option, you will see a dropdown that will show you all of your dashboards in Power BI. Choose the one you want displayed in CRM. Click Save.

Note: Make sure to check the “Enable for Mobile” checkbox if you want to access this dashboard in your Dynamics 365 mobile app.

a new dialog shows all the dashboards in power bi in a dropdown. The user chooses which one they want embedded in this dashboard.

 

That Power BI dashboard is embedded in CRM now!

Power BI dashboard shown embedded in a CRM dashboard.

Questions? Let me know!

Product Recommendations in CRM For Dynamics 365 Using Machine Learning

If you are a company that sells various products and/or services, and you use CRM for Dynamics 365 for your selling operations, it’s highly likely that you use the Product Catalog, and also link up your products for cross selling opportunities. If you haven’t linked them yet, there’s good news – machine learning can do it for you! Based on patterns that it finds in historical sales transactions, CRM, with the help of the Recommendations API, can now provide product recommendations to cross sell for your sales people as they pursue opportunities.

Have you manually linked up your products for cross selling in CRM already?  There’s good news. You don’t have to keep doing it anymore! Why? See above.

But how does this all work?

Here’s the basic premise:

  • You have historic transactions that consist of products that have been sold by your sales team. Many of these products are cross sold, which means that if one product was being considered, at least another product was recommended in that sales opportunity as well.
  • There may be ways for you to look at historic data and see which products are more successful than others, but there is no easy way to see which products are recommended as cross sell products during a sales opportunity when a certain product is being considered.
  • That’s where machine learning comes in. The Recommendations  API looks at all of your historic data, and finds patterns of recommended/cross sold products. Then it rates those products.
  • Based on those ratings, you create your recommendation model. For example, when I am selling product A, recommend other products to cross sell. (Duh!) However, these recommended products  must have a rating greater than, let’s say 0.5 (ratings are between 0 and 1).  A higher rating means the recommended product has been in many historic “won” transactions.

Product Recommendations

Note: You will have to connect Recommendations API to CRM before proceeding. Read this article first.

When you go in to Product Recommendations in CRM for Dynamics 365 (Settings->Product Catalog), there are certain things you’ll see – In the Details area, perhaps the most important field is the “Minimum Recommendations Rating”. This is the rating that is generated by the Recommendations API when it looks at our historic data. Here, we are saying that we want only those products to be recommended for cross selling that have a score of at least 0.50. Anything below it will not be recommended.

 

Digression: This is what the ratings look like in case you are wondering:

Let’s come back to the Recommendation Model.

 

Basket Data Entities

These are the entities for which historic data is present. By default, three are included – Opportunity,  Order, Quote. You can add your own as well.  Here, you can also tell the Recommendations API to look at very specific set of historic transactions. For example, we can set a filter that makes the  API look at only Won Opportunities in the last 12 months. (double click the Opportunity line item in the subgrid below)

Recommendation Entities

These are the entities for which recommendations are available. They also default to Opportunity, Order, Quote.

 

As you get more historic data, you can build various versions of your recommendation model. To do so, set your Minimum Recommendations Rating (see above) and click Build Model Version.  This is where the algorithms start learning from your historic data, find cross sell patterns, and rate products.

Note: The build will take a while. I only had sample data and it took 6 minutes to complete the version build.

You can test your model also by clicking “Test Recommendations”. Choose a product, and a version. Click “Show Results”. This will show you a sample of what products will be recommended if a certain product is being considered in an opportunity.

If you see recommended products with scores attached, it means that you have an up and running recommendation model!

Note: I want to quickly talk about “Precision”. Precision represents the frequency with which sales people pick suggested products.  Higher the precision, the better. Try multiple models over a course of time and see how the precision changes. I have 0 because I have very minimal data in my demo org.

Now, let’s see the recommendation model in action!

First, though, let’s look at some older opportunities we have won so that we can see what the product recommendations will be based on. In the past, whenever we’ve sold the Southridge Laptop 19W Xq980 laptop, we have also cross sold a few more products with it.

Historic opportunity 1:

Historic opportunity 2:

Now, let’s see what our recommendation model recommends to us when we create a new opportunity for the same laptop. After adding the product, we click Suggestions.

And this is what we get. (We want recommend products with a score > 0.50)

From these suggestions, you can pick whatever you want and update your opportunity with more products!

Advantages

So what are we really doing here besides making suggestions easier for our sales team? After all, we could set these recommendations manually anyway in CRM, right?

First of all, you are utilizing your historic transactions to determine what really sells. Not only that, you are also scoring the effectiveness of each product when it comes to cross-selling. Just that infuses good confidence in your salesperson to include more products in their opportunities and ultimately bring in more revenue.

Second, it automates the whole process, which means that your analyst or customizer, who painstakingly set up all those product relationships (and probably ended up with arthritis from all those mouse clicks) doesn’t have to keep doing it manually anymore. Instead, with all the time saved now, they can probably learn a new skill to help you with your business operations.

Third, piggybacking on the first advantage listed above – if there are products that have lower rating, you can probably think of retiring them or getting them from a different manufacturer.

So, give Product Recommendations a shot, and see how well it works for you! Remember, this is still a preview so don’t screw around with it in your production environment! 😉

Enabling Machine Learning in CRM For Dynamics 365

The machines are taking over!

We hear a lot about how machine learning is being used in many applications, and CRM for Dynamics 365 is no exception to that sentiment. There are several features in CRM for Dynamics 365 that utilize Microsoft Cognitive Services – a very powerful set of tools/APIs that use the power of machine learning. For Example:

– Keyword matching, similar cases, topic analysis, and knowledge article suggestions, require a Cognitive Services Text Analytics connection.

– Automatic product recommendations while creating opportunities and adding opportunity products requires a Cognitive Services Recommendations connection.

So, does that mean in order to use automatic product recommendations, keyword matching, automatic knowledge article suggestions, etc., we need to integrate Microsoft Cognitive Services with CRM for Dynamics 365?

Correct.

Before you do that though, you would want to enable the “Product Recommendation” and “Text Analytics” previews in your settings first. (Yes, they are still previews)

Go to Settings->Administration->System Settings, and click the (last) Preview tab.

Under Preview, set “Cross-sell Product Recommendations Preview” and “Text Analytics Preview for Case Topics analysis, Suggest Similar Cases and Suggest Knowledge Articles” to Yes.

 

Next, go to http://portal.azure.com and login with a Microsoft Id.

Once in, we will be looking for two specific Cognitive Services APIs – Recommendations and Text Analytics. Let’s start with Recommendations API.

Note: Calls to these APIs are not free. Having said that, Microsoft gives you 5,000/10,000 etc. calls per month for free depending on what API you choose. If you are likely to exceed these calls, Microsoft will prompt you to upgrade to a paid account.

Recommendations API

In the Azure portal, click the “+” button on the top left corner-> select “Intelligence + analytics” in the next pop up menu, and then Cognitive Services APIs (preview).

On the next “Create” screen, give the service a name, choose Subscription (start with Free), choose API type “Recommendations API (preview)”, Pricing tier f0, and create a resource group. Click Create.

On the next screen, you will see a bunch of tabs to the left. Under Overview, make note of Endpoint, then choose Keys. When you do, you will see a couple of keys to the right. You will use one of these keys to connect this Recommendations service to CRM for Dynamics 365.

Now head to CRM for Dynamics 365. Go to Settings-> Administration->Azure Machine Learning Recommendation Service Configuration.

Fill in all the self explanatory fields. In the “Azure Service URL” field, enter the Endpoint that you noted above. In “Azure Account Key”, enter one of the two keys from the Keys section above.

Save and Test Connection. Once successful, click Activate.

That’s it. You are now ready to start building your Product Recommendations in your Product Catalog. (More on that later)

Note: It is possible that your connection to the Recommendations service may not be successful at the first go. If one key doesn’t work, try the other. You may even want to regenerate the keys if you keep getting connection failure errors.

Text Analytics API

Well, you know the drill. Do what you did above in the Azure portal. This time, when you create a new  service, you will choose Text Analytics API.

Back in CRM, go to Settings ->Administration->Azure Machine Learning Text Analytics Configuration, and do what you did above with the Endnote and Key.

Now you are ready to create “Advanced Similarity Rules”. (More on this later)

That’s it!

Thanks for making it this far! Hopefully this article gives you an idea of how to get started with the basic building blocks of enabling machine learning for CRM for Dynamics 365.

Question or comments? Let me know.