Chapter 13. The Unified Service Desk (USD)

The Unified Service Desk (USD) is a separate installed application, designed for desktop users (that is, there is no online interface), typically customer service agents.

The USD delivers a rich experience to agents, allowing them open multiple windows within a single container—the USD application. In addition, it is an extensible application that can have increased capabilities and features added to it with simple configurations, some of which are shown in this chapter.


Note

You can make more complex customizations to USD involving the CRM software development kit (SDK). However, such customizations are beyond the scope of this book.


The first version of the USD (version 1.0.0) was released in May 2014, and it was designed to be used with Dynamics CRM 2013, Service Pack 1. With the release of Dynamics CRM 2016, a new version (version 2.0) has been released; this is the version covered in this chapter.

The USD application requires a few solutions to be installed on the CRM server, and it works with either CRM Online or CRM On-Premises.

You can download the USD from the Microsoft website by searching for “Dynamics CRM USD download” or by going to https://www.microsoft.com/en-us/download/details.aspx?id=50355. The download page offers three files: a package deployer and two versions of the USD client app—one for i386 machines (which run a Windows 32-bit versions) and another for amd64 machines (which run Windows 64-bit versions). You should download the package deployer as well as the appropriate client version.

The following section explains how to set up the different components in the client and the Dynamics CRM server.

Requirements

The setup of USD involves installing some solutions with the USD package deployer and installing a client application on the agent desktop computers. The following sections cover both the server setup and the client setup.

Server Setup

To install the USD package deployer, follow these steps:

1. Run the CRM2016-8.0.1-USD-PackageDeployer.exe file you downloaded from the Microsoft website. The screen shown in Figure 13.1 appears.

Image

FIGURE 13.1 USDPackageDeployer Setup screen.

2. Check the check box to accept the Microsoft software license terms and then click Continue.

3. Select a folder where you want the files to be extracted and click OK. Once the files are extracted, you see the welcome screen shown in Figure 13.2.

Image

FIGURE 13.2 USD package deployer welcome screen.

4. Click Continue, and you are asked to enter the connection information for connecting to your Microsoft Dynamics CRM server (see Figure 13.3).

Image

FIGURE 13.3 USD package deployer Connect to Microsoft Dynamics CRM screen.

5. If you want to connect to CRM Online, select the Office 365 option and enter the online region information if you know it (see Figure 13.4).

Image

FIGURE 13.4 USD package deployer screen for connecting to CRM Online.

When you are connected, you are presented with a list of available import packages (see Figure 13.5).

Image

FIGURE 13.5 USD Multiple Import Packages screen.

6. Select the Unified Service Desk—Base Package option and click Next. You now see a guideline and a description of the base setup tool (see Figure 13.6).

Image

FIGURE 13.6 USD Base Package Setup tool.

7. Click Next to continue, and you are now ready to install the base package, as shown in Figure 13.7.

Image

FIGURE 13.7 USD Ready to Install page.

8. Click Next to continue, and a verification process starts. If everything is okay, you see green checkmarks for each status, as shown in Figure 13.8.

Image

FIGURE 13.8 USD validations.

9. Click Next to continue. The package deployer now installs the solution in Dynamics CRM, and it loads and imports the records necessary for the solution to work (see Figure 13.9). This process takes several minutes to complete.

Image

FIGURE 13.9 USD Executing Install Actions screen.

10. When the installation is complete (see Figure 13.10), click Finish.

Image

FIGURE 13.10 USD Installation Complete screen.

11. Navigate to Dynamics CRM > Settings > Solutions, and you now see the solutions installed, as shown in Figure 13.11.

Image

FIGURE 13.11 Solutions installed by the USD package deployer.

Client Setup and Configuration

To set up the USD client, follow these steps:

1. Run the CRM2016-USD-2.0.2-amd64.exe file you downloaded from the Microsoft website. You see the welcome screen shown in Figure 13.12.

Image

FIGURE 13.12 USD setup welcome screen.

2. Click on Next to continue to the prerequisites screen (see Figure 13.13).

Image

FIGURE 13.13 USD setup prerequisites screen.

3. Leave the recommended pre-requisites selected as shown, and click Install to begin the setup. When the setup completes, you see the success screen shown in Figure 13.14. The client is now set up and needs to be configured to work properly.

Image

FIGURE 13.14 USD setup success screen.

4. Click Launch to start the configuration. The first time you run the USD, you are asked to enter the CRM connection details, as shown in Figure 13.15.

Image

FIGURE 13.15 USD CRM Login screen.

5. If you need to connect with CRM Online, select the Office 365 option for Deployment Type and then check the Display List of Available Organizations check box (which will help you chose whether you want to connect to your production or sandbox environments, if you have any). Click Login. The screen shown in Figure 13.16 appears.

Image

FIGURE 13.16 USD CRM Online login.

6. Check the Show Advanced check box and then enter your credentials. If you set your Online Region (found within your CRM URL), you will get a faster connection login.

7. If you get the error shown in Figure 13.17 (which shows what happens if the USD package was not deployed to the CRM server yet), close the interface, run the server deployment, and return to the client configuration.

Image

FIGURE 13.17 No USD solution installed in CRM error.

When your connection is successful, you see the application load, as shown in Figure 13.18.

Image

FIGURE 13.18 USD login screen.

8. Enter your user credentials and authentication, and you are logged into USD and see the dashboard, as shown in Figure 13.19. The top menu here shows three options: Dashboard, My Work, and Search.

Image

FIGURE 13.19 USD client dashboard.

9. Click My Work to see the active cases in a second tab. You can quickly switch between the My Work tab and the Dashboard tab (see Figure 13.20).

Image

FIGURE 13.20 USD client My Work tab.

10. Click Search to open a tab that shows your active accounts by default (see Figure 13.21). You can quickly switch to see your active contacts from here as well as search for accounts or open an existing account or contact.

Image

FIGURE 13.21 USD client Search tab.

11. Open one account or contact record to start a new session where the time spent on the record is recorded. You see the account form loaded, and in the bottom-left corner of the screen is a session timer (see Figure 13.22). This is useful for managing time spent on a particular customer and helps with escalation protocol.

Image

FIGURE 13.22 USD account record session.

12. Expand the left panel to see more information related to the record. If you like, you can use this page to run call scripts (see Figure 13.23).

Image

FIGURE 13.23 Expanded left panel of the USD.

13. Click back to search on the top navigation and open another account record in a secondary session, via the tab across the screen (see Figure 13.24).

Image

FIGURE 13.24 Two account records open in the USD.


Note

When you have a secondary session open, the timer will keep running for each session.


14. Open a case from the My Work tab and expand the left navigation panel, and you see a sample script as well as a section where you can add notes, as shown in Figure 13.25.

Image

FIGURE 13.25 Expanded left panel of the USD for a case.

15. Click the Verify Customer Information action to open the account form on a separate tab in the same session (see Figure 13.26). Click Review the Case to go back to the case form tab.

Image

FIGURE 13.26 USD Verify Customer Information action from script.

16. Click Search for a Solution to open another two tabs. The first tab has a web browser embedded, with Bing search open, so you can find a solution online without leaving the USD application (see Figure 13.27).

Image

FIGURE 13.27 USD Bing Search tab.

The second tab shows the published articles so you can find the solution by using one of your organization’s internal knowledge base articles (see Figure 13.28).

Image

FIGURE 13.28 USD Articles tab.

17. Click Send Email to start composing an email to the customer that will be automatically associated with the case (see Figure 13.29).

Image

FIGURE 13.29 USD Email tab.

18. Click Update Notes, enter notes in the box below, and then click Close the Session to close all the open tabs related to the case you were working on and also finish the session and stop the timer.

Configurations and Customizations

In the Dynamics CRM web interface, navigate to Settings > Unified Service Desk, and you see the configuration page with all the components you can configure, as shown in Figure 13.30.

Image

FIGURE 13.30 USD configuration page.

From this page you can configure the following components:

Image Hosted Controls

Image Toolbars

Image Action Calls

Image Events

Image Entity Searches

Image Window Navigation Rules

Image Session Lines

Image Agent Scripts

Image Scriptlets

Image Forms

Image Options

Image User Settings

Image Customization File

Image Configuration

Image Audit & Diagnostics Settings

The following sections describe these components.

Hosted Controls

Hosted controls are the main controls displayed in the different areas of the USD client. For example, the account form, contact form, Bing search, and so on are all hosted controls. If you go to the Hosted Controls option on the configuration page, you see a view of the active hosted controls that are installed by the USD base solution (see Figure 13.31).

Image

FIGURE 13.31 Active Hosted Controls screen.

An example of a simple configuration would be to swap out Google to do searches instead of Bing. To do this, you would create a new hosted control for that as follows:

1. Click New.

2. In the form that appears (see Figure 13.32), enter Google for Name and Display Name and select Standard Web Application for USD Component Type. Select Internal WPF for Hosting Type and check the Application Is Global check box. Make sure you also enter MainPanel in the Display Group field to present the control in the main panel.

Image

FIGURE 13.32 Creating a new hosted control.

3. Click Save to create the new hosted control. You then see that some predefined UII actions are also created (and you find them by clicking the drop-down arrow next to the name of the hosted control you just created, as shown in Figure 13.33).

Image

FIGURE 13.33 UII actions menu option.

4. Click UII Actions to see a list of predefined actions that you can use or customize (see Figure 13.34).

Image

FIGURE 13.34 UII actions.

5. Open the default UII action and configure its properties, as shown in Figure 13.35. Then click Save.

Image

FIGURE 13.35 The default UII action.


Note

Don’t confuse the URL field in Figure 13.35 with the field where you set the Google URL. You set the default action’s URL field later, with the action calls, which are different from these UII actions.


The following predefined UII actions are created for this hosted control type:

Image Close—Closes the hosted control.

Image Default—Specifies the default action of the hosted control.

Image FireEvent—Fires a user-defined event.

Image GoBack—Responds to the back button in a browser instance.

Image GoForward—Responds to the forward button in a browser instance.

Image GoHome—Goes to the initial URL in a browser instance.

Image MoveToPanel—Moves the hosted control between panels at runtime.

Image Navigate—Navigates to a URL.

Image New_CRM_Page—Creates a new CRM record.

Image Open_CRM_Page—Opens an existing CRM record.

Image Popup—Opens a pop-up window.

Image RealignWindow—Specifies the location on a monitor in case you have more than one display.

Image RunScript—Injects JavaScript into the hosted control browser.

Image SetSize—Sets the width and height of the hosted control.

Image SetUserCanClose—Validates whether the user can close the hosted control.

Image WaitForComplete—Blocks the processing until the page content has finished loading.

You can use several types of USD hosted controls The fields you see depend on what hosted control type you select. Here is the complete list:

Image Agent Scripting—This control provides a call script where you can add instructions for the agents to guide them during a call with the customer (see Figure 13.36).

Image

FIGURE 13.36 Agent Scripting hosted control.

Image CCA Hosted Application—CCA stands for Customer Care Accelerator, and this control connects to a host, web, external, or remote hosted application—for example, the ones used for computer telephony integration (CTI). Usually you use this control with UII application adapters that are created with Visual Studio. Figure 13.37 shows the CCA Hosted Application control.

Image

FIGURE 13.37 CCA Hosted Application control.

Image SEEAdvanced Customizations,” later in this chapter, for information on CCA Hosted Application control configuration.

Image Connection Manager—This control manages the connection to the CRM server, and there should be only one of these control types running in the agent application. This control doesn’t expose any UII actions or events. The base solution has a control of this type already created, named Connection Manager, so if you create a new instance of this control type, the agent clients get the error shown in Figure 13.38.

Image

FIGURE 13.38 Connection Manager error message.

Image CRM Dialog—This control works with CRM dialogs, calling the StartDialog UII action, which starts a CRM dialog in the USD agent app (see Figure 13.39).

Image

FIGURE 13.39 CRM Dialog properties.

Image CRM Page—This control works with CRM pages such as forms, views, or dashboards (see Figure 13.40).

Image

FIGURE 13.40 CRM Page properties.

Image CTI Desktop Manager—This control manages the CTI adapter connections to control screen pop-ups, call routing, and other CTI features. The CTI adapters are usually created in C# with Visual Studio. By default, these hosted controls are put in the hidden panel (as shown in Figure 13.41).

Image

FIGURE 13.41 CTI Desktop Manager properties.

Image Debugger—This control helps in showing debugging information. The base solution and the other samples you can install with the USD package deployer come with predefined controls of this type (see Figure 13.42). See the “Troubleshooting” section, later in this chapter, for information on debugging configurations and customizations.

Image

FIGURE 13.42 Debugger properties.

Image Global Manager—This control is the core of the USD client application, and only one instance of this control can exist. The base solution comes with a control of this type, named CRM Global Manager, and it is vital for the USD agent client to run (see Figure 13.43). In this control type, you also find the configuration files for the multilanguage support that the USD agent application supports.

Image

FIGURE 13.43 Global Manager properties.

Image KM Control—This control displays knowledge base articles that can be stored in Parature or Dynamics CRM. With this control, agents can search, share, or email knowledge base articles without leaving the USD application.

Image Listener Hosted Control—This control traces and debugs diagnostics logs to audit the USD application behavior.

Image Panel Layout—You use this hosted control type to create custom layout panels that you can build using Visual Studio, for example. You will find a good example of this hosted control later on this chapter, in the “Advanced Customizations” section.

Image Ribbon Hosted Control—This control is necessary to host the ribbon, and it is for internal use only.

Image Session Lines—This control manages the session lines you configure in the Settings > Unified Service Desk > Session Lines section that are of the type Session Overview. SeesionExplorerPanel is the common display group for this type of control (see Figure 13.44).

Image

FIGURE 13.44 Session Lines properties.

Image Session Tabs—Much like the Session Lines hosted control, this control manages sessions like the ones you configure in the Settings > Unified Service Desk > Session Lines section that are of the type Session Name.

Image Standard Web Application—As you saw earlier, in the Google example, this control hosts a web browser that is used to present a configured page or URL.

Image Todo List—This control provides a section for follow-up actions.

Image Toolbar Container—This control creates toolbars that can contain buttons. The base solution comes with two of these type of controls created: one for the main toolbar and another for the About controls.

Image USD Hosted Control—You can create this type of control with Visual Studio to extend the USD application. A USD Hosted Control called Timer that comes with the base solution is controls the time elapsed for each session.

Image User Notes—This control provides an interactive notepad the agent can use to enter notes during the session. A User Notes control called Notes comes with the base solution.

Toolbars

Clicking Tollbars on the configuration page takes you to a page that shows the five predefined toolbars (see Figure 13.45). You can also add your own custom buttons to toolbars. To see how toolbar configuration works, follow these steps:

Image

FIGURE 13.45 Active Toolbars page.

1. On the Active Toolbars page, click the Main toolbar record. A page showing the Main toolbar buttons appears, as shown in Figure 13.46.

Image

FIGURE 13.46 Main toolbar buttons.

2. Click + at the top of the Buttons subgrid to create a new button for this toolbar. Figure 13.47 shows the page that appears.

Image

FIGURE 13.47 Creating a new button for the Main toolbar.

3. To create a new toolbar button for Google, enter Google in the Name and Button Text fields, in the Show Tab field find the hosted control Google that you created earlier, and click Save.

4. To add a new action, click the + icon at the top of the Actions subgrid and then click New in the actions lookup.

5. Enter Google in the Name field and select the Google hosted control you created earlier. Then select Navigate in the Action field and enter the url=http://www.google.com in the Data field (see Figure 13.48).

Image

FIGURE 13.48 Creating a new action call.

6. Click Save and then Close.

To test this new control, restart the USD client application, and you see the new Google button added to the top toolbar. When you click this button, you see a new tab open, with the browser window pointing to the Google URL, as shown in Figure 13.49.

Image

FIGURE 13.49 Testing the Google button in the USD client.

Action Calls

Clicking Action Calls on the configuration page allows you to manage all the action calls, including creating custom actions and modifying existing ones. Figure 13.50 shows the Active Actions page.

Image

FIGURE 13.50 Active Actions page.

The base solution installs 54 action calls by default. You can easily modify them. The sample action calls are helpful because they display information related to how the USD reads data. Notice the case title in the search URL and the context used there.

For example, instead of creating a new Google button (as shown in the previous example), you could simply change the Bing URL to the URL of some other search engine. As a result, the Bing action call would still be there, but the URL would be for whatever search engine you entered. Figure 13.51 shows the details of the Initiate Bing Search action call, including how you can pass parameters to the URL—in this case, the case title and the subject name for the search.

Image

FIGURE 13.51 Initiate Bing Search action call.

Events

Events are related to hosted controls; every time you create a new hosted control, events are created that depend on the USD component type you selected. Figure 13.52 shows the Active Events page.

Image

FIGURE 13.52 Active Events page.

For example, a standard web application has two events: BrowserDocumentComplete and PopupRouted.

Entity Searches

Entity searches show the entities you can use in the search button that appears in the top toolbar (see Figure 13.53). By default, the base solution adds records for Contact and Account entities.

Image

FIGURE 13.53 Active Entity Searches page.

If you want to add another entity in a search, you can do so by clicking New. For example, suppose you want to allow the user to search for leads. To do this, you need to add the Lead entity, which is not by default shown as an option (see Figure 13.54).

Image

FIGURE 13.54 New Entity Search page.

To add the Lead entity, on the New Entity Search page click +New to create a new entity type. Enter Lead in the Name field, as shown in Figure 13.55, and click Save.

Image

FIGURE 13.55 A new entity type for Lead.

Now you need to complete the Fetch XML field on the New Entity Search page. The easiest way to do this is to use the Advanced Find tool and click the Download FetchXML button to get the Fetch XML code, which is as follows:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="lead">
    <attribute name="fullname" />
    <attribute name="createdon" />
    <attribute name="statuscode" />
    <attribute name="subject" />
    <attribute name="leadid" />
    <order attribute="createdon" descending="true" />
    <filter type="and">
      <condition attribute="statecode" operator="eq" value="0" />
    </filter>
  </entity>
</fetch>

Figure 13.56 shows the embedded Fetch XML code for the Lead entity search.

Image

FIGURE 13.56 Entity search for the Lead entity with Fetch XML.

Because you modified the button for the Google search earlier in this chapter, you now need to edit the search toolbar so the agents can search for leads. Therefore, on the configuration page, select Toolbars and edit the HA:Search toolbar; create a new button there with the name Lead and create a new action call for the lead search, as shown in Figure 13.57 and Figure 13.58.

Image

FIGURE 13.57 Search lead action call.

Image

FIGURE 13.58 Lead button.

Figure 13.59 shows the HA:Search buttons with Leads added to it.

Image

FIGURE 13.59 HA:Search with the Leads button.

If you now restart the USD client, the application will allow agents to search on leads. Figure 13.60 shows the result of such a search. Note that the navigation bar shows the Leads button for quick navigation.

Image

FIGURE 13.60 USD client with the lead search feature added.

Window Navigation Rules

The window navigation rules help in routing—for example, routing a search to one entity type to another (see Figure 13.61).

Image

FIGURE 13.61 Window navigation routes.

To create a new navigation rule, click +New to open the window shown in Figure 13.62 and complete the required fields and routing logic.

Image

FIGURE 13.62 Creating a new window navigation rule.

Session Lines

USD allows users to open, maintain, and work on different calls, and session lines allow the system to control the calls to the application.

Session lines can be either of two types:

Image Session Name—The Session Name type displays a single field like this: [[account.name]].

Image Session Overview—The Session Overview type displays a grid with all the session lines, as shown in Figure 13.63.

Image

FIGURE 13.63 Session lines.

When you create a new session line, you must specify the type, which you can’t change it after you save the session line.

To create a new session line, click +New and then fill out the screen that appears (see Figure 13.64).

Image

FIGURE 13.64 Creating a new session line for Lead.

The account details session display is configured with the following code in the base solution:

<Grid Margin="0"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:CCA="clr-namespace:Microsoft.Crm.UnifiedServiceDesk.
      Dynamics;assembly=Microsoft.Crm.UnifiedServiceDesk.Dynamics">
<Grid.Resources>
 <CCA:CRMImageConverter x:Key="CRMImageLoader" />
<Style x:Key="ImageLogo" TargetType="{x:Type Image}">
<Setter Property="Width" Value="16" />
<Setter Property="Height" Value="16" />
<Setter Property="Margin" Value="5" />
</Style>
    </Grid.Resources>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
    </Grid.RowDefinitions>
<TextBlock Margin="5,6,0,0" Grid.Row="0" TextWrapping="Wrap" Padding="5,0,0,5"
FontFamily="Tahoma" FontSize="12" Text="Account Name: [[account.name]x]"
Foreground="#262626"/>
<StackPanel  Orientation="Horizontal"  Grid.Row="1"  Margin="5,0,0,0">
<Image Style="{DynamicResource ImageLogo}" Source="{Binding Source=msdyusd_Email16,
Converter={StaticResource CRMImageLoader}}" />
<TextBlock  TextWrapping="Wrap" Padding="5,0,0,5" Text="Email: [[account.
emailaddress1]+x]" Foreground="#262626"  VerticalAlignment="Center"/>
</StackPanel>
<StackPanel Orientation="Horizontal"  Grid.Row="2" Margin="5,0,0,0">
<Image Style="{DynamicResource ImageLogo}" Source="{Binding Source=msdyusd_Phone16,
Converter={StaticResource CRMImageLoader}}" />
<TextBlock  TextWrapping="Wrap" Padding="5,0,0,5" Text="Phone: [[account.telephone1]
x]" />
</StackPanel>
<TextBlock Margin="5,0,0,0" Grid.Row="3" TextWrapping="Wrap" Padding="5,0,0,5"
FontFamily="Tahoma" FontSize="12" Style="{DynamicResource AutoCollapse}"
Text="Primary Contact: [[account.primarycontactid.name]x]" Foreground="#262626"
VerticalAlignment="Center"/>
</Grid>

This code then is rendered in the panel of an account record that you open with the USD client, as shown in Figure 13.65.

Image

FIGURE 13.65 Account details Session Overview line.


Note

The code used here is XAML and is the same code used in WPF applications. If you make any update here, you must restart the USD client to see the changes.


Agent Scripts

Agent scripts help an agent follow the necessary steps to perform the work as expected (that is, process-driving guidance). Figure 13.66 shows the default agent scripts.

Image

FIGURE 13.66 Agent scripts.

To create a new agent script, click the +New and then fill out the New Agent Script Task page that appears (see Figure 13.67).

Image

FIGURE 13.67 New Agent Script Task page for a Lead entity.

Save the new agent script so you can optionally create answers and click +at the top of the Answers subgrid to open the New Agent Script Answer page, shown in Figure 13.68.

Image

FIGURE 13.68 New Agent Script Answer page.


Note

While you can add agent scripts, complex routing and if/then statements require complex customizations. A good solution is to use TKDialogs for this, as it is a robust and supportable tool for just this need. Find it at www.teamknowledge.co.uk.


Scriptlets

Sciptlets are JavaScript code snippets that you can use to replace parameters. The base solution comes with a scriptlet to resolve the case name by the case title (see Figure 13.69).

Image

FIGURE 13.69 Scriptlets.

To create a new scriptlet click +New and complete the required fields in the page that appears (see Figure 13.70).

Image

FIGURE 13.70 New scriptlet to convert a lead.

Forms

Forms are used to store declarative form definitions, and the base solution doesn’t come with any forms created by default. Figure 13.71 shows the Active Forms page (which is empty).

Image

FIGURE 13.71 Active Forms page.

To create a new form, click +New and complete the required fields in the page that appears (see Figure 13.72).

Image

FIGURE 13.72 New form for a lead.

After you have completed and saved a form, it can be referenced in the USD interface for agent interaction.

Options

Options are used to create name/value pairs that can be used by other components. Some of the options you can configure are enabling and disable auditing flags. Figure 13.73 shows the Active UII Options page.

Image

FIGURE 13.73 Active UII Options page.

To create a new option, click +New and complete the required information, as shown in Figure 13.74.

Image

FIGURE 13.74 New Option page.

User Settings

User settings are used to configure personal settings via programmatic manipulation of the values stored in the settings configuration. They allow users to have different experiences within the USD interface.

To create a new user setting, select User Settings on the configuration page and then, on the page shown in Figure 13.75, click +New to create a new setting.

Image

FIGURE 13.75 Active User Settings page.

Figure 13.76 shows the default values for user settings.

Image

FIGURE 13.76 Creating a new user setting.

Customization File

The customization file contains the generic customization file for the USD. Figure 13.77 shows the Active USD Customization Files page.

Image

FIGURE 13.77 Active USD Customization Files page.

The Default Package customization, shown in Figure 13.78, can be modified or copied for enhanced configuration.

Image

FIGURE 13.78 Default Package customization file record.

Configuration

You can use a configuration to associate the Audit & Diagnostic setting records with users and hosted controls. In addition, you can manage security by setting which user can use each hosted control. Figure 13.79 shows the Active Configuration page.

Image

FIGURE 13.79 Active Configuration page.

It is necessary to have at least one record here for the standard audit to work. Then you can add the users who will use this configuration. Each user can have one only configuration set, and the USD solution adds a lookup in the System User entity, and you can also select the configuration to be used by that user. Figure 13.80 shows a new configuration record.

Image

FIGURE 13.80 New configuration record.

Audit & Diagnostics Settings

You use Audit & Diagnostics Settings to troubleshoot the USD client. This section is especially useful when you’re developing complex customizations. Figure 13.81 shows the default settings.

Image

FIGURE 13.81 Active Audit & Diagnostics Settings page.

You can enable or disable the following auditing options (see Figure 13.82):

Image Activity Tracking

Image Activity Tracking for Customer Session

Image Activity Tracking for Hosted Controls

Image Activity Tracking for Events

Image Activity Tracking for Agents Scripts

Image Activity Tracking for Agent Login

Image Activity Tracking for UII Calls

Image Activity Tracking for Action Calls

Image Activity Tracking for Sub Action Calls

Image Activity Tracking for Windows Navigation Rules

Image Caching

Image Cache Size

Image

FIGURE 13.82 Default A&D Setting page.

Regardless of these settings, you need to configure both what you want to audit or log and what is then routed to the listener hosted controls that will be responsible for storing this information in files, Windows event log, and so on.

There are two main ways to see the audit information generated by the USD. One way is to create a listener hosted control, as explained in the USD Developer Guide in the UII SDK. Another way, which doesn’t require development of a listener assembly (and is therefore a little easier), is to add the audit flag in the options settings; you can do this by navigating to Settings > Unified Service Desk > Options. These are the options you can then use for auditing:

Image AuditFlagAction

Image AuditCacheMaxSize

Image AuditFlagAgentState

Image AuditFlagHostedApplication

Image AuditFlagInteraction

Image LoadSessions

Image MaxNumberOfSessions

Image ProcessTerminationThreshold

Image ShowScriptsError

Image AuditFlagLogin

Image AuditFlagSession

Image AuditFlagWorkflow

Setting any of the preceding option to 1 enables that audit option. Setting it to 0 disables that audit. One other option related to auditing, AuditNoCache, must be set to either True or False.


Note

To start auditing, you must create a configuration record and associate the Audit & Diagnostic Setting record to it.


Troubleshooting

When adding and changing configurations and applying custom configurations and customizations, sometimes the application doesn’t behave as expected. In such cases, you need to debug the application. To do so, click the gear in the top-right corner and select Debug (see Figure 13.83).

Image

FIGURE 13.83 Opening the Debugger tab.

Advanced Customizations

To extend the USD, you need to download and install the UII (User Interface Integration) SDK package. You can find it at the same place you download the MicrosoftDynamicsCRM2016UII.exe: https://www.microsoft.com/en-us/download/details.aspx?id=50032. You install the UII SDK on your development by executing the MicrosoftDynamicsCRM2016UII.exe file and then completing the installation steps.

With the UII you can extend USD with the following components:

Image UII Application Adapter

Image UII web application Adapter

Image UII Windows Forms Customer Search Control

Image UII Windows Forms Hosted Control

Image UII WPF Customer Search Control

Image UII WPF Hosted Control

Image USD CTI Connector

Image USD Custom Hosted Control

Image USD Custom Panel Layout

You need to use Visual Studio (version 2012, 2013, or 2015) to build and create these components.


Note

For more information on advanced customizations, see the Unified Service Desk 2.0 Developer Guide, which is available at https://msdn.microsoft.com/library/dn864923.aspx.


To start developing these types of controls with Visual Studio, you can download and install the Dynamics CRM SDK and then install the CRMSDKTemplates.vsix that is in the SDKTemplates folder. An alternative method is to follow these steps:

1. From Visual Studio, select Tools > Extensions and Updates. Then, in the Online node on the left, search for the Microsoft Dynamics CRM SDK (see Figure 13.84).

Image

FIGURE 13.84 Microsoft Dynamics CRM SDK Templates download.

2. Select Microsoft Dynamics CRM SDK Templates and click the Download button. The window shown in Figure 13.85 appears.

Image

FIGURE 13.85 Install Microsoft Dynamics CRM SDK Templates dialog.

3. Click the Install button.

4. When the installation finishes, click Close.

This CRM SDK installs the necessary Visual Studio templates you need to build the different controls. When they are installed, you can create new UII application adapter projects, under the Templates > Visual C# > CRM SDK Templates > Unified Service Desk, as shown in Figure 13.86.

Image

FIGURE 13.86 UII Application Adapter project.


Note

Refer to the UII SDK for examples that also show you how to pass data between USD client and external applications.


USD Custom Panel Layout

With a USD Custom Panel Layout type of component, you can do things like change the default logo that is displayed in the USD interface. This is helpful if you want to use your company logo to brand the USD application. To do this, follow these steps:

1. Open Visual Studio and select File > New Project.

2. Go to Templates > Visual C# > CRM SDK Templates > Unified Service Desk and create a new USD Custom Panel Layout project

3. Double-click the CustomLayout.xaml file to open it from the Solution Explorer window and find this code line:

<Image Grid.Column="0" Source="{Binding Source=msdyusd_Logo,
Converter={StaticResource CRMImageLoader}}"  Style="{DynamicResource
ImageLogo}"   />

and replace it with the following:

<Image Grid.Column="0" Source="C:CRM 2016 BookSamplesChapter 13
USDCustomPanelLayout1USDCustomPanelLayout1Webfortis New Logo.png"  />

4. Build the solution, copy the generated assembly (USDCustomPanelLayout1.dll) that is found in the bindebug folder of your project to the USD application directory (usually C:Program FilesMicrosoft Dynamics CRM USDUSD if you installed in the default directory), and register the assembly. (You will need to do this on every machine of every agent that has the USD installed.) You also need to copy the image file of the logo to the exact location you used on the target client machines.

If you want to avoid having to copy the image file of the logo, you can create a web resource in Dynamics CRM and use the following code to reference the source of the image in the same code line you modified in step 3 above:

<Image Grid.Column="0" Source="{Binding Source=new_WebfortisLogo,
Converter={StaticResource CRMImageLoader}}" Style="{DynamicResource ImageLogo}" />

To register the component, follow these steps

1. Go to Dynamics CRM and navigate to Settings > Unified Service Desk.

2. Click the Hosted Controls option.

3. Create a new hosted control and enter a name for it. Select Panel Layout in the USD Component Type field. In the PanelType field select User Defined. Check the Application Is Global check box and leave Display Group set to MainWorkArea. Figure 13.87 shows the new USD custom Panel Layout hosted control.

Image

FIGURE 13.87 New USD custom Panel Layout hosted control.

4. Scroll down and set Application Is Dynamic to No and make sure the User Can Close check box is not checked. Set Assembly URI with the Visual Studio project namespace and set Assembly Type to the Visual Studio project namespace with the class name shown in Figure 13.88.

Image

FIGURE 13.88 USD custom Panel Layout namespace and assembly type.

5. Click Save.

6. Deactivate any existing hosted control with the type Panel Layout.

7. Start the USD client to see the logo and the new Panel Layout hosted control. Figure 13.89 shows the new logo.

Image

FIGURE 13.89 USD custom Panel Layout with a company logo.

Summary

This chapter looks at the Unified Service Desk solution and how to customize and configure it. You’ve learned how to install the USD for both the server and client, and you’ve learned different ways to configure the USD application client by adding records in the different entity types and hosted controls in the USD solution. This chapter also covers adding and configuring auditing and troubleshooting, as well as what is necessary if you are planning to extend the USD client by creating custom hosted controls using the USD SDK and the UII SDK. You have also learned how to brand the USD client by adding a company logo to the USD client application.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset