Skip to main content

Overview

The Widget Framework provides an access to the Widget API which you can use to create widgets that suit your business needs. To develop a widget, you can use the technologies and frameworks that are familiar to you, providing that the element is defined as a custom element, the Web Component is then bundled into a single .js file, and the widget JSON file is in the correct format with all of the required properties.

note

The old Workspaces client supported multiple widget files, but this on occasion caused issues for customers with intermittent and difficult to debug race conditions. To avoid this, the new client only supports a single build file per widget.

After creating your widget, you can import it in the Avaya Workspaces Widget Manager uploading the widget JSON file.

The procedures given below for generating the Web Component build files are a loose guide only, as there are a number of technologies and methods to do this. This document includes examples for three different Web frameworks: Angular, LitElement, and React.

Requirements and Limitations#

There are no restrictions on operating systems for widget development. However, there are the following limitations about widgets:

  • Widgets using APIs that require interactions are bound to work cards in Workspaces and cannot access or use other Workspaces features unless that feature is requested and supported by the UAC component in Avaya Breeze. You can create a widget and add it to the Home tab and no interactions are required for this.
  • Widgets do not have access to the Client JavaScript SDK directly.
  • Loading ActiveX controls, Flash and Java Applets inside widgets is possible but not recommended as these are considered legacy web technologies prone to browser incompatibilities and security issues. When writing widgets, you use web technologies, such as JavaScript, HTML, CSS, and JSON. You can write a widget that implements a screen sharing protocol such as VNC ⁄ RDP to access a legacy application that is not web based. Widgets inherit the browsers security model and security permissions of the underlying network and the security model of the Workspaces solution. It is recommended that you host the widget library on internal web servers only accessible from VPN or restricted networks.

To create a widget, you can use any Web Component framework. You need to install the following components compatible with your system:

  • NodeJS 6.11.3 LTS (or higher)
  • NPM 5.3.0 (or higher)
note

If you need help when installing NPM and NodeJS, consult the NPM installation guide.

Capabilities#

The Widget Framework uses the concept of capabilities to indicate the current capability of an Agent to perform an operation. Capabilities are set by the server and should be taken as an indication that the operation will succeed if attempted. Please see the getCapabilities method and onCapabilitiesEvent event for usage.

The following are examples of Interaction capabilities:

  • canAccept.
  • canHold.
  • canUnhold.
  • canSendMessage.

The following are examples of Agent capabilities:

  • canLogin.
  • canSetReady.
  • canSetNotReady.
  • canLogout.
  • canSetAdditionalWork.