System components
-
End Client MS CRM
The main component of the system is the MS CRM used by the End Users. This MS CRM displays a button that allows the End Users to launch a chat session with Chat Operators.
-
Chat server
The most important component is a chat server that is implemented as a web application that works over XMPP protocol and provides XMPP clients with a capability to send and receive messages through this server. The clients (their client identifier) need to be registered on the server.
-
Chat server administrative interface
The purpose of this component is to allow an administrator of MS CRM integrator to register installations of OnlineHelp as well as register operators who will provide the support service via chat. The operators can be either created from scratch or can be imported from CRM integrator's MS CRM.
-
Chat server chat sessions dispatcher plug-in
Its purpose is to return the best available operator to provide support service on request. The selection algorithm is based on a special business rules engine that for each available operator evaluates rules described in a config file in run time and uses for calculations the properties of the user who requested the support sessions and returns the operator with the highest rating. The plug-in monitors all current sessions and reduces rating respectively for operators who are participating in sessions.
-
Chat server messages interceptor plug-in
The interceptor plug-in is responsible for implementing the application specific business logic. In the current version of the product it allows the site operator to transfer the chat session to another operator. The only thing that the operator needs to know is the JID (or operator ID) in the chat server.
The next release will allow the operator to insert the commands that would create appropriate links for Knowledge Base article.
-
MS CRM Connector for the integrator’s Microsoft CRM
The connector allows the code running on the chat server to retrieve the required data from the integrator’s MS CRM. The application hides the actual access to the Microsoft Web Service and at the same time implements additional business logic required for the chat server piece.
-
Integrator’s MS CRM
Although using of Microsoft CRM by integrator internally is not mandatory for the achieving the main goal of the system — providing the end users with instant help in a live chat without leaving MS CRM, if Microsoft CRM integrator does use the MS CRM for internal purposes the system allows him to create a case and an appropriate service activity for each chat session. The set of requirements that should be met for this code to work will be described in a separate paragraph.
Main scenarios
The main scenarios include the cases of the system usage by the CRM Integrator administrator and by the End users.
CRM Integrator buys WaveAccess OnlineHelp product
When a MS CRM integrator buys the WaveAccess OnlineHelp product and decides that he will use WaveAccess Chat Server the appropriate record for the integrator company will be created by the WaveAccess Chat Server Team in the database of the chat server. (In the case of the integrator will use their own chat server then this record will be created only once during installation of the chat server.)
This record will represent an account with permissions to create chat operators and register installations as well as permissions to enter information about the integrator’s MS CRM if the chat sessions need to be stored there (as cases and service activities respectively).
CRM integrator’s administrator registers chat operators to handle requests for support from the End Users on the chat server
CRM Integrator’s administrator registers chat operators on the chat server via chat server administrative interface. In the technical terms for each chat operator a special record VCARD should be created. Later when chat operators install chat client they will specify the ID of this VCARD.
The chat server administrative interface allows CRM integrator’s administrators to import the chat operators from CRM integrator MS CRM users. The main idea is that employees of the CRM integrator could be easily registered as chat operators.
CRM integrator’s administrator registers a new MS CRM installation on the chat server
As soon as a CRM integrator has installed the MS CRM for his client ABC Company and he is going to install the WaveAccess OnlineHelp he will need to get an installation key. This key will be further transferred in chat sessions initiated by the end MS CRM users of this installation. It will allow chat server to indentify the appropriate installation and apply appropriate rules configured for this particular installation. For example it will allow choosing the best suitable operator for each session.
So the administrator of the CRM Integrator using chat server administrative interface enters information such as the End Client Name and the CRM organization and the appropriate Installation Key is generated. The administrator downloads it and uses it further for installation.
Although the Installation Key can be configured after the installation of WaveAccess OnlineHelp it is recommended to enter it during the installation.
CRM integrator’s administrator installs WaveAccess OnlineHelp for his client MS CRM organization
The installation of WaveAccess OnlineHelp product is a simple process. It consists of the two steps:
-
Installation of the WaveAccess OnlineHelp web application
WaveAccess OnlineHelp represents an ASP.NET web application that is integrated in Microsoft CRM via update of the Microsoft CRM customization. It consists of the flash chat client and WaveAccess OnlineHelp deployment manager. The installation of the WaveAccess OnlineHelp web application is performed in a desktop WaveAccess OnlineHelp straightforward installer.
-
Deployment of the WaveAccess OnlineHelp customization for a particular CRM organization
Since Microsoft CRM 4.0 supports multi-tenancy and each organization can have its own CRM customization WaveAccess OnlineHelp deployment manager allows the CRM integrator’s administrator select the appropriate MS CRM organization and update its’ customization (The OnlineHelp button is added to the main MS CRM Toolbar).
Chat Operators installs chat clients
In order to participate in the chat sessions Chat Operators need to install instant messengers that support XMPP protocol. There are plenty available free of charge: PSI IM, Miranda, Bombus and others which work on different platforms including smart phones.
CRM user requests a chat session with a chat operator
The only thing a CRM user needs to perform in order to initiate a support session is to click OnlineHelp button. At that time the flash chat client will be opened in a popup window. It will connect to the chat server and the dispatcher plug-in will return the JID of the best available chat operator for the CRM user. Then the flash client will connect to the chat server and will request the chat session with the received chat operator JID. Chat server will establish session. As soon as CRM user closes the chat client window or the chat operator quits from his chat client the interceptor plug-in will catch the session completion and will save it in the chat server database. After that it will transfer the chat session history to the CRM connector which in its turn will connect to the integrator MS CRM and will create a new case and an appropriate service activity.

Chat server administrative interface
The Administrative User Interface is designed for the CRM Integrator’s Administrators. It allows them to perform the operations described above: manage chat operators and manage installations.
Manage Operators
Operators List
The screen depicted below lists all chat operators registered by the CRM Integrator and provides the options to register new operators, edit or delete existing ones. Also it allows administrators to import the chat operators from the CRM Integrator MS CRM users list.

Add/Edit Operator
The Add/Edit Operator form contains all VCARD fields that further can be used for configuration of the best available operator selection algorithm.

Import the chat operators from the CRM Integrator MS CRM users list
Since most of the chat operators are CRM integrator employees and their activities need to be logged in MS CRM the OnlineHelp product has a way to connect to the Microsoft CRM and provide an administrator with a list of MS CRM users. For each selected MS CRM user the appropriate record (chat operator) will be created on the chat server. In this case the only thing that needs to be done by the chat operator is to install any XMPP client such as PSI, enter his identifier (JID) and the rest details (such as names and addresses) will be retrieved from the server.

Manage Installations
Installations List
The installations can be managed on the screen displayed below.

Add/Edit installation

Adding/Editing OnlineHelp installation details for a particular MS CRM organization are performed on the screen displayed above.
The Edit button opens a form for configuration of the best available operator selection algorithm business rules.
How to configure the best available operator selection business rules engine
The best available operator is evaluated each time a new session is requested. The program evaluates the business rules for all online operators. The operator with the highest result will be assigned to handle the session.
The interface used for configuration is displayed below.

The appropriate config file is given below:
<?xml version="1.0" encoding="utf-8"?>
<config>
<fieldMapping>
<field userField="fullname" name="fullname" />
<field userField="nickname" name="nickname" />
<field userField="address1_line1" name="street1" />
<field userField="address1_line2" name="street2" />
<field userField="address1_city" name="city" />
<field userField="address1_stateorprovince" name="state" />
<field userField="address1_postalcode" name="postalcode" />
<field userField="address1_country" name="country" />
<field userField="address1_telephone1" name="telephone" />
<field userField="internalemailaddress" name="email" />
<field userField="title" name="position" />
<field userField="businessunitid" name="department" />
<field userField="siteid" name="url" />
<field operatorField="FN" name="fullname" />
<field operatorField="NICKNAME" name="nickname" />
<field operatorField="ADR:STREET" name="street1" />
<field operatorField="ADR:EXTADR" name="street2" />
<field operatorField="ADR:LOCALITY" name="city" />
<field operatorField="ADR:REGION" name="state" />
<field operatorField="ADR:PCODE" name="postalcode" />
<field operatorField="ADR:CTRY" name="country" />
<field operatorField="TEL:NUMBER" name="telephone" />
<field operatorField="EMAIL:USERID" name="email" />
<field operatorField="TITLE" name="position" />
<field operatorField="ORG:ORGUNIT" name="department" />
<field operatorField="URL" name="url" />
</fieldMapping>
<ruleset singleSessionWeight="10">
<rule weight="160">
<condition userField="country" operator="equal" value="USA"></condition>
<condition operatorField="name" operator="equal" value="Dave Richards"></condition>
</rule>
<rule weight="160">
<condition userField="country" operator="equal" value="UK"></condition>
<condition operatorField="name" operator="equal" value="Willis Johnson"></condition>
</rule>
<rule weight="180">
<condition userField="city" operator="equal" value="New York"></condition>
<condition operatorField="name" operator="equal" value="Jeff Price"></condition>
</rule>
<rule weight="200">
<condition userField="position" operator="equal" value="CEO"></condition>
<condition operatorField="name" operator="equal" value="Jeff Price"></condition>
</rule>
</ruleset>
</config>