Tip #948: Alternate uses for Marketing Lists

One of my favorite classic features of Dynamics 365/CRM is the marketing list. While it is never on the top of anybody’s list of top features, and the legacy campaign features with which it is associated are long in the tooth, static marketing lists have some unique capabilities that give them utility outside of marketing contexts.

Data cleanup

Marketing lists are very useful for data cleanup, as they allow users to build lists of leads, accounts, or contacts. These lists can be built using one or more advanced finds, lookups, and ad-hoc records. So if you want to bulk delete unqualified leads that are over X months old, and also delete 500 newer junk leads, marketing lists are a great way to put together the list of records to be deleted before running your bulk delete job.

Once you build your marketing list, you can easily select companies, contacts, or leads related to the marketing list in Advanced Find and schedule the deletion with Dynamics bulk delete.

“Not-in” lists

Advanced find does a great job of returning records that meet a certain criteria, but doesn’t do so well telling you what is not there. For example, I can easily get companies with a related contact, but I can’t easily get companies that do NOT have a related contact. Note that FetchXML does allow left outer joins for “not-in” queries, but Advanced Find cannot build these queries. When you don’t have the time, budget, or developers sitting around to write a custom “not-in” query, marketing lists can be a poor man’s alternative.

Let’s consider the scenario where we want to get a list of companies that don’t have any related contacts:

  1. Create a new marketing list. Select “Static” for list type and “Account” for target.
  2. Use advanced find to add all active companies to the list.
  3. Use advanced find to remove companies from the list where related contact contains data.

The resulting list is a list of companies that do not have any related contacts.

Got any other novel/alternate uses for Marketing Lists or any other standard application features? Send them to jar@crmtipoftheday.com.



Share on FacebookTweet about this on TwitterShare on Google+

Tip #947: Video Guide to Working with Activity Feeds and Auto Post Creation

In this video we look at Dynamics 365 Activity Feed feature. We walk through how to configure Auto Posting at an Entity level, as well as how to enable the specific rules. In addition we explore how to create a workflow to handle creating rules that are not available by default.

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!

Share on FacebookTweet about this on TwitterShare on Google+

Tip #946: Online Management API for Dynamics 365 Customer Engagement is here

Today is a good day if you care about development, and ALM in particular. I’ll be paraphrasing Matt “SDK Deity” Barbour in this post but the news is too big to spend time prettifying it.

What is it?

It’s a REST API that lets you create and manage Customer Engagement instances in your Office 365 tenant. It will allow Tenant Administrators to do Instance Create, Back up, Restore, Enabled and disabled Admin Mode and a number of other things.

Is it a big deal?

It sure is!

Why is it a big deal?

For years developers, administrators, and devops have been whining “why can’t you give me the same feature set you have on prem to create or delete or restore instances so I can build this into my Dev / ALM flows”. Well, now you can fully automate your dev / ALM processes.

Where can I read about it?

Start right here and follow the links. Sample in C# is included.

Any gotchas?

  • This API works for only released versions of the product that are available in the region you’re connecting to.
  • This API is region-specific, you need to connect to the region where your instances are.
  • You can only do what you can do in admin center.

Anything else?

More goodness will come with the next release of SDK (9.0). And watch out for a blog post from the team.

I also expect some CI affectionados to shake that API really well in the next few weeks!

Share on FacebookTweet about this on TwitterShare on Google+

Tip #945: If Dynamics 365 seems to be broken, check browser extensions

If a user experiences some odd and unusual Dynamics 365 behavior, it could be due to the browser “plugins” that are known as Chrome extensions, Firefox add-ons, and Edge extensions alike.

Recently I installed AdBlock and Privacy Badger and found that I cannot effectively access Dynamics 365 / CRM without disabling these extensions. That seems to be logical: Dynamics makes a fair use of headers and cookies, both frown upon by privacy nutjobs and anti-ad advocates.

There are probably some other extensions that could trigger unusual behavior so, before blaming Dynamics 365 / CRM for not displaying your pages properly, try running your browser without any extensions or add-ons. The easiest way to do that is to use browser user profiles or incognito mode, both by default won’t load any extensions.

Share on FacebookTweet about this on TwitterShare on Google+

Tip #944: Flow just got more expressive

Just as we learned that Flow users now have a graduation path to the Logic Apps, the team has released another awesome feature blurring the gap between the two.

Flow now has Expression tab that allows some data manipulation as part of an Action. Simplest scenarios include date and string manipulations; thrill seakers can self-inflict some pain with xml() and xpath() expressions.

If you’ve been using Yaml specs as your bedtime reading, you might also enjoy the torture of the formal schema which Flow, unsurprisingly, shares with borrows from Logic Apps.

Share on FacebookTweet about this on TwitterShare on Google+

Tip #943: Upgrading development environment to Dynamics 365 On-premises

Today’s contribution is “an old school on-prem tip” from Brian Illand.

Despite the marketing hype around Dynamics 365 being a whole new product, remember that it is a ‘minor’ upgrade from Dynamics 2016 to Dynamics 365 On-Premise. Dynamics 2016 is v8.0/8.1 and Dynamics 365 is Version 8.2. So, ‘theoretically’, there is a lower than usual risk of things breaking than when you are upgrading between minor versions. Additionally, you shouldn’t need to upgrade any hardware or other dependencies like SQL. Consider the advantages that you could get from Dynamics 365 On-Premise features such as apps and editable grids for this relatively simple installer. It’s a no-brainer.

In practice, a slight hiccup however. Today, we decided to bite the bullet and see how this theory played out, upgrading a relatively new CRM 2016 environment to Dynamics 365. The first step was to test it on a Development environment. When we ran the installer, it took over THREE HOURS to complete (much of the time it was stuck at ‘Microsoft.Crm.UpdateWrapper.HotfixMspInstaller – File: C:\Config.Msi\579f832e.rbf’ in case you’re interested). This is something we attributed to our less than optimal Dev Environment and Dev SQL Server Specs.

So what’s the tip? Here’s 3 :

  1. If the installer looks like it has hung when upgrading don’t panic – check the logs at C:\Users\AppData\Roaming\Microsoft\MSCRM\Logs. If they are getting updated regularly, don’t worry.
  2. You can also check the upgrade status by looking in the UpgradeActionTracker on each database – i.e.
    SELECT * from UpgradeActionTracker order by createdonutc desc
  3. When specifying hardware, to keep costs down, people often specify a beefy production environment, perhaps a broadly equivalent pre-production environment, a slightly less equivalent test environment and a development box that runs like a dog. Think twice about cheap dev kit. This is probably where you will be doing the bulk of your work, publishing and republishing solutions, data loads and such like. If it’s an Azure VM, spec it high initially and scale back when you are not using it. If it’s on-premise, don’t use that server that was destined for the bin, it will cost you more in the long run in waiting around.
Share on FacebookTweet about this on TwitterShare on Google+

Tip #942: Allow users to change roles with limits

So you want to give users who are not system administrators the ability to manage roles for other users, but you don’t want to give them the ability to elevate their own roles? How do you allow users to manage other users’ roles without promoting themselves to system administrator?

In the role for the user who you want to have the “manage roles” capability, add “assign” permission for “Security Role” on the “Business Management” tab.

This will make the “manage roles” button appear on user forms and views for the users with this role. However, it will not allow them to assign roles that they don’t already have themselves. If the user with the security role assign permission has “salesperson” role, he or she will be able to assign other roles the “salesperson” role. They will not be able to assign themselves or other users a role that they don’t have, such as system administrator.

Share on FacebookTweet about this on TwitterShare on Google+

Tip #941: Limit who can change the stage of a process flow

A client recently asked me about the ability to limit who can move an opportunity out of the “propose” stage. They would like to only allow sales managers to move to the next stage of the business process flow.

Knowing that Dynamics 365 does not limit stage movement by role, I reached out to some of my MVP friends. The following were their suggestions:

David Yack: Create a required step at the end of the stage and use FLS to limit that field being updated to the sales managers.

Daryl LaBar: You may be able to prevent users to change the stage using JavaScript, but you could always use a plugin that is registered on the update of the stage of the entity and prevent it if the user is doesn’t have the correct role.

Neil Benson: Promote all users to sales manager. While you could go with your well-considered technical options, is that really going to be less expensive that just adjusting the salary of every sales rep and making them a sales manager? I think my idea will be more popular with the users and lead to higher adoption and praise for Joel.

Share on FacebookTweet about this on TwitterShare on Google+

Tip #940: Dynamics 365 Outlook client vs. Outlook App: which is faster?

In this video we compare setting regarding and tracking emails in CRM for Outlook (Outlook Client) and the new Dynamics 365 App for Outlook. Which is faster?

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 (and track them if you want to) to jar@crmtipoftheday.com.

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

Share on FacebookTweet about this on TwitterShare on Google+

Tip #939: Need to reschedule an update again?

When a new release of Dynamics 365 is released, existing online environments are scheduled for an upgrade. If the date selected is not optimal, an administrator can reschedule that update one time.

But what if you later change your mind and want to reschedule it again? the Instance picker will not let you reschedule an update a second time. Does this mean you are stuck?

No–it simply means that you cannot reschedule it again via the O365 console. Log a support ticket with Microsoft support, and your friendly Microsoft support tech will be glad to help you reschedule the update for the desired date.


Share on FacebookTweet about this on TwitterShare on Google+