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.

Tweet about this on TwitterShare on FacebookShare on Google+

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.

Tweet about this on TwitterShare on FacebookShare on Google+

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.

Tweet about this on TwitterShare on FacebookShare on Google+

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.

Tweet about this on TwitterShare on FacebookShare on Google+

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?

Tweet about this on TwitterShare on FacebookShare on Google+

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.
Tweet about this on TwitterShare on FacebookShare on Google+

Tip #882: Video Guide to Chat & Cobrowsing for Dynamics 365

ChatIn the next few videos we look at the new Omni-Channel solution for Dynamics 365, Live Assist powered by Café X. In this first video we show you how to setup the solution, and what the agent experience looks like in Dynamics 365. We will show you how to interact with customers, use many of the different features, and how to Co Browse with your customers.

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!

Tweet about this on TwitterShare on FacebookShare on Google+

Tip #881: Can I track a contact using the Dynamics 365 Outlook App?

User of the Dynamics 365 App for Outlook asks: Is it possible to track a contact from the app? I see the Dynamics 365 button on emails and appointments, but not contacts. How do I track a contact?

If you read the user guide, there is an add-in deployed when you install the Outlook app that allows contacts to be tracked; however, some users report getting an error when trying to launch this add-in. You will get an error if your version of Outlook is not Outlook 2016 16.0.6741.1000 or later.

If that is your experience, or you want a faster way to track contacts, all you have to do is compose an email with the contact(s) as a recipient. In Outlook, click the Dynamics 365 icon to launch the Dynamics app.

For each contact that doesn’t exist in Dynamics, you will have the option to add the contact to Dynamics 365. Select the contact and click the + button.

Enter the contact information and click “save” on the bottom of the form.

So instead of entering a contact into Outlook and then tracking the contacts, another option is to compose an email with the email addresses of the contacts, click the Dynamics 365 icon, then add the contacts to Dynamics 365. The contacts will then sync to your Exchange contacts. You do not have to send the email, as long as you create and save the contact records.


Tweet about this on TwitterShare on FacebookShare on Google+

Tip #880: Exceptions to the Flow vs. Workflow rule

In tip 876 Jerry “I ski on water because there are no hills in Kansas” Weinstock gave us a simple rule about when to use CRM workflow and when to use Microsoft Flow.

Assume for a moment that Microsoft Flow didn’t exist. Can you do what you need to do in CRM with the built-in workflow engine? If so, do it with Workflow. Otherwise look to Microsoft Flow.

In general, I agree that it’s a good rule of thumb. I have several rules of thumb that I live by:

  • Don’t pet dogs you don’t know
  • Don’t spit into the wind
  • Don’t cut timber on a windy day

But like most rules of thumb, this one is not the end of the debate. I would add “… unless it can be done better or easier with Microsoft Flow” to the rule.

Let’s look at two examples: approvals and email notifications.


Can you do approvals with workflows? Absolutely. For example, you can have a Workflow that email somebody asking them to approve something, but you have to do a lot of configuration to enable the approval mechanism and securing the approval field so only the approver can check the box. Or you can just use the flow approval framework and even have people who don’t have Dynamics licenses approve stuff.

Email notifications

In my recent session on business process at CRMUG Focus,  I said clearly that workflow should be the primary agent for email notifications. But there are certain types of email notifications that flow is better at. Like having a notification sent from an email address not associated with a dynamics user, having notifications come from non-office sources like Gmail, real time notifications for people that don’t have server-side synchronization, or if you can use it to create a better looking notification then the standard crm email editor that resembles the design of a 1980’s generic cereal box.

Keep it simple

So the rule of thumb is good, as far as rules of thumb go. My recommendation is understand each requirement before you decide what tools to use, then decide which tool will best meet your requirements and provide the greatest benefit from a functionality, performance, and simplicity standpoint.

Tweet about this on TwitterShare on FacebookShare on Google+

Tip #879: Merging duplicate Outlook contacts

If you use Dynamics 365 contact synchronization (either server-side or client-side), you will find yourself in situations where you have duplicate contacts in Outlook. This can happen when you reconfigure the Outlook client, other users create duplicates, or many other reasons.

Contact duplication is also an issue when users first configure synchronization of contacts, and CRM downloads their synchronized contacts. If contacts downloaded in the initial synchronization are the same as contacts already existing in the user’s Exchange/Outlook contacts, a new contact is created, rather than updating the existing which duplicates existing contacts that I have in Outlook. This is by design so the synchronized contact doesn’t overwrite data you have in your personal contacts. But you now have two copies of the same contact in your inbox, the official synchronized version, and the personal copy that has years of notes that you don’t want to lose.

This can be frustrating and make your Exchange contacts more cumbersome to use. Fortunately there is a not-so-painful process to merge these contacts so you can keep your data and merge it with the master contact.

  1. In Outlook, click People and change the view to the phone view (if not already selected).

  1. Click the first column of the view to sort by the contact icon. This will separate the synchronized (two man icon) with the non synchronized (vcard) icon.

3.  Create a new folder in Outlook contacts. I call mine Backup Merge.

4.  Select all contacts with the vcard icon and drag to the backup merge folder.

5.  Move the contacts from the backup merge folder back to the main contacts folder.

6.  Outlook’s duplicate detection will prompt you for each duplicated contact that an existing version of that contact already exists, giving you the option to merge the synchronized contact with your personal copy.

7. The updated contact will then synchronize back to CRM.

Warnings and risks

Keep in mind that this will overwrite the data in CRM with your personal contact data. Of course, this introduces risks to your data quality. If your master contact data is pristine, you may want to take a more manual approach. However, in some situations, the contact data in your user;s Outlook may be more up to date than the stale old copy that you have in the master database.

If you don’t see the icon change

So if you merge the contacts and you wait a while and you don’t see the icon change back to the synced icon, one common reason is duplicate detection. If you have duplicate detection rules published and more than one copy of the contact exist in CRM, duplicate detection will prevent the contact update from synchronizing back to CRM.

Go to the users mailbox record (located in Settings > Email Configuration > Mailboxes). Open the user’s mailbox and go to the alerts tab. If you have a contact where synchronization is being blocked due to a duplicate scenario in CRM, you will see an alert letting you know that duplicate detection has prevented the update and giving you the option to approve the update. Click yes to update the contact record in CRM. After that you should see the icon change back to the two-headed synchronized version.

Tweet about this on TwitterShare on FacebookShare on Google+