Tip #713: Tipster guide to Dynamics CRM and Machine Learning – Part 1

I am robotIn the video, we look and some of the new Machine Learning options currently in Preview as part as Update 1 for 2016. In this first video we explore how to setup and configure the Text Analytics feature, and how to use it for Article Suggestions.

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 #712: How to add a spacer to CRM Business Process Flow

Tile spacersWith so many tips to share, Daryl “New MVP on the block” LaBar is on a fast track to become one of our resident tipsters. Here is another good one.

The CRM form designer has a spacer control allowing to achieve some finesse in the form layout. This feature is sorely missing in CRM Business Process Flows, but the good the news is that you can implement your own space with no coding required!

You can read the original illustrated guide, or this reader’s digest version:

  • Pick up an unused field. Created By (Delegate) is a good choice.
  • Add this field as a step in the Business Process Flow.
  • Add a business rule to unconditionally hide this field.

Tip #711: Record merge fails when assignee has insufficient privileges

Hand over the keysGuido “Trekkie not Star Wars fan” Preite is not the man to puzzle easily but even he was confused:

Someone faced this error before? “Assignee has insufficient privileges” when merging two contacts. The User is System Administrator and the same user is the owner of both records. No plugins running on the merge message. CRM Online DB 8.0.1.344

Assignee has insufficient privileges

tl;dr

If you receive “Assignee has insufficient privileges” error message when merging records make sure that no owner of the child records has administrative access mode set.

I want to know why

I’m not sure if it’s possible to display an error message in error but judging by “selected {0}”, this is exactly the case here.

One of the actions performed by the record merge is ever confusing reparenting. For example, in case of the account merge, system will move subordinate contacts from the account being merged to the master account. During that move two things need to happen: master account owner will need to get access to those child records (if they didn’t already have and reparenting rules state that they should) and access of the old child record owner needs to be preserved. It’s the second part that seems to generate the erroneous error message.

The system goes bananas if owner of a child record cannot be explicitly granted access to that record at all, as is the case when user’s access mode is set to Administrative. Interestingly, disabled user accounts do not cause the problem, it’s the administrative access mode that seems to throw the system off.

Tip #710: Entities not available on mobile revisited

In Tip 284 we provide a list of entities that don’t work on CRM Mobile apps. This has changed with the Spring 2016 update. Per the CRM Roadmap site, Quotes, Orders, and Invoices are all now available via mobile, but they don’t work offline.

QOI

The following is the updated list of entities not available for mobile:

  • Attachment
  • Audit
  • BusinessUnit
  • Calendar
  • Campaign
  • CampaignActivity
  • CampaignResponse
  • Contract
  • Equipment
  • Fax
  • Goal
  • Import
  • KbArticle
  • Letter
  • Marketing List
  • ListMember
  • Mailbox
  • Position
  • Post
  • PostComment
  • PostFollow
  • PostLike
  • PostRegarding
  • PostRole
  • Report
  • SalesLiterature
  • Service
  • ServiceAppointment
  • Site
  • Subject
  • Workflow

 

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.