Tip #892: Playing sounds in CRM

This post comes from guest tipster Jerry Martin:

A little fun…..We had a client ask a question about adding sound to events on CRM. While I am against having sound in an application as a rule, it intrigued me to see if it was even possible.


What I found was that you can create or download an MP3 of your choice and then save it on your hard drive with an PNG extension.

You then create a PNG web resource with this file

In CRM, you create JavaScript to load this resource as an audio object and call the play method.

In this example I have a horn honk that plays when an entity is opened (totally useless but it’s just an example)

function go()
{
var audio = new Audio(‘https://[instance].crm.dynamics.com//WebResources/hsl_horn‘);
audio.play();
}

You could have it play when a deal is closed or some other event.

Tip #891: Video Guide to Live Assist Configuration Options

In this video, we look at some of the different configuration options that are available through the admin portal for Café X.

YouTube player

Give us your feedback, all of it: good, bad, and ugly, I’m sure we can take it. Suggest new topics either in comments or by sending your ideas to jar@crmtipoftheday.com.

Don’t forget to subscribe to http://youtube.com/crmtipoftheday!

Tip #890: Scratch the Surface – Adaptive Cards

Data visualizations have received their fair share of discussions at Microsoft Build 2017. One particular project did catch my attention – Adaptive Cards.

What are Adaptive Cards

Adaptive Cards are an open card exchange format enabling developers to exchange UI content in a common and consistent way.

Why is it important to us?

In Dynamics 365 / CRM world data exchange has always been a challenge. At best we would export data into Excel or, if recipient is an authorized Dynamics 365 user, we would send them a long URL to open the same record using the same UI.

There is no adaptibility as far as the target environment is concerned, the approaches simply rely on Dynamics 365 to handle different data representations.

Adaptive Cards allow interactive content rendering within a host application, automatically adapting to the look and feel of the host.

Users win because everything feels familiar. Host apps win because they control the user experience. And Card Authors win because their content gets broader reach without any additional work.

10 minutes no code demo

Adaptive Cards

As you can see, ability to present Dynamics 365 information in a target environment looks very natural. However, there is no reason why Dynamics 365 itself cannot be a host for Adaptive Cards, making it easier to present external information inside Dynamics 365, adapting it to our environment.

Scratch the Surface, scratch the Surface…

Tip #889: Become Adobe Marketing Cloud Solutions expert

We’ve known for more than 6 months that Microsoft has selected Adobe as its preferred marketing service for Dynamics 365 Enterprise. While solution details are still sketchy, the good news is that you can already start your journey to become an expert in Adobe Marketing Cloud solutions, long before the integration is released.

If you are a Microsoft Dynamics Partner, you are invited to join Adobe Solution Partner Program (SPP). Read more about this announcement on Dynamics Learning Portal, then go ahead and register.

New Adobe SPP Members Can Immediately Access Adobe Marketing Cloud Solution Training

Membership in Adobe SPP is FREE and registration takes less than five minutes, so why are you still here?

Tip #888: Scratch the Surface – globalize your data

Unless you’ve been living and working under a rock, you’ve probably heard of the Connected Field Services. One of the important pieces of the infrastructure is something bundled under the generic term “databases”, referring to both Azure SQL and DocumentDB. Think of a storage for billions and trillions data points and you get the idea of the scale required. One of the interesting announcements at Microsoft Build 2017 was that DocumentDB is no more, welcome to Cosmo DB.

What is it? In short, it’s globally distributed, multi-model database service. It transparently scales and replicates your data across any number of Azure regions, wherever your users are. Some of the key points:

  • Turnkey global distribution. Nothing to configure, Azure will replicate your data across the globe.
  • Multi-model + multi-API. One service, multiple APIs. Use SQL, JavaScript, Gremlin, MongoDB, Azure Table Storage, in other words, use whatever.
  • Limitless elastic scale around the globe. No explanation needed. Pay only for what you use.
  • Multiple, well-defined consistency choices. That’s an interesting one. For years we’ve been using two choices for consistency: transactional (when I finish write, I want a guarantee that data is there and replicated) and eventual (as long as data is there eventually, I’m fine). Cosmo DB gives us that plus 3 flavors in between for fine-tuned replication on a planet scale.
  • Guaranteed low latency at 99th percentile. Think of guaranteed <10ms reads.
  • Industry-leading, enterprise-grade SLAs. 99.99% availability means that your data is guaranteed to be available around the clock with possible downtime of less than 9 seconds per day.

“That’s cool but Dynamics 365 has its roots in SQL Server, it’s inherently relational, and I don’t see how Cosmo DB can help.”

Fair enough, and I don’t see Dynamics 365 suddenly moving away from SQL either. But we know that Common Data Services (CDS) is going to play critical role in Dynamics 365 and what do we know about the underlying storage? That’s right, not much, because the keyword in CDS acronym is “Services”. I wouldn’t be surprised if CDS at some point ends up using Cosmo DB as a backend. If CDS were to use Cosmo DB, the challenge data replication for global organizations is all but solved. Welcome to global Dynamics 365.

Tip #887: Gamification and multiple organizations

One of the first questions I get when talking about gamification is “can I use it in multiple organizations?” Say you have a training sandbox and a Production Dynamics 365 Online org, can you install it in the training environment?

The answer is no. As explained near the top of the official documentation, Gamification currently can only be used in one of your Dynamics 365 tenants. This means that you can have it configured against training while you are training, but you will need to repoint it to production and deactivate it in training when you are ready to go live.

So how do you deactivate? There is an activate button, but no deactivate button?

To deactivate, run the activation in the second organization tenant. This should give you the choice to delete the existing gamification environment and activate it with the new environment. If you have existing active games, you will need to remove them first.

Also, if you are concerned at the impact to your configuration if you have sitemap links in production that are not in your sandboxes, rest assured. You can install the gamification solution in multiple orgs, assign the KPI Manager security role, and also create KPIs in multiple environments. You just can’t activate and create the gamification portal in multiple separate tenants.

Tip #886: Scratch the Surface – new age workflow

ScratchFor years we’ve been whining about the workflow editor and rightly so. Can’t indent, can’t reorder, can’t copy, can’t paste. So many good man-hours lost in the battle against corrupted workflows… Every release we’ve been hoping for something better but to no avail.

I suspect that the upcoming spring-make-it-late-summer release may too leave the workflow editor as is. Why? Because there is a white knight on the horizon and his name is Flow. “But”, you say, “Flow does not have the execution context!”. And you’d be right, until Q3CY17 at least, when in-context Flows are coming to SharePoint and Dynamics – Microsoft Build says so (with the disclaimer that it’s subject to change but since when we pay attention to disclaimers, right?)
Incontext flows are coming
Details are sketchy but what is clear that we should be able to trigger Flows right from inside the Dynamics apps and pass the current context, i.e. record(s), into it.

Have you seen the Flow editor? It is to the workflow editor what Visual Studio is to Notepad. And if that was not enough, Flows have their roots in Logic Apps where developers can rule the day.

The future is bright and its name is Flow. If you haven’t started yet, it may be already too late.

Tip #885: Don’t get locked up when publishing customizations

The browsers war is neverending. Today, A browser is better than B but has problems doing C, that can be done using D browser, but it deprecated feature E which we can get around in browser F but, unfortunately, it has not been approved by the network administrators as it does not support our home grown certificates.

Andre “Lucky 88” Margono tells his side of the story:

Chrome and Edge are my day-to-day browser these days. Unconsciously, I used Firefox to work on Dynamics 365 customizations. One thing that I noticed is that for Chrome and Edge, when I’m doing publish all customizations, all other Dynamics 365 screens are rendered unusable (frozen). Meanwhile, on Firefox, I still can do a thing or two with the other Dynamics 365 screen while the publish all customizations is running.

Tipp Jaar’s $0.02 + VAT

Incidentally, Firefox is Tipp’s Dynamics 365 browser of choice. When it comes to customizations activities, Firefox arguably has the fewest bugs and incompatibilities amongst the browsers.

Tip #884: Scratch the Surface – become a mad data scientist

A fortnight ago I’ve had a privilege, a luxury, and a duty (trying to pass for a real developer) to attend CRMUG Focus and Microsoft Build 2017, all within a space of 5 days.

The best quote of the entire week came from one of the presenters who had about 4 or 5 Surface devices utilized during the demo:

We only scratched the Surface today

Turns out, that reflected quite well my feeling about the entire week. Almost two weeks later, and I’m still digesting the content; but over the next few days I hope to distill what I’ve heard, seen, and felt into small and easy to consume bites.

Before we start, let’s talk about why Build is so important, for example, what’s the difference between Build and Ignite, both being developer-friendly conferences? David “Xrm.Tools” Yack answered it best:

Ignite is about what’s now, Build is about what’s coming

With that in mind, a lot of things I’m going to talk and speculate about will be about tomorrow, and how technologies are going to change Dynamics 365 as we know it.

First of all, regardless of what’s coming, we all will need new skills, new tools, and new approaches to our tasks. No longer 1:N data modelling is going to save our butts when building a solution for our customer.

At CRMUG Focus, Scott “All your BI are belong to us” Sewell vividly demonstrated that my chances of floating and staying alive are much fairer as a lady with a feather-duster than a dude with a piano. But that piqued my interest. What if I was a bloke wielding that mop? Well, turns out, for my age group chances are the same, whether I’m holding a Windex or a trombone – absolute zilch.

Looks like I’ve been fooled into the wrong occupation under some false pretenses and a classic gaming of correlation vs causation. But no more, Scott, no more! I decided that, if I want to learn to interpert the data, make sense out of petabytes collected by IoT thingabobs from all over the place, and not to be ridiculed by Scott ever again, then I better start learning.

And what would be a better place to learn some data magic than Microsoft Professional Program for Data Science. Come July, August, or September – you know where to find and hopefully join me. What do I want to get out of it besides getting an upper hand in the data battles? Being able one day to create something as beautiful as A Day in the Life of Americans. How about you?

Tip #883: Exporting filtered lists to Excel from subgrids

In CRM 2013 – Dynamics 365, subgrids do not have the “Export to Excel” button, but you can click the “pop out” button on the subgrid to open the full associated view, from where you can export to Excel. However, what if your subgrid is filtered by a different view? Let’s say you have 20 contacts associated with your account, but in your subgrid you have a view of contacts with birthdays in July, which filters the 20 associated contacts down to 2. When you click the pop-out button on the subgrid with 2 contacts, you will see the full associated view with 20 contacts.

The reason it does this is because the pop-out button is actually a link to the navigation area link for that entity, and the navigation area link is always the full associated view.

So what is a Dynamics 365 user to do if she wants to Export the filtered contents of the subgrid to Excel, not the full associated view?

The answer? Excel templates.

  1. Create an Excel template. Name it consistently with the name of the subgrid.
  2. Export to Excel the full associated view.
  3. Add the appropriate filter to match the subgrid filter.
  4. Upload your template.
  5. Teach users that when they need to export the subgrid, click the pop out button, then export the Excel template with the name of the subgrid.