Dialogs are a type of process in Microsoft Dynamics CRM that displays the input forms and the data that a user needs at each step while interacting with a customer or following a complex procedure. A dialog can have branching logic that is based on input from the person stepping through a case, phone call, or other customer interaction.
Dialogs are frequently used in call centers to provide scripts that allow customer facing staff to apply consistent interactions with customers. You can also use dialogs to provide a kind of ‘wizard’ user interface to allow people to perform complex procedures consistently.
Dialogs provide:
– Consistent customer interactions and interactive user tasks.
– Consistent information entry into your organization’s database.
– A way for people in your organization to focus on growing your business, instead of performing repetitive tasks.
Dialogs display a series of screens based on the responses you enter to the prompts on each screen. The dialog can provide a different set of screens based on the responses you enter. After the dialog is complete, the data is saved and can be reviewed later.
Unlike workflow processes, a dialog can only be applied to one record at a time.
1. Where do I customize dialog processes?
You can see the dialogs in your organization by navigating to Settings -> Processes and filtering on processes in the Dialog category. You can also see the dialogs in your organization by viewing the Processes node in the default solution and filtering on processes in the Dialog category.
2. Dialog properties
Every dialog must have the following properties set:

– Name: The name of the dialog process doesn’t need to be unique, but if you expect you’ll have a lot of dialogs, you may want to use a naming convention to clearly differentiate your processes. You may want to apply standard prefixes to the name of the dialog. The prefix may describe the function of the workflow or the department within the company. This will help you group similar items in the list of dialogs
– Entity: Each dialog process must be set to a single entity. You can’t change the entity after the dialog is created.
– Category: This property establishes that this is a Dialog process.
Unlike workflow processes, dialogs do not have scope. They are available to the entire organization. If a user runs a dialog that creates or updates record, the user must have privileges to perform those actions outside the dialog. Each dialog will create a Dialog session record and the user must have privileges to create and update those records.
3. Activating dialogs
Before you can use a dialog, you have to activate it. A dialog can only be activated or deactivated by the dialog owner. You can reassign a dialog by changing the owner. You can do this on the Administration tab. Dialogs can only be edited while they are deactivated. If you need to edit a dialog that is owned by another user, have them deactivate it and assign it to you.
4. Configure dialog processes
Dialogs provide a user interface to people who use them. You need to be familiar with what is possible within this user interface as you configure dialogs to meet your business requirements.
4.1 Dialog components: It is helpful to see what a dialog looks like to people using them before you start configuring your first one. When you open a dialog process to use it you will see a window like the one shown in the following screenshot:

A dialog will have the following components:
Header: Includes the name of the Dialog and the name of the current page.
Prompt and Response: Shows each of the prompts and responses added to the page. The prompts tell the user what to do or say, and the responses provide a place to enter data that could be used to set a value in a CRM record or just to control the flow of the dialog. Responses are optional.
Tip: Provides additional detail not included in the prompt. The tip shown changes depending on which prompt has focus.
Comments: Use comments to capture information that will remain available as you progress through the dialog. You might want to type notes in this comments section to provide additional detail not captured in the responses.
Help: Opens the Microsoft Dynamics CRM application help topic for dialogs.
Summary: Opens the dialog session. The Dialog session displays the data captured by the dialog. While you are using a dialog, the session will show the data set for previous pages.
Previous: After the first page of the dialog you can use this button to go to previous pages.
Next: Advances to the next dialog page.
Finish: After the last dialog page, this button will close the dialog with a status of completed.
Cancel: Closes the dialog with a status of cancelled. It is not possible to resume a cancelled dialog.
To configure a dialog after it is created you will view a page like the following screen that contains data from a Page containing a ‘Prompt and Response’.

Like other processes, you can change the name, activate as a process template and configure the process to run as either an on-demand process or a child process. If you leave both of the ‘Available To Run’ options unchecked when you activate the dialog, it will be set as an on-demand process.
‘Input Arguments’ are only used for processes that are configured to be used as a child process.
Use ‘Variables’ to set values that are stored within the dialog process. Variables are useful when a process gathers data through the course of several pages and this data may be used to perform calculations. For example, a dialog might be used to calculate a standard rating value based on the answers to several questions.
4.2 Steps available for dialogs: Most of the steps available for dialogs are the same as those common for processes with the exception of Page, Prompt and Response, Link Child Dialog, and Query CRM Data.
4.2.1 Page: Page is a container for Prompt and Response steps. You must include a Page before you can add a Prompt and Response.
4.2.2 Prompt and response: The ‘Prompt and Response’ step properties are the most important parts of the dialog. You must add at least one prompt and response step before the dialog can be activated.
Tip: Don’t add too many Prompt and Response steps to a single page because it will require the user to scroll down the page. It is better to add additional pages so that people can click through the pages without scrolling.
After you add a prompt and response, click ‘Set Properties’ to open the ‘Define Prompt and Response’ dialog.

A ‘Prompt and Response’ step has the following properties:

4.2.2.1 Statement Label: The statement label should provide an appropriate heading for the Prompt Text. The Statement Label is visible in the dialog session when viewing the summary during or after the dialog is completed.
4.2.2.2 Prompt Text: Prompt Text may represent something the person using the dialog should say to the customer or it could include instructions about how to complete a step of a complex procedure
4.2.2.3 Tip text: Tip text provides additional information to support the Prompt Text.
4.2.2.4 Response Type: Choose one of the following Response Types:
None: You can add a prompt without a response.
Single Line: A single line can represent a text, integer or float data by setting the Data Type.
Option Set (Radio Buttons): The results are presented as a set of Radio buttons. Use this option when there are just a small number of options to choose from. The data selected can be set to either text, integer or float data by setting the Data Type. You can choose to define static values or query CRM Data to provide a list of options.
Options Set (Picklist): This is exactly like Option Set (Radio Buttons), except that the options are displayed as a list. Use this option when there are very many options to choose from.
Multiple Lines (Text Only):Provides an area to type text with multiple lines.
Date and Time: Provides a control to set a date and a time.
Date only: Provides a control to set a date.
Lookup: This option will present one of the lookup fields used in the application. When you select this option the following fields appear and you must provide values for them:
Reference Entity: An entity that contains the lookup you want to use
Reference Field: The specific lookup in the reference entity that you want to use.
Tip: If you want to have a list for an entity that has no many-to-one entity relationships, you can create a custom entity and then create a one-to-many relationship between it and the entity that you want to appear in the list. Since this custom entity has no other purpose than to allow this lookup, make sure to configure it so that it is not visible in the application and set the entity description to indicate the purpose of the entity.
4.2.2.5 Data Type: When you select a ‘Response Type’ of Single Line, Option Set (radio buttons), or Option Set (picklist), you can choose to have the data set in the control be expressed using one of the following data types: Text, Integer, Float
When you select a ‘Response Type’ of Lookup, the Data Type field is replaced by the Reference Entity field.
4.2.2.6 Log Response: When you choose to not log responses you will still be able to access the responses as variables within your dialog, but the data in the response will not be saved with the dialog session. This is a security feature. Consider if you have a dialog that requires some personal information to be entered and processed. If the response is not logged it will not be saved with the dialog session record that contains the data in the dialog summary.
4.2.2.7 Default value: Use default value to set a value to indicate that the data in the response was not provided or represents a very common response which would only need to be edited if it was different.
4.2.3 Link child dialog: In the same way you might use child Workflows, you can also define child dialogs to create re-usable dialogs that you can re-use from other dialogs. If the child dialog has any input parameters, when you call the child dialog you need to map any available variables or responses to the input variables defined for the child dialog.
– Setting input arguments for a child process: If you attempt to enter Input arguments for a process configured as an on-demand process, you will be prompted to change the ‘Available to Run’ value to ‘As a Child Process’. After you enter Input arguments, you will not be able to set the process to be an on-demand process until all the input arguments have been removed.
Input arguments can be of the following types:
– Single Line of Text
– Whole Number
– Floating Point Number
– Date and Time
– Date Only
– Lookup
With each type, you can set a default value to be used if the calling dialog doesn’t provide data to the input argument.
4.2.4 Query CRM Data: If your dialog depends on the ability to display some data that is retrieved from CRM you should add a ‘Query CRM Data’ step before you need to view this data as either of the Option Set response types.
When you define a query you are shown a screen based on the ‘Advanced Find’ page. You can define a new query or use one of the existing views. When any of the queries requires setting a specific value, that value is considered a variable. For example, you can create a query that shows all the Case records where a specific Account is the Customer. For the query to work, you must specify an Account Record to be the placeholder. Then, when you select the Modify Query Variables tab you will see the FetchXML representation of the query with a variable generated where you had specified a specific Account in your query.
You need to use the Form Assistant to set a slug to represent the Account record that is the context of a Dialog defined for the account entity.

After you have done this you can Save and Close the Query. If you click the ‘Design New’ tab at this point, your dynamic value set for this query will be removed and you will need to add it back again.
You can have a query with variables and not use a dynamic value, but then the results shown will be the same with every dialog.
– Using query variables: Once you have defined a query variable you will typically use in a response using the Options Set (picklist) Response Type. You can specify which of the columns in the query you want to display and some text to separate the values that are displayed on the list.

The result is that in the dialog people can select from the results.
