Make a Field Required in a Dynamics CRM Dialog

Have you ever needed to make a Prompt and Response field required when designing Dialog? Currently, there is no out-of-the-box functionality to set a Prompt and Response field required in a Microsoft Dynamics CRM 2011, 2013, or 2015 Dialog. Thankfully, you can easily work-around this by using Child Dialogs! In today's blog, we will give you the steps needed for this workaround. Let's get started!

1. Starting in a newly created Dialog, (make sure you already have added a Page and the Prompt and Response that you would like to make required) first verify that the Dialog is set to run "As an on-demand process" and "As a child process".

Dynamics CRM Dialog

2. Select the Page containing the required Prompt and Response field and add a Check Condition step.

Dynamics CRM Dialog

Notes: Build your If condition to check the Prompt and Response value. You can access your Prompt and Response value under Local Values when specifying your If condition. Your "If" condition should also check to see if it does not contain data. For refrence in getting this set up, visit The CRM Book.

Dynamics CRM Dialog

3. Now that we have our If condition set, our Dialog looks like this:

Dynamics CRM Dialog

4. Under the Check Condition step, click "Select this row and click Add Step" and add a Link Child Dialog step.

Dynamics CRM Dialog

6. In the Link Child Dialog setup, select the current Dialog to creating a loop until the Prompt and Response has data. This will effectively make the prompt and response field required.

Dynamics CRM Dialog

7. Time to test! Save and Activate the Dialog.

8. Next, navigate to the appropriate record and run the Dialog.

Dynamics CRM Dialog

9. With no data in the Dialog,click the Next button. You will notice that the dialog does not proceed.

10. Enter data into your field and click Next. You are now presented with the next page in your dialog.

Thank you for stopping by our blog today!

Happy CRM'ing!

Hiding a Field Does not Hide the Data in Dynamics CRM

Here's a quick tip to make sure sensitive data in Dynamics CRM isn't being viewed by users who aren't supposed to see it. When it comes down to it, hiding the field using Business Rules or JavaScript does not prevent users from accessing the data. The solution you should use is to prevent unauthorized access is Field Level Security.

Consider this scenario, the Account entity has a Sensitive Data field which holds 'Top Secret' information.

Hiding a Field Does not Hide the Data in Dynamics CRM

If you use a Business Rule or JavaScript to hide the field on the form it should indeed remove the field from the form.

Hiding a Field Does not Hide the Data in Dynamics CRM

But look what happens when the user decides to use the built in developer tools (F12) in their browser. They are able to see the 'Top Secret' information.

Hiding a Field Does not Hide the Data in Dynamics CRM

If you need to have data on a form that is accessible to some users and not to others using Field Level Security is a better solution.

Hiding a Field Does not Hide the Data in Dynamics CRM

Now when the user tries see the 'Sensitive Data' they don't see anything other than the masked value.

Here's the explanation. When using a Business Rule or JavaScript the logic to hide or show the field is applied in the user's browser. At this point the data was already sent to the client from the server. The underlying field data must be kept around in its hidden state just in case a Business Rule or JavaScript decides that field need to be shown again and to prevent having to re-request data from the server (think performance).

When Field Level Security is in place the logic determining if the data is shown or not is applied on the server prior to the data being sent to the client. This way instead of sending the actual data, the asterisk placeholders are sent in its place. An added benefit of Field Level Security is that it's applied in places like views or advanced find where you aren't able to apply Business Rules or JavaScript.

If you want more information on security in Dynamics CRM, check out these links:

Happy CRM'ing!