Feedback

  • Contents
 

Introduction to Interaction Desktop Add-In

Note:

While the client system is called Interaction Desktop, the namespace and the actual APIs are called InteractionClient i.e. ININ.InteractionClient.AddIn Namespace.

This technical reference provides a high-level view of scenarios and steps for creating add-ins. Detailed information about add-in classes, methods, and other technical features can be found in the API help, which is available on the PureConnect Developer Portal.

Add-In scenarios

Following are scenarios in which you might want to write an add-in:

  • Create a Screen Pop

  • Create a Queue Monitor (respond to interaction adds/changes/removes)

Conditions

Following are conditions for writing an add-in:

  • Add-ins are not deployed or installed by PureConnect. Therefore, you must install and deploy them.

  • If you create an add-in, you must create an install for it.

  • You must provide your own error checking and security.

  • The key difference between using IceLib and DDE (customization points) is that you use IceLib to create a standalone application. With an add-in, on the other hand, you must deploy your add-in DLL alongside the Interaction Desktop client.

  • Screen pops are the only add-ins that require server-side configuration. Other add-ins, such as queue monitors, run only on the user's client.

Versioning

As with any public API, versioning is a concern. The Interaction Desktop Add-in API takes a conservative approach to versioning by using a specific API version number. This version is not the same as a file version number, which gets increased for each release. The API version number is increased when a breaking change is made to the public API. Note that if the API changes only in an additive, non-breaking way, then the version number will not increment. The version number will only increment when a breaking change is made.

Note:

A breaking change is defined as a change to the public API that would require an add-in to be recompiled to accommodate the change.

If they are required, breaking changes will only be made between full releases.

Interaction Desktop detects an add-in's version by the use of an assembly-level attribute, ININ.InteractionClient.AddIn.AddInVersionAttribute. The Interaction Desktop Add-in assembly, ININ.InteractionClient.AddIn.dll, contains this attribute specifying a specific version. Interaction Desktop will only load add-ins that match the current version specified in ININ.InteractionClient.AddIn.dll. The current version can be determined by using the ININ.InteractionClient.AddIn.AddInVersion.CurrentVersion field.

The version numbers must match to ensure that both the Interaction Desktop and the third-party add-in use the same API.

If an add-in exists with an incorrect version number, a trace message will be written into the Interaction Desktop's log file to help with diagnostics.

Add-In developers are strongly encouraged to use the ININ.InteractionClient.AddIn.AddInVersion.CurrentVersion field as described below in the Creating Add-Ins section. The field is defined as a const which means the value will be compiled into the Add-In at compile time, and when the API version changes, a recompilation of the Add-In will be required to pick up the new version. This allows developers to compile against an Add-In version without having to know the exact version number required.

Deploying an add-in

Deploying a single add-in is relatively simple procedure. To do so, just copy your add-in's DLL to a subfolder called Addins under the directory in which Interaction Desktop is installed. For example,

C:\Program Files (x86)\Interactive Intelligence\ICUserApps\Addins

Or

C:\Program Files\Interactive Intelligence\ICUserApps\Addins

If the \Addins subfolder doesn't exist, create it. If the folder already exists, simply place your files in it.

Note:
If your add-in references other DLLs, they must also be in the folder.

Writing an installer for an add-in

You can use any of several tools or languages to create an install program for the add-ins that you develop. So, the only requirement is that your installer copies the DLL for your add-in, and any other DLLs that your add-in references, to the \Addins subfolder described above.