Skip to main content
Version: 6.4

Service Layout

Service Layouts manage the Agent Desktop (Gadget) behavior. For example: which records should be queried in Dynamics 365 to identify a caller, or how phone numbers should to be translated.

Step 1: Navigate to b+s Connects for Cisco Contact Center.

b+s Connects for Cisco Contact Center

Step 2: Open "Service Layouts".

Navigate to Service Layout

Step 3: From the list of Active Service Layouts, select and open the Service Layout for which a feature should be configured.

Settings

Step 1: Provide a Name. This name will be displayed in any related record.

Step 2: Provide these settings:

General Settings

SettingDescription
Default ViewSets the default view of the gadget.
Possible values are:
Home, Team View, Queue View, Supervisor View, Team Messages or Custom Integration View.
By default it is set to Home.
Enable team viewEnables or Disables the team view accessible from the navigation menu.
More information can be found here.
Enable queue viewEnables or Disables the queue view accessible from the navigation menu.
More information can be found here.
Enable supervisor viewEnables or Disables the supervisor view accessible from the navigation menu.
More information can be found here.
Enable Time in State BarEnables or Disables the agent state timers.
Disable silent monitoring indicatorEnables or Disables visibility of the silent monitoring indicator icon for an agent.
Agent state after loginDefines the agent state after the login.
Possible values are ready, not_ready or the reason code of the not ready reason.
Available Mobile Agent ModeDisables or sets the available mobile agent modes.
More information can be found here.
Uncollapse on Incoming CallEnables or Disables an automatic uncollapse for an incoming call.
Screen pop on incoming call modeDisables or sets the available screen pop mode for incoming calls.
More information can be found here.
Enable autocomplete call logEnables or Disables automatic completion of the phone call log after the call ends. This corresponds to the "Mark Complete" menu item for a phone call record.
Enable Screen Pop on Consult and Transfer CallEnables or Disables the screen pop on consult and transfer calls.
Automatically delete call logs for unanswered callsEnables or Disables automatic deletion of phone call logs for calls that haven't been answered by the agent (e.g. RONA)
Disable direct transferEnables or Disables the function to directly transfer a phone call to another agent.
Call Variable for Share Record (enables share record)Defines the name of the call variable to share a record (e.g user.ECCRecordShare).
In order to have consistent phone call log handling, share record must be enabled.
If undefined, share record will be disabled.
URL of the language filesDefines the URL of the translation files for the languages. It must contain the placeholder {{locale}} for the language code ID.
More information can be found here.

Mobile Agent

The following options are available:

SettingDescription
DisabledAgents can't login with mobile agent
Agent ChooseThe agent can login with a call-by-call or nailed connection
Call By CallThe agent can only login with a call-by-call connection
NailedThe agent can only login with a nailed connection
info

Make sure the mobile agent setting in the Service Layout matches the configuration in CCE.

Additionally to the above mentioned mobile agent modes, the agent still has the option to login as a "regular" agent.

Screen pop on incoming call mode

The following options are available:

SettingDescription
DisabledNo record will be opened.
ActivityThe phone call log will be opened. More information can be found here
ParticipantA participant lookup will be done. If there's only one result the found record will be opened. More information can be found here
CaseA new case with the configured data pre-filled will be opened. More information can be found here

Language Files

Step 1: Download the example language file.

Step 2: Change the locale in the file name to the BCP 47 code and change file extension to *.js.

Example: bsconnects_language_de-DE.js.

Step 3: Change the values in the language file.

Step 4: Upload the file to Microsoft Dynamics and get it's URL. More information can be found here.

Step 5: Enter the URL in the field URL of the language files.

Example: https://<yourorg>.crm<num>.dynamics.com/WebResources/<prefix>bsconnects_language_de-DE.js

Step 6: Remove the BCP 47 code in the URL.

Example: https://<yourorg>.crm<num>.dynamics.com/WebResources/<prefix>bsconnects_language_de-DE.js

Step 7: Add the {{locale}} placeholder in place of the BCP 47 code.

Example: https://<yourorg>.crm<num>.dynamics.com/WebResources/<prefix>bsconnects_language_{{locale}}.js

URL of the Language Files

info

The gadget will get translated only if the uploaded language file matches the current crm language.
To learn how to configure your crm language go here.

Click-to-dial

The section click-to-dial allows the administrator to configure multiple dialing rules which are applied to the number stored in the CRM.

Click-to-dial configuration example

FieldDescription
DescriptionDescriptive name for the rule
Translation RulePlease refer to Phone Number Translations for more information on the Translation Rule.

To enable a non-standard field for click-to-dial, please refer to System Configuration

Set the phone number as the name on a phone call

When you use click-to-dial on a phone call record, the displayed name on the phone call will be the title by default (e.g. Call - 2020-11-16T16:13:30.079Z).

To display the phone number instead go to the Lookup Layout and add a configuration entry for the phonecall entity:

EntityNameSubtitle1Subtitle2HomeMobileWork
phonecallphonenumber-----

Speed Dial Numbers

Scroll to the section "Speed Dial Numbers" and define the list of Speed Dial numbers. Each Speed Dial number has a description, number and a type.

Configure Speed Dial Numbers

Step 1: Provide a dial button label name. The description should help the agent pick the right number.

Step 2: Select a call type from the dropdown list. Below is a brief explanation of the available types and their function.

TypeFunction
DialInitiates a call to the configured number
Direct TransferTransfers the work item (call) to the configured number
Single Step ConferenceInitiates a consultation call to the configured number and completes the conference as soon as the consulted party answers the call
ConsultInitiates a consultation call to the configured number

Step 3: Provide a phone number. The number will be dialed after the Speed Dial button is clicked.

Speed Dial Card Height

Configure the maximum height of the Speed Dial Card. Supported units are:

mm, in, px, pt, pc, em, ex, ch, rem, vw, vh, vmin, vmax or %.

If the provided value doesn't include a unit definition, the default is px.

For details on each unit please refer to this page.

The card will not be higher than the provided value. If the height of the card is exceeded, the content will become scrollable.

FieldFunction
Height on the Home ViewMaximum height of the card visible on the home view
Height on a callMaximum height of the card displayed on a call

Single Step Conference Blacklist

Configure numbers and ranges for which the Single Step Conference should not be completed automatically (like for an IVR). This field expects a regular expression.

Example:

Block CTI Ports 345900-345909 and all numbers (Route Pattern) starting with 888888888: ^34590[0-9]|888888888\d*$

info

This field is required if you want to allow agents to Single Step Conference other agents via a CCE/CCX queue.

Directory Lookup

The directory lookup uses the input of the dialing field and searches in the configured fields of a Microsoft Dynamics entity. You can set filter rules on Microsoft Dynamics selected entities by using OData filters syntax.

The found results are shown with the name and the telephone numbers for home, mobile and work. The corresponding fields are configured in the lookup layout configuration.

Directory numbers can also be included in the search. For a full description refer to Directory Number.

Configuration

Step 1: Provide these settings:

Directory Lookup

SettingDescription
Min. length of characters to searchSets the minimal length of characters that must be entered to start the search.
Default: 2
Delay between typing and searchingSets the delay in milliseconds after typing to start the search.
Default: 300

Step 2: Select an entity from the dropdown field. The provided options are the logical names of the entities.

Step 3: Insert a filter rule. Use OData syntax for filters and apply one or more lookup parameters to it.

For more information about OData filters please visit: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#_Toc505773218

The lookup parameter for the entered string is '{searchText}'

Example:

If you would like to search for the entered text in the fields "telephone1" and "fullname", the rule should be:

contains(fullname, '{searchText}') or contains(telephone1, '{searchText}')

Directory Lookup

Directory numbers

Step 1: Click on Add Existing Directory Numbers.

Add Directory Number

Step 2: Search for and select the desired Directory Numbers.

Search for Directory Numbers

Step 3: Click Add.

info

The lookup results are limited to 30 directory numbers.

Refer to Directory Number for more information.

Participant Lookup

info

If BAAccountNumber is available and referenced in the participant lookup, rules without {BAAccountNumber} will not be used for the lookup.

Step 1: Set rules to adjust the phone number (ANI) for the lookup in the crm.

Participant Lookup Table 1

FieldDescription
DescriptionDescriptive name for the rule.
Translation RulePlease refer to Phone Number Translations for more information on the Translation Rule.

Step 2: Select an entity from the dropdown field and enter a filter rule.

Participant Lookup Table 2

FieldDescription
EntityThe provided options are the logical names of the entities.
FilterUse OData syntax for filters and apply one or more lookup parameters to them.

For more information about OData filters please visit: http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#_Toc505773218

Available lookup parameters are:

  • {ani} : Automatic Number Identification

  • {callVariables<1-10>}: The contents of all call variables

  • {user.<Your Variable>}: The contents of all expanded call context variables

  • {BAAccountNumber}: The content of the Outbound Option account number variable. More information on the handling of this variable can be found here.

Each field of an entity has a type (e.g string, guid). Please make sure that for string attributes the lookup parameter is surrounded by an apostrophe ('), and for non-string attributes (e.g. accountid) no apostrophes are used.

For string attributes the value empty is used if the variable contains no data and for non-string attributes the value null is used.

Examples:

RuleDescription
telephone1 eq '{ani}'telephone1 is equal to ani
telephone1 eq '{user.ean}'telephone1 is equal to ean
contactid eq {BAAccountNumber}contactid is equal to the guid stored in BAAccountNumber
telephone1 eq '{ani}' or telephone1 eq '{user.ean}'telephone1 is equal to ani or ean
mobilephone eq '{ani}' and contactid ne {BAAccountNumber}mobilephone is equal to ani and contactid not equal to the BAAccountNumber
contains(telephone1, '{callVariable3}')telephone1 contains the Peripheral Variable 3

Lookup Layout

Each row in the Lookup Layout defines which fields of a CRM record are mapped to which part of the UI, you can add and remove entries for each entity type.

Example contact layout configuration

The following graphics depict how and where the fields will be shown on the b+s Connects for Microsoft Dynamics gadget. If Subtitle1 and Subtitle2 are not configured the entity name will be displayed - e.g. contact, account, lead.

Click-to-dial and participant lookup:

Click-to-dial and Participant-lookup layout configuration

Directory lookup:

Directory-lookup layout configuration

Links are shown on the Create tab and can either point to a target within the CRM or to an external URI.

Create tab location

Step 1: Go to the Create new record links section.

Create new record link configuration

Step 2: Add a new entry.

Each entry consists of a Link Name and corresponding data (Form data or URI).

Link Name is the text shown on the user interface, it should help the agent pick the right "create action" during a call. The create tab is hidden on the user interface when there are no links configured.

For links pointing to a CRM resource: right column defines the entity to open and the fields which should be pre-filled with values. Further information can be found in chapter Links pointing to CRM records.

For external links: right column contains the URI. Further information can be found in chapter Links pointing to external URIs.

This field has the following format:

entity=<LogicalName>&<Attribute1>={<Data>}

LogicalName: Dynamics 365 entity logical name.

AttributeN: Attribute of the entity which should be prepopulated with data.

Data: Information retrieved from the current call or from the participant lookup if there's exactly one match.

Examples:

Form data or URIDescription
entity=contact&telephone1={ani}&mobilephone={callVariable1}Open a contact and pre-populate content of callVariable1 to mobilephone field.
entity=incident&title={callVariable1}&customerid={id}&customeridtype=account&customeridname={name}Open an incident and pre-populate content of callVariable1 into title field and set found participant as customer.

Please refer to Possible Values for more information on available call variables. A list of available participant variables can be found in chapter Participant data.

If the data in the Form data or URI column does not start with entity=, it is considered an external URI. Any URI scheme supported by the browser can be provided.

Examples are: https://www.google.com/search?q={name}, mailto:info@example.com

Please refer to Possible Values for more information on available call variables. A list of available participant variables can be found in chapter Participant data.

Participant data

ValueDescription
idUnique identifier of the participant record
namePrimaryNameAttribute of a CRM record or as configured in the Lookup Layout
subtitle1, subtitle2Additional field data retrieved from the participant record as configured in the Lookup Layout

Call data

Items routed over a script in a Cisco Contact Center environment can be enriched with call data. This data consists of the ten call variables, ECC variables, and additional data such as call type, queue name or outbound option variables. Entries can be added or removed. The first field contains the label that will be displayed and the second is the name of the call variable.

Call data configuration

In the gadget, the configuration should appear as it does below. Notice that the label Preferred Agent is not displayed. This is is either because the ECC variable user.eccPreferredAgent does not exist or is empty.

Call data on gadget

info

Empty or non-existent variables will never be displayed.

Possible Variables

The following variables can be displayed:

ValueDescription
callVariable1Cisco Contact Center call variable 1
...
callVariable10Cisco Contact Center call variable 10
user.eccVariableNameCisco Contact Center expanded call context variable. The name is dependent on the ECC variable name. An ECC variable can be either a scalar variable or an array element. Array elements are accessed individually by using [] (e.g. user.eccVariableName[0] for the first element in the array)
callTypeCisco Finesse Call Type
DNISCisco Finesse DNIS
dialedNumberCisco Finesse Dialed number
numberCisco Finesse ANI. Number is displayed like it is received from Finesse
outboundClassificationCisco Finesse Outbound classification
callKeyCallIdCisco Finesse Call Key Call ID -> Router call Key (CCE only)
callKeyPrefixCisco Finesse Call Key Prefix -> Router call Key Day (CCE only)
mediaIdCisco Finesse Media ID
queueNameCisco Finesse Queue Name
queueNumberCisco Finesse Queue Number
wrapUpReasonCisco Finesse Wrap-Up Reason
BACampaignOutbound Option campaign to which the call belongs
BAAccountNumberCustomer account number available in the import file
BAResponseMulti-purpose placeholder for sending data
BAStatusIndicates mode and direction of the Outbound Option Dialer initiated call
BADialedListIDUnique key identifying a specific customer record within the Dialing List
BATimeZoneIndicates the GMT offset, in minutes, for the customer’s time zone and is used to obtain the customer’s local time
BABuddyNameContains the customer’s first and last name separated by a comma, if available in the import file
BACustomerNumberContains the dialed customer phone number (UCCX only)
totalHoldCount (*)Amount of times the call was already in hold state
totalHoldTime (*)Amount of seconds the call was already in hold state
workitemidID of the call
info

Refer to the Cisco Finesse documentation for more information about these variables.

info

Variables marked with (*) can only be used to display on UI. Other variables in the table can also be used for other purposes as described in chapters like Create new record links, Create New Case, Phone Call log.

Phone Call Log

This configuration section defines the data which should be saved to the phonecall record. Refer to Phonecall record handling for more information.

Map CTI data and call notes to phone call fields

CTI data can be populated in a phone call record upon creation/update.

Step 1: Navigate to the Service Layout configuration and go to the Phone Call Log section.

Step 2: Provide these settings per field:

Phone call mapping

FieldDescription
Field NameField of the phone call log to populate data into.
Call VariableText and variables to be populated.
Please refer to the chapter Available Variables.
info

The Service Layout requires you to configure the {notes} variable for exactly one field without any additional text. Please make sure that a mapped field has enough space to store the value.

Examples

Field NameCall Variable
subjectCall - {due_date_cti}
description{notes}
cr12_callrecordingurl{callrecordingurl}
info

The list of available fields is limited to type "String" and "Memo" and they must be writable (FieldPermission IsValidForUpdate=true and IsValidForCreate=true).

info

When mapping CTI Data to phone call fields, both existing fields and newly created custom fields may be chosen. When configuring existing fields, data that is already stored will be overwritten by b+s Connects depending on the configuration.

Available Variables

Available call variables are outlined in Possible Values.

In addition to these, the following variables are available:

ValueDescription
callrecordingurlURL of the recorded phone call.
due_dateThe date of call establishment as string provided from Cisco Finesse (UTC). For example 2019-08-13T14:10:12.074Z.
due_date_ctiThe date of call establishment as string provided from Cisco Finesse as local time of the server. For example 2019-08-13T16:10:12.074+02:00.
notesContent of the call notes.

Queue Thresholds

The following configurations can be made to customize the thresholds:

Queue Threshold Bar

FieldDescription
Default Warning ThresholdSets the value for the number of items in queue to warn the agent. A queue that exceeds this threshold is displayed in yellow.
Default Critical ThresholdSets the value for the number of items in queue where the agent is warned again. A queue that exceeds this threshold is displayed in red.
Queue Name containsA regular expression to define the affected queues.
Further information can be found here.
Warning ThresholdSets the Warning Threshold for the defined queues.
Critical ThresholdSets the Critical Threshold for the defined queues.
info

Note: If the Critical Threshold is lower than or equal to the Warning Threshold, the Warning threshold will never be displayed.

How to select specific queues

To simplify huge deployments the provided values in the fields "Queue Name contains" are interpreted as regex literals in a contains clause.

ExampleDescription
^Billing Support$Will set a threshold on all queues with a name equal to Billing Support or billing support.
SupportWill set a threshold on all queues which contain Support or support in their name. For example: Billing support and Technical Support.
su.*rtWill escape the regex characters . and * and therefore match queues which contain su.*rt in the name field, but will not match support or surt.
info

Keep in mind that the queue name provided in the Service Layout configuration refers to the "Peripheral Name" field of a Skill Group in UCCE deployments.

info

A good way to start is by reading the RegEx document from the MDN web docs.

Create New Case

When screen pop on incoming call mode is set to Case, a form to create a new case will be opened when there's an incoming call. It is possible to pre-fill data in this form.

If a case is already assigned to the Regarding field of the phonecall record, the screen pop will open this case. More information can be found in Automatic assignment to a phonecall.

Step 1: Go to the Create New Case section.

Step 2: Select the field you want to pre-fill with a value.

Step 3: Enter text and/or variables to store in the field. Variables have to be in curly brackets. e.g. {name}, {callVariable1}.

You can use variables retrieved from the current call or from the participant lookup (only if there is exactly one match). For more information on available variables please refer to Possible Values and Participant data.

Create New Case

The available fields to pre-fill data are limited to type String and Memo. Also the fields must be writable (FieldPermission IsValidForUpdate=true and IsValidForCreate=true).

info

When screen pop on incoming call mode is set to Case and there is exactly one match, the found record is pre-filled to the Customer field of the case (incident).

Automatic assignment to a phonecall

To assign a case (incident) automatically to a phonecall record please follow these instructions.

Step 1: Add a new column to the Cases.

FieldValue
Display NameCTI Reference ID
Namectireferenceid

Step 2: Go to the Create New Case section in the Service Layout.

Step 3: Select the created field and enter {workitemid} for the value.

Step 4: Save the Service Layout.

Step 5: Create a Cloud Flow to assign the Case to the Phonecall automatically.

Federation

Federation allows a synchronization between the Cisco reason code states and Dynamics presence status.

FieldDescription
Presence Status While TalkingSets the agent into the configured presence status after the agent accepts a call and is in a talking state. An active Presence text must be set for this functionality. Please see presence configuration for more information about Dynamics presences
Not Ready Reason Code While BusySets the agent into the configured Cisco not ready reason code if the agent switches to a presence with a Base status of Busy or Busy - DND. This can be triggered by a manual presence status switch or by an automatic one e.g. the agent accepts a chat task. Set it to -2 if no reasons are configured for the voice channel on Cisco Finesse. If there are already reasons configured, make sure to set a valid reason code from an existing Not Ready reason.

Federation configuration example

This example sets the agent in the presence status Do not disturb if a phone call is accepted and it will set the agent to Cisco reason code 1 if he or she switches to a Busy or Busy - DND base status presence.

Please see these charts, to see which presence and state automation is possible.

Custom Integrations

Step 1: Click on Add Existing Custom Integration.

Add Custom Integration

Step 2: Search for and select the desired Custom Integrations.

Search for Custom Integrations

Step 3: Click Add.

Refer to Custom Integration for more information.

Logs

Define the location and limits for log uploads.

Logs configuration

NameDescription
Log uploadEnable/Disable log upload and log storage location.
Disabled: no logs can be uploaded
CRM: logs are stored on the CRM
Finesse: logs are stored on the Finesse server
Default: Disabled
Logging maximum number of actionsDefines the number of entries in the log file.
Default: 1000
Logging frequency store stateDefines the number of entries that are deleted when the maximum is exceeded.
Default: 50

More information can be found here

Call Recording

Define call recording settings.

Calabrio Call Recording

FieldDescription
ServerThe URL from where the Calabrio system can be accessed. Go here for more details.
Metadata KeyThe Dynamics ID of the current phone call can be written into a metadata field of the corresponding call recording on the Calabrio server. This configuration value is the 'Metadata Key' of the field as created in Calabrio's 'Metadata Manager' settings.
Server Login UserThe API User's Calabrio username used to login to Calabrio.
Server Login PasswordThe API User's Calabrio password used to login to Calabrio
Show ControlsEnable or disable the call controls in an active call.

Save the call recording URL to the phone call

In order to save the call recording URL to the phone call record, you need to add a column of type String or URL to the Table Phonecall. A tutorial on how to add columns to a table can be found here.

Then you need to assign the variable {callrecordingurl} in the Service Layout to the newly created column. Further information can be found here.

Assigned Users

The assigned users list allows Admins to see who is using this Service Layout. They can also add existing users here.

Assigned Users

Select one or more users and click "Add".

Assigned Users adding User

Remove Users

To remove users, you need to select them, click on the three dots, then on "Flow".

Remove Users

Select "Remove Users from Service Layout".

Remove Users, selecting flow

Then accept the popup to remove the selected users.

Remove Users confirm