Tip #709: Rules For CRM Territory Design

The following are some rules of thumb when designing sales territory structure in Dynamics CRM:

  • You don’t have to use the “Territory” entity. There is nothing magical about the standard territory entity. It may fit your structure, and it may not. Replacing it with a custom territory entity in many situations can give you a better result.
  • Use security for legitimate security restrictions. It can be tempting to totally lock everybody down to only see what is in their territory. While this can be a good idea, frequently it leads to problems and is not conducive to collaboration and cross-selling. Remember the “R” in CRM stands for “relationship.” If there are legitimate reasons to restrict visibility of records, this is possible; however, if the filtering of records is for convenience purposes, there are other lightweight methods that can be used.
  • Automate it. If your territory assignment follows a set of rules, these can be automated so that when a new account is added, it is assigned to the correct territory automatically, without an administrator having to do anything. This can be driven by several methods, including workflows, plugins, and batch integration jobs.
  • Make it easy to administer. Over-engineered or overly complicated territory logic can sometimes break down over time. The leading reason for this is processes that are difficult to administer. If your CRM partner goes away or your CRM administrator gets hit by a bus, the territory logic should be easy to administer so that it is maintained over time.
  • Make it easy to update. I have seen many territory designs that are very cumbersome to change when a territory assignment changes. For example, if your territory is driven by postal code, instead of putting the territory on the account, create a table of zip code records, and associate the territory with the zip code. With this approach, changing the territory of accounts in a certain zip code only requires update of one record, rather than updating hundreds of account records.

Tip #708: Tipster guide to Dynamics CRM Mobile Task Flows – (Preview)

Pokemon Go Task FlowToday we look at the Dynamics CRM Mobile Task Flow feature. This Preview feature was introduced as part of Spring Update 1. Derik walks you through how to enable, configure and consume the feature.

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 #707: Get your tab order in order

Vintage data entry operatorIt may come as a surprise to some but CRM is frequently used for data entry. Not just graciously moving the mouse and clicking here and there while holding a cup of English Breakfast in the other hand but actually banging on a keyboard trying to enter as much data as possible in a shortest possible timeframe. CRM adoption in an organization heavily depends on how friendly you can make UI for people formerly known as data entry operators.

Consider this form fragment:
Basic form

Apart from some illogical field placement, description field breaks the form by being too small and adding scrollbars. Let’s fix it by setting this field to span two columns. Problem solved, right? Not quite, just take a look at the tab order:
Form with wrong tab order

Because field now spans across the form, users reasonably expect Task Status to come after the Project. But the worst part is jump from 8 to 9, over the field. Unexpected, and probably breaks few of the accessibility guidelines.
The fix is not that difficult: add a section without a caption, just to reset the tab order, and then spend few minutes grouping controls more logically:
Tab order form design

Users will appreciate the result:
User-friendly tab order

I’m not a big fan of the section margins introduced in CRM 2013 as it takes away our control over the whitespace – I can always insert a spacer if I need to blind user with more white. But even then, breaking the tab order with a section makes a lot of sense, especially if some of the controls span the columns.

You may also want to revisit sections spanning more than one column if your users operate Pokemon Go Catchers mobile devices.

Tip #706: Passing arguments to the webresource does not work after authentication

Fallen godWe are all mortals, after all. I just witnessed a rare occassion when even Tanguy “The XRM Toolbox” Touzard needed a helping hand from none other than Andrii “Khohol” Butenko.

Tanguy

I’m working on a really simple integration where an external app needs to open a webresource with parameters passed in data url argument:

https://qwerty.crm4.dynamics.com/WebResources/foo_/cti/index.html?data=phonenumber%3d0123456789%26service%3dadv

as mentioned in the SDK, parameters are encoded in data url argument. The problem is if I open this url before being authenticated to CRM Online, I’m redirected to the authentication page then redirected to the requested page. Problem is that the url is altered, as the “?” character is replaced with %3F

https://qwerty.crm4.dynamics.com/WebResources/foo_/cti/index.html%3Fdata=phonenumber%3d0123456789%26service%3dadv

Thus, the page does not see the arguments passed in data.

Is this a known problem?

Andrii

I experienced the same problem and found a workaround: just add the following script to onload event:

var params = GetGlobalContext()
             .getQueryStringParameters();

if (typeof params.data == "undefined") {
  var currentUrl = window.location.href;

  if (currentUrl.indexOf("%3F") != -1) {
    currentUrl = currentUrl.replace("%3F", "?");
    window.location.href = currentUrl;
    return;
  }
}

Tip #705: Stop uploading reports by hand

Manual laborIf you’re like Andreas (SeAn) Seitz then you don’t like manual labor. Like managing and uploading your rdl files by hand, for example. What does the developer do when they need to automate a mundane task? That’s right, write their own XrmToolbox plugin.

Andreas himself

After hours of manually uploading CRM Report .rdl files from disk through the CRM Web, I have written a small PlugIn for the XrmToolbox called “Report Sync (.rdl Files)”. So uploading multiple changed rdl Files from disk to crm is done in a few seconds and with almost a few click.

Also downloading Reports from CRM to disk, e.g. for editing or backup is done quickly.

It has saved me already a lot of time, and I hope others can also benefit from that plugin. Here is the link to github: https://github.com/Sean0885/CRMReportSync and the Plugin could be installed through XrmToolbox itself from the in-app “Plugins store”.

Maybe this is worth a tip of the day 🙂

Tipp Jarr

It most certainly is and thank you for the contribution!

Hey, got a tip of your own? Send it to the tip jar!

Tip #704: Return on investment for CRM Online

Show me the moneyHave you ever wondered what is ROI (return on intestment) for CRM Online is? If you are in sales, I bet you’ve been asked this question many times by your prospects and your customers. Wonder no more.

Learn more about the benefits, costs and risks associated with a CRM implementation in the Total Economic Impact report from Forrester, featuring financial analysis, interviews with existing Dynamics CRM customers and more.

As much as I am suspicious of any commissioned report (let me ask you: what would you do if you commissioned a report and it did not work in your favor – would you still publish it?), this one is a valuable source of information, highlights what we already have a gut feeling about and concentrates on the subject at hand rather than on the competition bashing (as many of the commissioned reports tend to do). And it’s got $s, lots of $s which should make some of us very happy.

Tip #703: Tipster guide to Dynamics CRM and Power BI

Just another pie chartIn this video we look at some of the integration options available with Dynamics CRM and Power BI. We show you how to use the Sales and Service manager content packs, connect to a CRM online instance, and how to surface Power BI info in CRM.

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 #702: How to tell apart system roles and their clones

Role play and theater masksIt’s been a while since we had a truckstop but
Larry “Tex” Lentz keeps asking questions on behalf of some mysteryous “students”. Let’s stop and listen.

How can one tell if a security role is a copy and which role it’s a copy of?

Feridun “Best Twitter Handle for CRM MVP” Kadir closed the discussion in one sweet move

I don’t think you can. It’s not like the original role was a template.

But then it all went off the rails: “The copy is I think no different than creating a new role and configuring it to be the same as another one.” (Same?! I’ll let this delusion slide, – t.j.)

Chris “Mr ADFS” Cognetta joined the party with some good ideas, sadly only applicable in your own backyard, a.k.a. on-premises

Look at createdon date in DB to see when it was made. Originals have the installed or prior date. Any after is a copy.

That was followed by a long list of recommendations how to retrieve and interpret the roles by none other than Mitch “Only in Texas” Milam. We’ll save that one for another day.

Jerry “I’m still in Kansas” Weinstock closed it nicely with a best practice recommendation

When copying roles always modify the new role name by adding the company name to the role.

For example, you’ll have Salesperson and then you’ll have Acme Salesperson. Nice and clean.

Tip #701: Don’t leave components behind

Leaving someone behindGood, old, and fairly reliable components like email router tend to slip under the monitoring radar. They work for months on end and it comes as a surprise when they stop and, in a lot of cases, we discover the problem only because users start complaining.

For quite some time Dynamics CRM 2015 Email Router ruled the day – it worked fine with CRM Online, CRM 2013, CRM 2015, and CRM 2016. We used one instance for a number of customers and forgot all about it. Until one of CRM Online customer got their organization updated to, uhm, Update 1, and users started to see infamous “You’ve got pending email” box when logging in. Apparently, that’s where the line for forward(backward?) compatibility was drawn, as we had our server log filled with:

“#23379 – Could not verify the version of Microsoft Dynamics CRM at https://disco.crm5.dynamics.com/noneofyourbusiness. The Email Router service that is installed is not a supported version. The Email Router version is earlier then expected by the Microsoft Dynamics CRM server at https://disco.crm5.dynamics.com/noneofyourbusiness.”

As one would expect, update to the latest release, i.e. 2016 + Update 0.1 took care of the issue but the lesson learned:

When CRM Online customers have their instances scheduled for updates, mark these days in your calendar

Think about dependencies, external components, service integrations and be ready on the day. Better yet, have a sandbox organization provisioned and test the upgrade. And don’t leave components behind even if we are working fine because one day they will surprise you.