How To: Advanced Options in Dialogs and Data Querying
This post addresses a couple of issues with dialogs. One technical and one usability oriented.
One challenge in dialogs, and particularly when closing tickets (cases), we often need to ask the agent a number of Yes/No questions such as "First Contact Resolution", "Resolved Remotely etc. This is particularly the case for organizations following ITIL principles.
One challenge with Yes/No questions and dialogs in CRM, is that there always is a default option, which would be either Yes or No. The challenge there, is that we do not know if the user actually meant to select the default value, or if they just submitted the form with the default values without looking at the questions.
There is obviously some usability to take in to account, since forcing an answer requires extra clicks some there are some pros and cons to weigh there.The solution is to create a dialog, which has a "Select a value…" option, and if the user selects that, they will get an error in the dialog.
On the technical side, we will go through how to create these questions using the data query options in the dialog, and by using the data query options, it will become much easier for us to update the answers on the CRM record, make modifications to the questions later and more.
One particular annoyance with the Two Option field and dialogs, is that you cannot map an answer to the field. You have to create check conditions in the process and then update the field accordingly. This creates some rather cumbersome workflows.
Create a new entity - let's call it "Options"
And create the following fields
- Type option set
- Two Option Value
- Not Valid Response
- Sort Order
For the Option Set "Type", add these options
Two Options and Closure Process
And of course, add the fields to forms and views.
Open Advanced Find, go to the new Options entity and add the following records.
Remember to add the Two Option values and Not Valid Response as pictured above.
Go to your Processes and create a dialog for the Account entity.
In this example we will call it "Communication Preferences"
Step one is now to create a query that gets desired responses. In this a drop-down with
- Select Value
For the first step, select Query Data and click Set Properties
Create the query, as above, that gets the three responses we just created.
Then click Edit Columns.
This is where the magic happens.
Add the columns as pictured above. The important part is to include the fields that contains the response we need to put on the form, or run any kind of logic on.
Before you click Ok, go to Configure Sorting and make sure the data is sorted by the Sort Order field we added.
Create a page and three prompts.
We will ask three Yes/No questions on
- Allowing Letters
- Allowing Phone Calls
- Allowing Faxes
For each of the prompt properties, set the Response Details like this.
Use the "Yes No options" we created in the first step. Only include the Name of the record.
Select the Option Set (pick list) as the Response Type.
Next step we will check that all the responses are valid. Basically we need to make sure that the user made a selection rather than leaving the selection at its default value.
Run a check that none of the responses have a "Yes" in the "Not Valid Response" field.
If all responses are valid, update the Account with the answers.
Now, since we have the answer records, we can use any value, two option field, or option set on that record, to put on the account via a workflow step.
Add the update step and scroll down to the Contact Preferences section.
Click on the phone field and select the response from the form assistant.
Make sure that the Two Option Value field is selected and add it to the form.
Repeat the process for all three answers. Now we can easily update all the answers in one go.
Activate the dialog, go to an account and run it.
The questions in the dialog should now look like this.
Now we have forced the user to make a selection, rather than going with the default option. We also have a much slimmer dialog in terms of steps needed to populate all the yes/no answers.
Other applications of this approach includes using option sets instead of two option fields. This means you will be able to make updates to an option and simply adjust the "Options" records to ensure all the dialogs map correctly, rather than adjusting the mapping in each dialog that references a specific option set.
In the Options entity, you can also add relationships to for example Team or Security Role and use these in the query. That means you can have different options in the dialog, based on the users team association or security role.
For example, you can enable managers to resolve and close tickets (cases), while regular agents or in-training agents only can resolve. And yes, there is a difference between resolving and closing and it is important.