Tip #1172: Make your CDS environments visible with a touch of Flow

As the Dynamics 365 Customer Engagement platform converges with PowerApps and CDS, one of the benefits is that also the concepts of Dynamics 365 instances and PowerApps environments will become one. What this means is that all of your existing Dynamics 365 instances will show up in the PowerApps maker and admin portals as an available target for you to build canvas apps into.

Except when they don’t show up. Let’s assume that you take a copy of your Dynamics 365 production instance and push that database into a new sandbox instance. Everything works fine when you’re accessing the sandbox via the Dynamics 365 Admin Center, via the mode-driven app UI, all the usual places. But in the environments selector on the PowerApps side, this new CDS database just doesn’t appear at all:


What am I doing wrong here?

The answer is you’re probably doing everything the way you should, but there can be caching issues in the cloud service that will not bring up all the Dynamics 365 instances visible in the environments list automatically. You could choose to just wait around for a few hours, days, weeks, but that might not resolve the issue.

A much quicker method is to give the Power Platform a lil’ kick on the side by starting to create new resources into it. Yes, you won’t be able to switch into that environment directly via the PowerApps UI, but you can leverage the shortcut available inside Dynamics 365 sitemap to go and build a Flow into this environment. Go to Settings – Process Center – Microsoft Flows, then create a new Flow that will start from the CDS button, a.k.a. “when a record is selected”. It can be any record, and you don’t even need to run that Flow at all. The mere existence of these Power Components within the CDS database that started its life as a Dynamics 365 sandbox instance will wake up all the PowerApps UI’s to reflect this new environment. Now you can start building as many canvas apps there as your heart desires.

This trick came from the CDS Master David “Xrm.Tools” Yack, who literally wrote the book on how and why the PowerApps Platform works the way it does. OK, so it’s not an actual book but rather a whitepaper called “Administering a PowerApps Enterprise Deployment” that you can download from https://aka.ms/powerappsadminwhitepaper . There’s a lot more to PowerApps environments that every Dynamics 365 expert needs to know in order to stay on top of their game, so you better pick up that PDF and get familiar with it before you actually proceed into creating the canvas apps. At least if you ever want to deploy them somewhere that resembles an enterprise.

Jukka “Kalsarikännit” Niiranen

(Facebook and Twitter cover photo by Damon Lam on Unsplash)

Tip #1171: You can now configure the Dynamics 365 v9 App for Outlook

In Dynamics 365 version 9, the App for Outlook is an app module. However, when initially released, this app module was not configurable.

Microsoft has introduced the ability to filter the entities included in the app module — this means that if you don’t want users to see certain entities in the set regarding dialog, you can remove these entities from the App for Outlook app module. Additional configuration scenarios will be added in the October release.

Official documentation: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/outlook-app/deploy-dynamics-365-app-for-outlook#filter-entities-and-views-that-appear-in-dynamics-365-app-for-outlook

(Facebook and Twitter cover photo by Matt Artz on Unsplash)

Tip #1170: Turn on soft delete in Azure Blob

If you extract your Dynamics 365 attachments to Azure Blob, you need to plan for disaster recovery. What if something happens and your attachments are accidentally deleted?

Azure Blob now supports Soft Delete. When enabled, deleted data can be retained and restored for up to 365 days.This feature is off by default.

Without soft delete, deleted data cannot be recovered, even by Microsoft support.

Official documentation: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-soft-delete

(Facebook and Twitter cover photo by Nico Frey on Unsplash)

Tip #1169: Have a toast with variable timing

Just found something in Unified Interface under the cogwheel menu that I’ve never seen (or noticed) before and couldn’t find any references in the documentation:


Did I miss the memo? Toast? Where?

Shilpa Sinha, Principal PM at Microsoft explains:

This was added for Accessibility reasons. In accessibility compliance, there is a requirement called “timing adjustable” where if a timeout is happening and user needs to take some action, there should be a mechanism to increase the timeout 10 times so that users with cognitive disabilities have enough time to  take action. What are the Toast Notifications? This is the user  notification that pops up when an action is performed (Like creating a record from the quick create).


Tîpp Jäår $0.02

This looks like a good addition to the functionality, especially if you’re working with a client who cares about accessibility (as they all should but rarely do). The only thing worth of noting, in the words of Crocodile Dundee:


(Facebook and Twitter cover photo by Brenda Godinez on Unsplash)

Tip #1168: Sitemap and Commanding changes on Unified Interface

Developing user experience is a complex iterative process and it usually takes few iterations to get things right. Unified Interface is no exception. Some things are brilliant and some, uhm, require further work. The good news is that changes are coming. The “bad” news that they are coming very, very soon so it’d be a good idea to make sure that your users are ready.


Shilpa Sinha, Principal PM at Microsoft, explains upcoming changes:

We are making some significant investments to improve user experiences on Unified Interface, in our first phase, we are addressing our most complained about issue in UX: Difficulty in navigation. This is an accelerated effort, and we are aiming to land these changes as part of our October momentum. These changes are going to affect our existing customers on Unified Interface as it is a visual and navigation enhancement.  This will not be an opt-in experience.

Details with screen shots are below and I want your help to educate our customers about this change. These changes address the worst of our users’ pain points as reported in our surveys as well as user research studies.





Sitemap changes

  • Site map will be expanded by default, with the option to collapse, to improve user recall and learning.
  • Simplified instant access: MRU (recent) and favorites (pinned) moved to top level, always visible. No more entity level MRU.
  • No more tabbed sitemap. Bottom flyout used to select areas. To reduce icon overload, colorized tiles replaced area icons.
  • New color scheme (black on gray) to improve navigation discovery.

Commanding changes

  • Dark text on light background to group commanding with the content area it effects
  • New colored icons and hover effect distinguish different commands and highlights interactive regions

Affected viewport width

These changes are aimed at improving user experience for desktop browser users at widths above 480px so single column layout, mail app and mobile are not affected.

Tîpp Jäår $0.02

The other good news is that we seems to be getting back some beloved and sorely missed elements from the olden days of CRM 4 – left-hand navigation and colorful icons. Open-mouthed smile

(Facebook and Twitter cover photo by Kelly Sikkema on Unsplash)

Tip #1167: Impersonation does not grant extra powers

I did write before about impersonating users. It’s a very straightforward “manoeuvre” and is commonly used when there is a service account (could be either non-interactive user or, better, application user) that needs to act as a specific user. There is even a built-in role Delegate which contains an absolute minimum set of privileges required to impersonate someone, including coveted prvActOnBehalfOfAnotherUser privilege.

I did manage to shoot myself in a foot though. I created an application user, granted it Delegate role and fired away the test code creating a contact. Kaboom:

System.ServiceModel.FaultException`1: 'Principal user (Id=31ba5b71-82ad-e711-a823-000d3aa32537, type=8 , accessMode=0, roleCount=3 ) is missing prvCreateContact privilege (Id=a8bff87f-0df0-41d4-babd-f093faf1e32c)'

The user id was referring to the user being impersonated and that user definitely had permissions to create a contact. What the?

What happened is that I completely forgot one of the fundamental security principles:

One shall not pretend to be someone else to elevate permissions beyond of what they already have

Of course, it’s a case of RTFM, and I quote:

The actual set of privileges … is the intersection of the privileges… user (A) is allowed to do something if and only if user (A) and the impersonated user (B) have the privilege necessary for the action

Oh, well, system administrator role it is then… Just kidding.

(Facebook and twitter cover photo by Javardh on Unsplash)


Tip #1166: Dynamic Help now included in Solutions errors

Troubleshooting solution errors has always been either somewhat a guessing game or painful tracking of the solution dependencies. I’m sure they are not fun to deal with for Microsoft support either.

Dana Martens, Supportability Program Manager at Microsoft, has some good news about Dynamic help. Yes, Dynamic not Dynamics. Read on.

The Solutions feature team recently introduced “dynamic help” capabilities to solution errors. This is now deployed globally to all version 9.x instances. If you are importing or deleting a solution and encounter an error, you should now see a help option. If we have a known solution to that specific error, the help option will direct you to the article we believe is most likely to help you solve that issue. Here are a couple examples of that experience:



Tîpp Jäår $0.02

It’s a new feature and there are still some gaps, e.g. if the error happens after import starts after initial validations, the help option is not included. But these gaps are being closed as we speak. And the good news is that the implementation is indeed dynamic, meaning that new error codes and the scenarios will be linked to the help without any further code deployment.

(Facebook and Twitter cover photo by Diana Feil on Unsplash)

Tip #1165: Consider Dynamics for More Than Just External Interactions

I just started a new job with PowerObjects. One thing you notice when you start a new job is how companies do things differently. In this case, it is how they manage their internal processes. Being exclusively focused on Dynamics, pretty much every employee is familiar with the product so it makes sense to use it as much as possible; less training, more familiarity.

When I asked how I request software for my new laptop, the answer was to raise a Service Request in Dynamics. Sure enough, I created the record in the right spot and the Dynamics gears kicked in to get someone in touch with me to help.

When it came to timesheets (yes, even in the new role I have to fill in the weekly timesheet) the answer was the same; go to Dynamics, go to Timesheet Entry and you are away.

In the past I have used Dynamics to track employee of the month nominations, health and safety floor inspections, and even travel requests. This is why it makes sense to consider Dynamics as a platform for processes more than simply a CRM system.

If you have Dynamics in your organisation to do the traditional sales, service, or marketing, think beyond the traditional and see what else this platform can do for you. You have little to lose and a lot to gain.

Tip #1164: All your forms are belong to us

Even some of the battle-forged Business Applications MVPs are not immune and descent into sheer panic when their forms go missing after the upgrade.


Dynamics 365 upgrades do not delete any forms and while some things may not go as planned, nuking your hard earned customizations is not on the todo list of the upgrade process.

Look under Inactive forms list – bet you that your beloved missing form is in there. It is possible to have two forms using the same name and the upgrade process will deactivate some of them that have the duplicate or conflicting names. Unfortunately, the process can be quite indiscriminate, leaving the useless now mobile express form in place while deactivating your hand-crafted Information jewel.

Tîpp Jäår $0.02

Just stop naming your forms Information, will ya?

Tip #1163: Set App Home Page

In classic UI we always had a personal option to set the starting point by selecting Default Pane and Default Tab. That option is no longer there in Unified Inteface so what do we do?

The helpful tip today comes from Mihir Shah (and you can send your tips to jar@crmtipoftheday.com too!):

As we have now slowly but surely moved to App specific environments it is imperative to be able to provide users the default  starting page to make them happy and productive.

For example we may have 2 apps – Customer Service App and Sales Associates App. Sales Associates may need to see there activities, opportunities and leads – Sales dashboard to work on as the default page. Customer Service would like to see the Work Queues as the default page to see what they are assigned and need to work with for the day. In each app you can have the default starting page as follows:

  1. Open the site map for your app
  2. Select the entity / dashboard that you want and add it as the first (top) in the sub area on the left. For example for customer service app I have added Work Queues (Queue Items) as the first left top sub area of My Work.
  3. Save and publish the changes

So now when the customer service user logs in to the App they will see the Queue as the default starting page.

Tîpp Jäår’s $0.02

I like “happy and productive” users too! Unified Interface Apps indeed land on the first available item (so far, and that may change, of course). While it’s not quite a personal option, having users land into something that makes sense for a specific app, and saves them couple clicks, is extremely useful and will be appreciated.

(Facebook, Twitter, and Apple News cover photo by Luke Stackpoole on Unsplash)