Category Archives: IT Guide

For IT to prepare, install and maintain Dynamics Telephony

Omnichannel & Avaya AACC Blended

Currently, users on Avaya AACC and Microsoft Dynamics 365 Omnichannel, have to manually keep themselves in the right status on each system. So, when they are on a voice call in Avaya, they have to manually set themselves to Do Not Disturb in Omnichannel. And when they are too busy on Omnichannel, they have to manually go Not Ready in Avaya AACC.

Furthermore, the real-time displays and reporting on each of the two systems is completely unaware of the other system. So, a supervisor might think a user is simply “Not Ready”, when in fact they are very busy on chats with customers.

These are major pains and leads to lack of adoption of one system or the other.

Now, Dynamics Telephony does the synchronization automatically for you. When you are on a voice call, your status in Omnichannel will show “On Phone Call”, and you will not be sent any chats. When you are busy on chats in Omnichannel, your status in AACC will be “Not Ready – On 2 Chats” and AACC will not send you any voice calls. NOTE these features are in addition to our other AACC Features

omnichannel_status

This is a major innovation allowing users to seamlessly work on Omnichannel and Avaya AACC in the one blended environment.

See a short presentation of this feature on YouTube here.

How It works

Because Dynamics Telephony has access to both Avaya AACC status and Omnichannel status, it can monitor and control both systems. Using this capability, it implements 2 rules:

  1. When you are on N chats in Omnichannel, it will auto-select a status (e.g. Not Ready – On 2 Chats) for you in Avaya AACC. When you are back on <N chats, it reverts you to Ready in AACC.
  2. When you are on a voice call in AACC, it will select a particular presence (e.g. Do Not Disturb – On Phone Call) for you in Omnichannel. When you end the voice call, it will make you available in Omnichannel again. You need to define a custom presence in Omnichannel Admin of type Do Not Disturb with a label such as “On Phone Call”.
Reports & Realtime Displays

Because Dynamics Telephony is keeping your status in each system correctly synchronized, your reports and real-time displays in each system can show the full picture. So, your Omnichannel report can include the number of times and duration of the “On Phone Call” presence. Similarly, your data in Avaya AACC can include the number and duration of “On 2 Chats”.

Settings

The following settings control how the blending works.

OC Omnichannel – Check this box to enable the Omnichannel (OC) blending features.

OC Max Chats and OC Max Chats Reason – When the number of chats being handled by the user in Omnichannel gets to OC Max Chats, then the Not Ready reason in AACC is automatically selected. The reason selected is the one with label defined in OC Max Chats Reason (case sensitive)

OC Voice Call Presence – When the user is on a voice call in AACC, this presence is automatically selected in Omnichannel. Case sensitive. Leave blank to disable this feature.

OC Voice Application – From the list, select the Dynamics 365 Application to use for Avaya AACC voice calls. It is very unlikely you will want to use the Omnichannel Application with voice calls.

omnichannel_config

 

Outcome Triggerd Workflows

You can trigger a workflow to do such things as disqualify a lead, convert a lead to an opportunity or send an email to the customer.

You set the workflow to trigger off our dialerCall entity field called “outcome”. In the workflow, you use our plugin (see below) to get a reference to the phonecall, To Party or Regarding entity.

The plugin you need in the workflow is in a solution file you need to import to CRM. You can find it HERE

NOTE: You cannot use Flow / Power Automate as it does not support plugins.

Create the workflow

In Processes, make a workflow to trigger off change of field outcome in dialerCall entity.

To get a reference to the phonecall activity that Dynamics Telephony used for the call, add a step like this

workflow_plugin_dtiCommand

Set the properties like this:

workflow_dtiCommand_toEntityRef

Now you can use that entity reference to update the entity.

Similarly, you can get a reference to the To Party (ToId in dialerCall) and Regarding

 

Add fields to multi-match dialog

Sometimes you need more information on the multi-match dialog to help with associating the phonecall with the right entity. This might be extra information on cases, or more fields from contacts or accounts.

You can specify the field from the entity that Dynamics Telephony will display in the case of multi-match. So, you make this field a custom field that is a concatenation of other fields with the information you need.

1. Create a custom field on the entity you pop for incoming calls. Make this field a concatenation of the other fields in the entity that you want to display on the multi-match dialog.

2. Say the entity you pop is contact, and the custom field from step 1 is new_custom1. Then you need to locate the diallerKVTable record in the CRM where
Name=incomingLookup_contact AND Type=name.
Change the Key and Value fields to new_custom1

3. If you pop more than one entity for incoming calls, you may want to repeat steps 1 and 2 above for each one.

 

Phonebook Contacts CRM Entity

Dynamics Telephony can retrieve its phonebook contacts from CRM or from an XML file. This article explains how to have Dynamics Telephony retrieve its phonebook contacts from CRM.

The contacts are stored in entity Dialler Phonebook Contacts (cts_phonebook). The main fields are:

  • Full Name: Mandatory. A good idea to format like Lastname, Firstname for sorting purposes. The phonebook will be sorted using this field.
  • Phone Number: Mandatory.
  • Phone Book Team: Mandatory. This is used to allow different groups of users have a different set of contacts in their phonebook.

An on-demand workflow is included to copy data from existing Users to Dialler Phonebook Contacts. It copies the phone number from the user “Other Phone” field, and the Team Name from the users Business Unit name.

phonebook_add_users_workflow

Then, in Dynamics Telephony Settings, General, fill in the team name for each user.

phonebook_team_setting

 

TIP: You could have a workflow trigger on a user’s “Other Phone” change event, and use that to keep the phonebook synchronized.

 

Lookup other phonenumber fields

Dynamics Telephony can search other phone-number fields; custom fields or built-in fields. To have Dynamics Telephony search another phone-number field…

Add 1 diallerKVTable entry as follows

name: incomingLookup_x, where x is contact, lead, contact etc.
scope: global
key: N, – Where N is one more than the current largest Key value on others with name=incomingLookup_x
type: phone
value: y, – where y is the name of the field, e.g. new_fieldname
parent: leave blank

NOTE: The fields Dynamics Telephone searches out-of-the-box are
Lead; telephone1, telephone2, telephone3, mobilephone
Contact: telephone1, telephone2, telephone3, mobilephone
Account: telephone1, telephone2, telephone3

Scripting Pane: Display Phonecall

You can display the current phonecall activity in the Scripting Pane. This is useful to be able to enter phonecall notes and result without having to switch away from the main customer record in CRM.

scriptingPanePhonecall

You do this by defining the script URL as a custom HTML page that will receive all phonecall ID and then redirect to the phonecall itself. There is a sample of that initial custom page code here (view page source when it opens): dtAssociatedPhonecall.

TIP: If you want to display some other entity, for example the regarding entity, then you can use the parameters passed to the splitscreen page to re-direct to it. the full list of parameters passed to the splitscreen page is HERE

The script URL is defined on a per DNIS (inbound) or queue (dialer outbound) basis, as shown below

scriptingPansDnisUrl

NOTES

  • You will want to customise the phonecall form to improve legibility as the Scripting Pane is fixed at 33% of the parent window width.
  • Alternatively, you could make a special phonecall form and specify the formid in the extraqs parameter of the URL you redirect to. You might also consider adding navbar=off&cmdbar=false to the URL to hide the navigation and command bars to give you more space.
  • Test with your users to make sure autosave is working correctly, or they are happy to use a SAVE button.
  • Using the Dynamics Telephony Client API, it is possible to make a Save & Close button that would save the phonecall and close the DT window.
  • If users will enter notes, then define the default Phonecall Description as blank ( DT Menu > Settings > Advanced Configuration : Phonecall Description )
  • Similarily the Phonecall Subject. ( DT Menu > Settings > Advanced Configuration : Phonecall Subject )

Screen Transfer

Dynamics Telephony has a unique Screen Transfer feature. Imagine user_1 transfers a caller to user_2. With this feature, as soon as user_2’s phone rings, even if user_1 is still on the line doing a Consult Transfer, user_2 will get a screen pop of the caller’s record in CRM that user_1 is looking at.

The unique thing about our implementation of Screen Transfer is that it works across phone systems. So, in the above example, even if user_1 and user_2 are on completely different phone systems, the Screen Transfer will still work. This is because the necessary data transfer is done via CRM, not the phone system.

NOTE, if the transfer is a Blind Transfer, then the normal screen pop feature will apply and pop a CRM record based on the callers number.

Requirements
  1. The callers number presented to an user when a call is transferred to them by another user must be the internal extension number
  2. Each users internal extension number must be configured in their System User settings as either Main Phone, Other Phone or Pager.
Technical details

The feature is triggered when a user receives a call from a number that is the same length or shorter than the number of digits configured as the Internal Extension Length. This triggers a search in CRM systemuser for an exact match on one of:

  • Main Phone (address1_telephone1)
  • Other Phone (address1_telephone2)
  • Pager (address1_telephone3)

To check on the feature, you can check the value of UrlDisplayed (cts_urldisplayed) in entity dialerCall for the transferred call.

Use Custom Forms

Dynamics Telephony allows you to specify a Custom URL to use for your outbound or inbound calls. So, if you have designed a custom form for users to process inbound or outbound calls, then you can have Dynamics Telephony pop that form for the user.

You can specify different Custom URLs for inbound and outbound. And you can also specify a set of conditions for when to use the Custom URL, such as only when no match for the caller is found in CRM, or only when the caller is a contact, etc.  You can specify multiple Custom URLs, each with a different set of conditions attached.

In addition, Dynamics Telephony will pass a set of parameters to your page at the Custom URL. These are described below.

How to set up a custom URL

You configure the URL to pop, along with the conditions for the pop, as a dialerKVTable entry, with these values:

Owner. This can be any owner.
Scope. Only “global” has been tested. This means it applies to all users. In future, we may support putting a users name here to make it specific only to that user.
Parent. Leave blank always
Name. Always customURL_Rule. It is case sensitive so type as shown.
Key. A number. Start at 1 for the first rule, 2 for the second etc. The rule with the lowest Key number that the condition (next section) yields TRUE will determine the pop. If no rule yields TRUE, then the default contact, lead etc. is popped. NOTE: the sorting is text based so you should use 2 digits for all numbers, like 01 or 12 etc.
Value. Format condition=>url-to-pop
url-to-pop can be any valid URL. Only webresources served by the CRM have been thoroughly tested. The keyword default can be used instead of a URL to pop the default CRM form for the matched entity.
condition is one or more conditions where you specify such things as applicable entity (fromParty.Key=contact, lead, account.), number of matches (lookupCount=0 or 1), DNIS (dnis=1234), and direction (inbound or queue)

See next section for examples of Value

Some examples of Value

direction=queue=>file:///C:/_cts/Fast%20n%20Lite/page.html

direction=inbound&&fromParty.Key=contact&&lookupCount=1=>https://yourCrm.crm.dynamics.com//WebResources/dot_/CPO/CP.html

direction=inbound&&lookupCount=0=>https://yourCrm.crm.dynamics.com//WebResources/dot_/CPO/CP.html

direction=inbound&&fromParty.Key=account&&lookupCount=1=>https://kotsovolosdev.crm4.dynamics.com//WebResources/dot_/CPO/CP.html

direction=inbound&&dnis=1234=>default

Parameters passed to the Custom URL

TIP: When you run a test call, check the Dynamics Telephony log file (DT Menu > Log File) to see the URL and it’s parameters. Search in the log file for oCustomUrlRules and you will see the URL a line or two after that.

Parameters
Data=
state, e.g. incoming
type, e.g. phonecall. Only phonecall supported
phoneCallID, e.g. 7e2a5311-be86-e911-a84d-000d3ab0d976
direction, e.g. inbound, or queue (outbound)
telephoneNo, e.g. 00353868561713
dnis, e.g. 1234
dnisName, e.g. DEV
agentType, e.g. systemuser
agentId, e.g. dbe7f238-1d8d-e911-a819-000d3aba212d
customerType, e.g. contact
customerID, e.g. dbe7f238-1d8d-e911-a819-000d3aba212d
ReType, e.g. contact
ReId, e.g. dbe7f238-1d8d-e911-a819-000d3aba212d
dtCallId, e.g. e8393a0f-be86-e911-a847-000d3ab0d281
agent, e.g. Test+Agent06
fullName, e.g. My full name
description, e.g. description+text+from+phonecall
customText, e.g. text from a phonecall custom field called new_customtext
subject, e.g. inbound+call+with+DNIS+DEV

Sample URL popped with parameters
CP.html?Data=state%3Dstart%26type%3Dphonecall%26phoneCallID%3D30240805-03be-e911-a82f-000d3ab71acc%26direction%3Dqueue%26telephoneNo%3D6946186715%26dnis%3D%26dnisName%3D%26agentType%3Dsystemuser%26agentId%3Da661cc8a-eb7a-e911-a824-000d3ab70af3%26customerType%3Dcontact%26customerID%3De79beb12-998b-e911-a825-000d3ab70627%26ReType%3Dcontact%26ReId%3De79beb12-998b-e911-a825-000d3ab70627%26dtCallId%3D7f22a4f1-7fe6-e911-a838-000d3ab713ee%26agent%3DDyn+Crm06%26fullName%3D%CE%9D%CE%95%CE%9A%CE%A4%CE%91%CE%A1%CE%99%CE%91+%CE%9A%CE%95%CE%A6%CE%91%CE%9B%CE%9F%CE%9D%CE%99%CE%9A%CE%91%26description%3D%26  %3D%26subject%3D%CE%95%CE%9A%CE%A3-06441+-+MRKT-0010324

Moving to a new CRM

This post gives you guide on how to move your Dynamics Telephony configuration from one CRM to another.

The example is for porting from CRM1 (where you have tested everything to your satisfaction) to CRM2 (where you want to replicate the tested settings)

FIRST run Dynamics Telephony on CRM2. You do this by clearing the cache ( see here ) and starting Dynamics Telephony again. You will be prompted for the URL of CRM2. This will install the Dynamics Telephony solution in CRM2. IMPORTANT, once up and running, manually set items in Menu > Settings > Crm Configuration, as these cannot be ported over in the “Port Data” described below. Quit that instance of Dynamics Telephony.

THEN, Port Data between the Dynamis Telephony entities in CRM as follows…

CRM entity dialerKvTable – Delete all rows from CRM2 where scope equals global. Export all rows from CRM1 where scope equals global and import into CRM2

CRM entity dialerCallOutcome – Delete all rows from CRM2. Export all rows from CRM1  and import to CRM2.

CRM entity dialerDnis – You will have to manually re-create all DNIS Settings in CRM2. This is because the CRM URL is part of the DNIS definition. Also, the images for the DNIS are stored as webresources in CRM – which have the same name as the DNIS. Advanced users could manually fix the URL in the DNIS definition and port over the image webresources in a solution.

CRM entity dialerQueueSettings – You will have to manually re-create the Queue Settings on CRM2. This is because the CRM URL and the queue GUID is part of the Queue Settings.

CRM entity dialerReports –  If you have made any custom report definitions for the Dynamics Telephony RTD, then you can port these to CRM2. Delete all rows from CRM2. Exports all rows from CRM1 and import to CRM2

How to add an RTD column

You can easily add columns to the Agent RTD. The steps below show you how to add a total “Calls” column.

Steps

1.In Advanced Find, go to DiallerReports, use any view you like and click Results. AdvancedFind

2. Then you click New DiallerReportsDiallerReportsTable

 

 

3. Here you click on the dashed lines to set/change the propertiesReportFields

For example, if you wanted to add a ‘Total Calls’ report, you could set it up like this. TotalCalls

Description is what will appear at the top of the column when in a          table.
Key is the source of the data to be displayed.
Type is the data type. Here it is attribute. Other types include rule,        filter, calculated and livestate. These will be discussed in another          post.
Value is the column width in percent for attributes. For other types      in can be different.
Order is the order in which the columns will appear. If you want to        put a new column in the middle, the following columns will have to      be manually shuffled forward.
ReportName is the report into which the column will be put.
Name is the name which can be used to cite this data in another              report.

 

4. If you want to change the fields available, click form editor and drag fields from the right toolbar into the column on the left to add them in, or out of the left column to remove themAddFields