CafeX, Live Assist – USD Hosted Controls, Actions etc.


Live Assist for Microsoft Dynamics 365 can integrate with Unified Service Desk (USD). When it is installed most of the configuration you’ll require is automatically added to your USD config. But in production environments you’ll want to tweak this config. I haven’t found any detailed technical documentation (yet!), so I have created this guide to provide additional detail.

Background

To create this post, I have reviewed the changes that were applied to my USD environment as a result of installing Live Assist. It is worth noting that this information was created in April 2017. I am currently unsure on the frequency of future updates, we have to assume that future updates to Live Assist could add to or change these details.

I am sorry but if this documentation is technical or long. It aimed at a USD expert! I will create future blog posts that give worked examples for specific use cases that maybe more appropriate for someone newer to USD.

I am also sorry for any omissions from this information! This post is a result of me reviewing the configuration in an attempt to improve my own understanding. I am therefore simply sharing what I have found so far. (As my knowledge improves I will obviously update with additional detail.)

Top

How Live Assist Adds to Your USD Configuration

Another observation I have is the way Live Assist seems to apply changes into your USD environment! Associated Contact and KB Search might be good examples. In my USD application, I already had a hosted control “KB Search”, meaning an additional one wasn’t added. However, I hadn’t got a hosted control called “Associated Contact”, so one was created. This behaviour is “interesting”! As it means if you import Live Assist into a USD environment other than the Microsoft sample package you may need to review everything that has been created. Which is what I have just done, hence this blog post!

Examples of what I mean include ….

  1. I already had a panel layout called “Main Layout”, Live Assist adds a panel layout called “Custom Panel”. I therefore altered all of the actions that used “Custom Panel” to use my existing “Main Layout” instead.
  2. I have a hosted control to show an associated view of contacts already, except mine was called “Associated Contacts“. Again, I will need to alter any actions / navigation created by Live Assist to use my control rather than the one it created.
  3. “KB Search” was not added as a hosted control but the import of Live Assist did seem to add a couple of UII Actions. In my case these were “Search” and “default”. This process actually created duplicate actions. To resolve this I had to remove these UII Actions from “KB Search”.
  4. My KB Search toolbar had a couple of buttons that had no actions. I had to manually create those actions.

If your USD application is based on the Microsoft sample package supplied with USD you will probably have no issues. If your USD package (like mine) is bespoke but follows similar lines you may also be fine, with some “tweaks”. But I’ve seen several implementations that are very custom, maybe only using custom entities or maybe with a completely custom panel layout. In these you may need to review of the hosted controls, actions, window navigation rules (etc) and build a variation that will work in your environment from scratch. (A task that would involve significant effort!)

Additions made to my USD configuration included;

Top


Additions – Hosted Controls

The logic I have mentioned above means that the hosted controls added into your environment may differ slightly from mine! The hosted controls that were added into my USD solution included;

Note:
Many hosted controls will have standard actions such as MoveToPanel etc. I will not document these as they are common to all USD controls. Instead I will try to highlight all of the “custom” actions and events.

Top


Additions – Actions

The following actions were added into my USD configuration. Notice the items in read! When I did the advanced find to produce this list I spotted that these values were incorrectly blank and therefore needed to be added.

Hosted Control Action Action Name
Agent Scripting GotoTask Load Contact Session Agent Script
Associated Cases Navigate Action Call for Associated Cases Button Click on Contact Toolbar
Associated Cases Navigate Action Call to View Associated Cases for Contact
Chat Activity Open_CRM_Page Open Chat Activity
Chat Activity Refresh RefreshChatActivity
Chat Context Navigate Open Chat Context
Chat Control FocusApplication Action Call to Focus on Case when Create Case for Authenticated
Chat Control FocusApplication Action Call to Focus on Case when Create Case for Unauthenticated
Chat Control FocusApplication Action Call to Focus on Chat Activity
Chat Control FocusApplication Action Call to Focus on Chat Search Page
Chat Control FocusApplication Action Call to Focus on Contact
Chat Control FocusApplication Action Call to Focus on Contact when Create Contact
Chat Control FocusApplication Action Call to Focus on KB Search
Chat Control ShowOutside Action Call to Show Outside for Chat Control
Chat Control SwitchOrCreateSession Action Call to Switch Session
Chat Control SwitchOrCreateSession Action Call to Switch Session on Chat Session Switch
Chat Control UpdateContext Action Call to Update Context
Chat Control AttachCasetoChatActivity AttachCasetoChatActivity
Chat Control AttachChatToSession AttachChatToSession
Chat Control default Chat Control Load
Chat Control InvokeChatAction InvokeChatActionCall
Chat Control RealignWindow Move Chat Control to Screen 2
Chat Control MoveToPanel Popin Chat
Chat Control MoveToPanel Popout Chat
Chat Control ReadChatContext Read Chat Context
Chat Control ReadLastMessage Search KB with Last Chat Message
Chat Control WriteMessage Send Article PublicUrl
Chat Control WriteMessage Send KBpublicUrl
Chat Search Page Navigate Navigate to chat search page
Chat Search Page Navigate Search Call for Chat
Chat Search Page Navigate Search For MultiChat
Cobrowse Control Close Close Cobrowse
Cobrowse Control Navigate Initiate Cobrowse
Contact Navigate Navigate to chat contact
CRM Global Manager ShowTab Focus Multi Search Page
CRM Global Manager ShowTab Show Tab for Associated Cases
CRM Global Manager ShowTab Show Tab for Chat Context
KB Article Navigate Open KM Article
KB Search default Open KM
KB Search Search Search KB with Last Chat Message Received
Main Layout SetVisualProperty Collapse Right Panel on PopOut
Main Layout SetVisualProperty Expand Left Panel Expander
Main Layout SetVisualProperty Expand Right Panel Expander
Main Layout SetVisualProperty Expander Right Panel Collapse
Presence Control default Presence Control Load

Top


Additions – Customization File

Any additions such a custom hosted control will need to be added to a customization file that can in turn be cached to the local desktop. Live Assist handles this by the addition of a customizations file called “UnifiedServiceDesk.ChatControl”.

Top


Additions – Session Lines

Two session lines were added to my organisation. One the chat session overview and one for the session name.

It might be worth noting that this was another area of conflict! The session lines are not associated with an entity. I already had a session line that wasn’t linked to an entity, so initially I was seeing that session name not the intended name.

Top


Additions – ScriptLets

Four scriptlets were added;

Generate New Chat Session Name – This scriptlet returns a session name. Either as “New Session” or with the customer name.

Generate Chat Contact Session Name – This scriptlet returns the name to be sued for the contact sessions.

Get Chat Contact Full Name – Returns the concatenation of first name and last name for the chat customer.

Generate Title for Case – Returns the first 12 characters of the case title

Top


Additions – Toolbars

Three toolbars were added to my configuration.

KM Article Toolbar, associated with the KB Article hosted control. It has one button;

  • Send Link to Chat – This triggers one action called “Send Article PublicUrl”. Which in turn uses a “WriteMessage” action on the chat control to send the public url for the knowledge article to the customer.

KM Search Toolbar, associated with the KB Search hosted control and has four buttons.

  • Send Link to Chat – This trigger one action called “Send Article PublicUrl”. Which in turn uses a “WriteMessage” action on the chat control to send the public url for the knowledge article to the customer.
  • Read Last Message – This triggers an action to search the knowledge base using the last chat message as an input.
  • Link Article – This called one action which associates the article with the current incident.
  • Copy Link – This called an action that copies the current article to the clipboard.

Note: I actually found that my “Link Article” and “Copy Link” toolbar buttons did not call any action. To resolve this I viewed the action as defined in the sample packaged from Microsoft and replicated in my environment.

Chat Activity Toolbar, associated with the chat activity hosted control and has two buttons.

  • Associate to Case – This button triggers two actions. “AttachCasetoChatActivity” and “RefreshChatActivity”.
  • Refresh Chat Activity – This button just triggers the “RefreshChatActivity” action.

Top


Additions – Window Navigation Rules

Just four window navigation rules were added into my organisation.

Top

Additional Hosted Control Detail

In the remainder of this document I will describe additional details about each of the hosted controls added to my solution.

Top


Associated Contact

The “Associated Contact” hosted control is a CRM Web Page. As I described in my introduction this control seems to have been added as I didn’t already have a hosted control called “Associated Contact”. I had however got one called “Associated Contacts“. This means I may need to revise later.

Description
Name Associated Contact
USD Component Type CRM Page
Application is Global No
Display Group MainPanel
Adapter None


UII Actions

In my USD system, this control had no UII Actions! (But this wouldn’t be the case if added into the Microsoft sample package.)

Events

In my USD system, this control no Events! (But this wouldn’t be the case if added into the Microsoft sample package.)

Top


Chat Activity

The “Chat Activity” hosted control is a CRM Page ….

Description
Name Chat Activity
USD Component Type CRM Page
Application is Global No
Display Group MainPanel
Adapter None


UII Actions

Only standard UII actions existed.

Events

Only standard Events existed.

Top


Chat Context

The chat context hosted control is a standard web application ….

Description
Name Chat Context
USD Component Type Standard Web Application
Application is Global Yes
Display Group MainPanel
Adapter None

UII Actions

Only standard UII actions existed.

Events

Only standard Events existed.

Top


Chat Control

The “Chat Control” hosted control is a custom USD hosted control. This fact is interesting! As any custom code will need to be copied to the USD client. Therefore, we also have a customization file that is associated with the chat control. See screen shot below!

Description
Name Chat Control
USD Component Type USD Hosted Control
Application is Global Yes
Display Group RightPanel
Adapter Assembly URI: UnifiedServiceDesk.ChatControl

Assembly Type: ChatControl.ChatControl


UII Actions

32 UII Actions existed after importing Live Assist, Including;

Description
AttachCasetoChatActivity
AttachChatToSession
Close Standard!
CobrowseClosed
default
FireEvent Standard!
FocusApplication
GetActiveChatId
GetAllPresenceStates
GetChatContextUrl
GetChatState
GetCurrentActiveChatCount
GetCurrentState
GetMaxNumberOfChatsAllowed
InvokeChatAction
MoveToPanel Standard!
New_CRM_Page Standard!
Open_CRM_Page Standard!
Popup Standard!
ReadChatContext
ReadLastMessage
RealignWindow Standard!
SendInternalMessage
SendMessage
SetPresenceState
SetSize Standard!
SetUserCanClose Standard!
ShowOutside
SwitchChat
SwitchOrCreateSession
UpdateContext
WriteMessage

Events

14 Events existed after importing Live Assist, Including;

Description
ChatSessionCreated Event triggered when a chat starts.

Contains two actions;

  • Navigate to chat contact
  • Navigate to chat search page
ChatSessionSwitch Contains one action;

  • Action Call to Switch Session on Chat Session Switch
CloseCobrowse Contains one action;

  • Close Cobrowse
CobrowseInitiated Contains one action;

  • Initiate Cobrowse
CreateCase Event triggered when create case button is clicked on the chat control.

Contains three actions;

  • Action Call to Switch Session
  • Action Call to Focus on Case when Create Case for Authenticated
  • Action Call to Focus on Case when Create Case for Unauthenticated
CreateContact Contains two actions;

  • Action call to Switch Session
  • Action Call to Focus on Contact when Create Contact
OpenChatActivity Contains two actions;

  • Action call to Switch Session
  • Action Call to Focus on Chat Activity
OpenContact Contains three actions;

  • Action call to Switch Session
  • Action Call to Focus on Chat Search Page
  • Action Call to Focus on Contact
OpenContextPage Contains one action;

  • Open Chat Context
OpeningNewChat Contains one action;

  • InvokeChatActionCall
OpenKnowledgeBase Contains three actions;

  • Action Call to Switch Session
  • Action Call to Focus on KB Search
  • Expand Left Panel Expander
PopIn Contains two actions;

  • Popin Chat
  • Expand Right Panel Expander
PopOut Contains three actions;

  • Collapse Right Panel on PopOut
  • Popout Chat
  • Move Chat Control to Screen 2
PopupRouted

No actions

Top


Chat Search Page

The “Chat Search Page” is a CRM Page that is placed into a session when a chat is opened. It holds a multi-entity search that contains the name of the contact.

Description
Name Chat Search Page
USD Component Type CRM Page
Application is Global No
Display Group MainPanel
Adapter None


UII Actions

Only standard UII actions existed.

Events

Only standard Events existed.

Top


Cobrowse Control

The cobrowse hosted control is a standard web application ….

Description
Name Cobrowse Control
USD Component Type Standard Web Application
Application is Global Yes
Display Group FloatingPanel
Adapter None

UII Actions

Only standard UII actions existed.

Events

Only standard Events existed.

Top


Custom Panel

The “Custom Panel” hosted control is the panel layout used by Live Assist. As explained in my introduction I altered any actions that used this hosted control to use my existing panel layout instead. This included roughly 6 actions that use the SetVisualProperty action.

Description
Name Custom Panel
USD Component Type Panel Layout
Panel Type XAML

Note: In my solution, I changed the actions to use my panel layout. Which had a panel type of “Standard Main Panel”.

XAML “Some XAML”
Display Group MainWorkArea

UII Actions

Only standard UII actions existed.

Events

Only standard Events existed.

Top


LeftPanelActivities

The LeftPanelActivities hosted control is a CRM Page ….

Description
Name LeftPanelActivities
USD Component Type CRM Page
Application is Global No
Display Group MainPanel
Adapter None

UII Actions

In my USD system, this control had no UII Actions! (But this wouldn’t be the case if added into the Microsoft sample package.)

Events

In my USD system, this control no Events! (But this wouldn’t be the case if added into the Microsoft sample package.)

Top


Presence Control

The “Presence Control” is another significant hosted control, as like the chat control it is a custom control. (And will therefore also be include in the customization file added when Live Assist is installed.

Description
Name Presence Control
USD Component Type USD Hosted Control
Application is Global Yes
Display Group AboutPanel
Adapter Assembly URI: Microsoft.Crm.UnifiedServiceDesk.Dynamics

Assembly Type: Microsoft.Crm.UnifiedServiceDesk.Dynamics.PresenceControl

UII Actions

10 UII Actions existed after importing Live Assist, Including;

Description
Close Standard!
default Standard!
FireEvent Standard!
MoveToPanel Standard!
New_CRM_Page Standard!
Open_CRM_Page Standard!
Popup Standard!
RealignWindow Standard!
SetSize Standard!
SetUserCanClose Standard!

Events

1 Events existed after importing Live Assist, Including;

Description
PopupRouted

No actions

Top


Transcript Control for Chat Activity

The “Transcript Control for Chat Activity” hosted control is a standard web page ….

Description
Name Transcript Control for Chat Activity
USD Component Type Standard Web Application
Application is Global No
Display Group MainPanel
Adapter None

UII Actions

Only standard UII actions existed.

Events

Only standard Events existed.
Top

One thought on “CafeX, Live Assist – USD Hosted Controls, Actions etc.

  1. Pingback: USD – The Book | Microsoft Dynamics CRM and Unified Service Desk

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s