Skip to main content
Version: 6.4

Unified Service Desk Configuration

This guide describes b+s Connects for Microsoft Dynamics in Unified Service Desk (USD) additional/advanced configurations.

Prerequisites

  • b+s Connects for Microsoft Dynamics installed and configured as outlined here.
  • The Channel Communication Control is added to the Unified Interface form (e.g. contact) as described in Step 2 here.

Click-to-call

Step 1: Navigate to Hosted Controls.

Hosted Controls

Step 2: Search and open the Hosted Control which triggers the onclicktoact event (e.g. Contact).

Step 3: Specify the following properties.

PropertyValue
Hosting TypeChrome Process

Step 4: Click Save to keep your changes.

Step 5: Navigate to Action Calls.

Action Calls

Step 6: Search for and open "Raise click to act event on CIF control".

Step 7: Provide the following properties and save your changes.

PropertyValue
NameRaise click to act event on CIF control
Hosted ControlbsConnects
ActionRaiseCifClientEvent
Dataevent = 'onclicktoact'
data = '[[data]+]'

Step 8: Navigate to Events.

Events

Step 9: Create a new event, provide the following properties and save your changes (this example utilizes Contact).

PropertyValue
NameOnClickToAct
Hosted ApplicationContact
Active ActionRaise click to act event on CIF control
info

Limitation: USD CIF 1.0 translates + signs to spaces, in order to be able to dial a number with a leading plus, adjust the click-to-dial rules in the ServiceLayout. Example: [1,10]->^\s(\d+)->+$1

Collapsed Mode

Step 1: Navigate to Hosted Controls.

Hosted Controls

Step 2: Search for and open "Custom Panel".

Custom Panel Hosted Control

Step 3: Edit the XAML definition.

Custom Panel Xaml

Step 4: Find inside of <Grid> with Grid.Row="2" and AutomationProperties.Name="Main Panels" the <Grid.ColumnDefinitions>.

Custom Panel Xaml Grid

Step 5: Add <ColumnDefinition Width="auto" /> before the closing tag </Grid.ColumnDefinitions>.

Step 6: Add the following XAML code after the </Grid.ColumnDefinitions>.

<Grid Grid.Column="3" x:Name="CnxGrid" Width="300">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<USD:USDDeckTabPanel x:Name="CnxPanelButton" AutomationProperties.Name="CNX Panel Button" Grid.Row="0" Height="25" />
<USD:USDDeckTabPanel x:Name="CnxPanel" AutomationProperties.Name="CNX Panel" Grid.Row="1" />
</Grid>

Step 7: Check if the code looks like:

<Grid Grid.Row="2" AutomationProperties.Name="Main Panels" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" /> <!-- this is the newly added ColumnDefinition -->
</Grid.ColumnDefinitions>
<Grid Grid.Column="3" x:Name="CnxGrid" Width="300">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<USD:USDDeckTabPanel x:Name="CnxPanelButton" AutomationProperties.Name="CNX Panel Button" Grid.Row="0" Height="25" />
<USD:USDDeckTabPanel x:Name="CnxPanel" AutomationProperties.Name="CNX Panel" Grid.Row="1" />
</Grid>

Step 8: Click Save to keep your changes.

Step 9: Create a new hosted control and provide the following properties.

PropertyValue
NameCustom Panel Button
Unified Service Desk Component TypeStandard Web Application
Hosting TypeChrome Process
Application is Globalchecked
Display GroupCnxPanelButton
Application is DynamicNo

Step 10: Click Save to keep your changes.

Step 11: Search and open the hosted control "bsConnects".

Step 12: Adjust the following property.

PropertyValue
Display GroupCnxPanel

Step 13: Navigate to Action Calls.

Action Calls

Step 14: Create a new action call.

Create new action call

Step 15: Provide the following properties and save your changes.

PropertyValue
NameInitialize UI mode to full on context
Order1
Hosted ControlCRM Global Manager
ActionCopyToContext
DatabsConnectsMode=1

Step 16: Create a new action call with the following properties.

PropertyValue
NameSet mode for CIF
Order1
Hosted ControlDashboard
ActionRunXrmCommand
DatawebResourceName=cnx_CIFXrmCommands.js
functionName=setMode
'[[mode]+]'

Step 17: Click Save to keep your changes.

Step 18: Create a new action call with the following properties.

PropertyValue
NameLoad collapse button
Order1
Hosted ControlCustom Panel Button
ActionNavigate
Dataurl=/WebResources/cnx_collapsebutton.html

Step 19: Click Save to keep your changes.

Step 20: Create a new action call with the following properties.

PropertyValue
NameChange UI mode
Order1
Hosted ControlbsConnects
ActionRunScript

Data (copy&paste):

var oldMode = '[[$Context.bsConnectsMode]+]';

if (oldMode === '1') {
window.open('http://event/?eventname=SetMode&mode=0');
} else {
window.open('http://event/?eventname=SetMode&mode=1');
}

Step 21: Click Save to keep your changes.

Step 22: Navigate to Events.

Events

Step 23: Create a new event.

Create an event

Step 24: Provide the following properties and save your changes.

PropertyValue
NameToggleMode
Hosted ApplicationCustom Panel Button
Active ActionsChange UI mode

Step 25: Create a new event with the following properties.

PropertyValue
NameSetMode
Hosted ApplicationbsConnects
Active ActionsSet mode for CIF

Step 26: Click Save to keep your changes.

Step 27: Search for and open the event "DesktopReady".

Step 28: Adjust the following properties and save your changes.

PropertyValue
Hosted ApplicationCRM Global Manager
Active ActionsLoad collapse button
Initialize UI mode to full on context

Custom Colors

Custom colors can be applied to the b+s Connects for Microsoft Dynamics.

Step 1: Navigate to Unified Service Desk Administrator.

Navigate to USD App

Step 2: Navigate to Hosted Controls.

Navigate to Hosted Controls

Step 3: Search for and open "bsConnects".

Step 4: Copy mainColor=[mainColor]&secondaryColor=[secondaryColor] in Custom Parameters.

Step 5: Replace [mainColor] and [secondaryColor] with the desired colors.

Customize Colors

Examples

The values of the colors can be defined in hexadecimal, RGB or HSL.

Custom Parameter
HexadecimalmainColor=#001433&secondaryColor=#990000
RGBmainColor=rgb(0,20,51)&secondaryColor=rgb(153,0,0)
HSLmainColor=hsl(216,100%,10%)&secondaryColor=hsl(0,100%,30%)

Step 5: Save the configuration.

Customize USD

USD is highly customizable and the behavior of USD can be adjusted to meet customer requirements.

Example: if the customer wants to screen-pop a record on a specific criteria, the action call can be adjusted as follows:

Step 1: Navigate to Action Calls.

Action Calls

Step 2: Provide the following properties and save your changes.

PropertyValue
NameOpen form for CIF
Order-
Hosted ControlDashboard
ActionRunScript

Data (copy&paste):

function rejectWithError(CifHostedControl, corrId, err, apiname){
var data = "corrId='"+ corrId + "' %0D%0A";
data += "action='reject' " + "%0D%0A";
data += "result=" + encodeURIComponent(JSON.stringify(err)) + "%0D%0A";
data += "api='" + apiname + "'";
window.top.notifyUSD("http://uii/"+CifHostedControl+"/UpdateCifContext?"+ data);
}

function resolvePromise(CifHostedControl, corrId, res, apiname){
var data = "corrId='"+ corrId + "' %0D%0A";
data += "action='resolve' " + "%0D%0A";
data += "result=" + encodeURIComponent(JSON.stringify(res)) + "%0D%0A";
data += "api='" + apiname + "'";
window.top.notifyUSD("http://uii/"+CifHostedControl+"/UpdateCifContext?"+ data);
}

function openForm(CifHostedControl, corrId, formOptions, formParams){
if("[[$Context.Id]+]".toLowerCase() === formOptions.entityId.toLowerCase()) {
resolvePromise(CifHostedControl, corrId, { message: 'record already open' }, "openform");
return;
}

Xrm.Navigation.openForm(formOptions, formParams).then(
function(res){
resolvePromise(CifHostedControl, corrId, res, "openform");
},
function(err){
rejectWithError(CifHostedControl, corrId, err, "openform");
}
);
}

openForm('bsConnects','[[corrId]+]',[[entityFormOptions]+],[[entityFormParameters]+]);