Tip #1093: Link Voice of the Customer survey responses to other entities

A common request I have heard from multiple clients is can I link survey responses to records besides customer (account, contact, lead) entities? I want to survey my clients about a service call, and if I send them a survey, how do I know which case they are responding to? Sure you could do some kind of plugin to link the response to the most recent case or something, but what if there are multiple service calls?

Survey invitations can only be sent to customer entities. If you try to send the link snippet in a template linked to another entity, you will receive an error.

There is one option I’ve discovered that works: repurpose the lead entity.

Say you wish to survey a client about a recent case:

  1. Add a case lookup on Lead (do not display the navigation bar link on the case)
  2. Set case lookup to the case about which you are surveying
  3. Set the lead email address to the email of the contact to be surveyed
  4. Set contact to contact to be surveyed
  5. Send the survey invitation to the lead
  6. Resulting survey response will be linked to the lead, which has relationships to the case and contact, so you can connect the feedback to the specific case.

Notes and disclaimers:

  • This process could be automated via a workflow–for example, if you want a contact to get a survey when a field service job is completed, you could have a workflow create the lead, link it to the job, and send the survey invitation email template to the lead.
  • This is admittedly kludgy and could be messy if you already use the lead entity for more normal lead processes
  • I suggest adding a lead type field and setting that to “survey recipient.” You could then exclude those leads from normal lead views.
  • Create a data process that disqualifies these leads after a reasonable amount of time–this will prevent them from accidentally getting qualified into a duplicate contact or making the list or recipient matches in email address activity parties unsightly.



Tip #1092: Chrome trick to make new field appear in the list

Browsers to Dynamics 365 are like a set of screwdrivers to a random screw. Sometimes you need a Phillips, sometimes – flathead, and on odd occasion HP hex is required. We already covered browsers war in the past but not a day goes by without a new discovery.

Consider, for example, today’s training session by yours truly. (I have to say that Dynamics training sessions are great – not only you get to share knowledge with the attendees, but more often than not, seasoned students gift a few nuggets). This afternoonDaniel patiently observed my struggle with Chrome, you know, the one where you edit a form, click New Field to add something on the fly only to discover that the field does not appear in the list, as it does in other browsers. I used to close and reopen the form to make the new field available but turns out that the solution is to click New Field again and then close the dialog without entering anything. Presto! – new field is now in the list. Thanks, man!

Morale of the story: when you can’t find the screwdriver to match the screw, drilling the bugger out always does the trick.

Tip #1091: Dynamics 365 App for Outlook version 9.0 is now available

If your Dynamics 365 instance is 9.0, it is time to ditch deprecated Dynamics 365 for Outlook (add-in) and switch to Dynamics 365 App for Outlook because version 9 is now out of preview.

Short summary of the new features and things you can do without leaving Outlook:

  • Unified Interface
  • View tracked email or appointment
  • Quickly create entity records
  • Search in Dynamics 365
  • View Dynamics 365 records

Read more the full announcement on Dynamics 365 Customer Engagement Team Blog post.

Tip #1090: Should I use cases for one user CSR scenarios?

For today’s tip, Sarah “Dynamics 365 Diva” Jelinek answers the question “I have one person who handles customer issues for my company–should I still use cases?”

I would tend to answer with “It depends.” But in all honesty, I would say yes. Even if one person handles the customer issues, I think there is a need to record that history with the customers. Even if the same person is handling the issues, there may be others that need to see the interactions, frequency, and results of the support process.

I have clients that email me directly needing assistance. There is a good reason for me to record that interaction within cases. If I am unavailable and the customer contacts another person in my company, they can look at the past cases in the system and find answers. Account managers can seek opportunities from cases recorded. Management can gather KPIs and other metrics to plan for growth.

I know it can seem overkill for the end user, but the pros outweigh the cons. Starting to use cases makes it easier for growth and seeing the 360-degree view of your customers. 

Tip #1089: User Delete Privileges Stretch Further Than You Think

This one was discovered by my KPMG partners in crime Fiona Whiteing and Jijeesh Kunhiraman on a recent project. As you may know, for a record such as a Contact, if I own the record, I can see the child Activities whether my security role gives me permission or not. I do not know if this obscure exception to record level security has a name. I call it ‘inherited security’. In fact it also works for Team ownership; if I am a member of a Team which owns a Contact, I can see the Activities of that Contact whether my security role (or the Team’s security role) allows me to or not.

If you did not know the above, end here and walk away intellectually nourished by an informative tip. If you did know the above, here is the twist. Let us say you are a member of a Team which owns a Contact and you can see the associated Activities thanks to inherited security. Let is assume none of the Activities are yours. If I now give your User record’s Security Role User-level delete privileges to Activities, you can now delete all those child Activities. Even though they are owned by other people and you can only see them because the Activities are on a Contact, owned by a Team which you are a member, you still get to blow them away.

Somehow inherited security amplifies the User-level delete privilege to work on any child record it renders visible, regardless of the actual owner. Is this a bug? Maybe. My guess is, as inherited security pre-dates the introduction of Team ownership in Dynamics, the subtle nuances of the two combining were not fully tested and give rise to unusual results. The moral of this tip? If you are securing records and inherited security is involved, make sure you test everything within an inch of its life.

Tip #1088: Errors importing marketing list entity in Dynamics 365 v9

If you make changes to the marketing list entity in Dynamics 365 v9 and try to move your customization, you may receive an error importing the customization.


  1. Extract the solution and open the customization XML file
  2. Locate the List entity in the XML file
  3. Add the following tag in the XML file:


4. Zip the solution and import it again

Tip #1087: Hierarchical Security and Disabled Users

So you want to use hierarchical security to give your sales managers access to their team’s account records. One thing that you should be aware of is how hierarchical security works when users are disabled.

If a user becomes disabled, records that he or she owns are not available for hierarchical security. This is a performance related limitation but is not currently documented in the official documentation.


  1. If a user who owns account records leaves the company, your offboarding process should include reassigning his records to another user (or to the sales manager).
  2. If #1 is not practical, such as high turnover scenarios or where there is no current replacement for the territory, consider creating a team for each sales manager called something like “west territory-open.” Make the sales manager a member of the team, then assign the disabled user’s records to the open team. That way the manager can see and manage those accounts, but they will be open so that when a replacement is hired, they can be reassigned to the new user.
  3. If none of these options work, consider an alternative to hierarchical security. One common approach that we frequently did prior to the introduction of hierarchical security was to create an access team on Account that grants the desired managerial permission, then have a nightly batch job (using KingswaySoft, Scribe, or some other ETL tool)  that builds the access team membership with the sales manager for each account. This approach avoids the problem of sharing, as well as the limitations in hierarchical security.

Tip #1086: Bring back content access levels

Dynamics 365 Portals have a very convenient way to control access to knowledgebase articles – content access levels. Link contact, account, or web role to a content access level (e.g. Gold Partners), then simply associate that access level with a knowledgebase article and boom – that article is only available to the users associated with that access level (directly or indirectly).

However, when you deploy Dynamics 365 v9.0, you may find that following the instructions to Assign content access levels to knowledge articles is not possible because, well there is no “symbol that looks like a lock.”

That is because knowledgebase articles are now part of the Customer Service Hub app and that app is configured to use one form only: Knowledge Article for Interactive Experience.

  1. Go to Settings > My Apps and then click … on Customer Service Hub and select Open in App Designer
    Open app in App Designer
  2. Locate Knowledge Article entity, click Forms, select Portal Knowledge Arcticle for Interactive Experience.
  3. Save, Validate, Publish
    Fix forms and republish
  4. KnowledgeBase Article form will now have the form switcher and the second form will have the coveted Content Access Levels.
    Form switcher
  5. Alternatively, just append and configure the Content Access Level subgrid to the summary tab.

Tip #1085: Using Voice of the Customer to survey users

Several people have recently asked me if they could use VOC to send surveys to application users. The answer to that question is “yes, sort of.”

When you send a non-anonymous survey invitation, you copy an HTML snippet to a Dynamics 365 email template, and when the system generates the email, it replaces the snippet with a client-specific URL that includes the ID of the customer. That’s how Voice of the Customer knows which customer record to link the response.

These invitation templates only work with contact and account records, not users or other records. If you try to put an invitation snippet in an email template sent to users, you will fail (trust me, I’ve tried).

Workaround 1

One workaround is the possible solution I suggested at the end of tip 951. Create contacts for system users, then create a lookup field for contact on the user record, linking the user to his or her contact record.

This then creates a trail you can follow with workflow or other system processes to send a survey invitation email to the contact related to a system user. For example, say you want to automatically survey the requesting user when an internal case is closed, you could have a workflow fire on the resolution of the case and trigger an email send to the originating user’s related contact record.

Workaround 2

Another school of thought is don’t use Voice of the Customer to survey users. It’s called Voice of the Customer for a reason–it’s designed to get customer satisfaction feedback from external customers. VOC fills an important gap by providing an interface that external parties can use to provide feedback into Dynamics 365. Users, by definition, have access to Dynamics 365, and any of the D365 user interfaces can be used for capturing input from users. Instead of using VOC for user surveys, you can use the feedback entity, create a custom user feedback entity, or use a dialog (yeah, they are going away at some point in the future, but still very viable for the foreseeable future). With any of these approaches, you can still send an invitation link to the feedback form via a workflow and you can also create additional relationships to other entities (which is not currently available via Voice of the Customer).


Tip #1084: New way to learn Dynamics 365

Our resident video tipster, Derik, has been a bit quiet lately and, as it turned out, for a good reason. If you are not a partner, and do not have access to Dynamics Learning Portal, then you’re in luck.

Managing Customer Engagement with Microsoft Dynamics 365 course is now offered free of charge through Microsoft Learning. The course contains tons of videos, step-by-step exercises, and targets first-time Microsoft Dynamics 365 users, young professionals and students.

The course is set to be archived in June 2018 so hurry up and learn!

(Facebook/Twitter cover photo by Clever Visuals on Unsplash)