Frequently Asked Questions (FAQ)
Can I write a widget that a supervisor can use to send messages to a widget used by agents?
No. Widget to widget communication is intended so that two or more widgets can communicate with each other within a single instance of Workspaces. For example, when an agent receives a call and accepts the work card, two or more widgets can communicate and access details about the call and perform actions such as querying a remote database or loading a web page, etc. Widget communication can either be bound by an interaction ID, a unique widget ID, or no ID. If an interaction ID is used the communication only occurs within the context of the work card. If a widget ID is used, the communication will only occur between the publishing widget and the consuming widget. If no ID is used, the message will be picked up by any widget subscribing to the onMessage event.
How can I access the prompted digits from a customer call from a widget?
Prompted digits information is available in the "onInteractionEvent" which is documented in the Widget API.
How can I access an external CRM system from my widgets?
Widgets offer several options for integrating external systems such as CRM systems.
- IFRAME - a simple widget can be written to encapsulate the CRM website in an IFRAME and make the CRM system accessible via a web page.
- REST API - If the CRM system has a REST API, a widget can be written to directly query the CRM's REST API, this approach would be considered a pure client-side integration.
- SALESFORCE - Workspaces comes with an in-built Salesforce CRM adapter that provides client-side integration out of the box. Salesforce CRM data is available as a data object in the Widget API.
- BACKEND - a custom CRM can be integrated as a Breeze snap-in and integrated with Workspaces via the UAC component and Client JavaScript SDK, then this integration can be exposed in the Widget API in a similar fashion as the native Salesforce CRM adapter.
- PROXY - a custom CRM can be integrated via a Proxy REST API or a Proxy Web Application. A proxy REST API wraps an existing CRM system and makes it REST capable so that widgets can access CRM data indirectly via the proxy. A proxy web application is a simple web app/page that encapsulates the CRM interface and makes it accessible via an IFRAME indirectly without blocking any content or permission restrictions.
How do I import a widget?
Each widget contains a configuration file in JSON format (e.g. hello-world.json
). This configuration file can be imported from the Widget Manager section when logged in as an Administrator.
Can I use another framework/library other than Angular to write widgets?
Yes, you can use any framework or library you wish as long as it follows the Web Component Standard. Examples using Angular, React and LitElement can be found in the corresponding sections.
Are the widgets contained or can they use other features in Workspaces?
Widgets can exists as part of the Home layout or a Channel layout and can only access the features and functionality that are exposed on the Widget API.
How do you generate the widget files?
There are no tools to generate the widget files in Workspaces. Instead, we recommend that developers modify the widgets in the sample library and adapt them to their needs.
Where and how do you load widgets?
Core widgets like Chat, Email, Customer Details are bundled in Workspaces and do not need to be loaded, they are available by default in every Workspaces version. External widgets need to be hosted on a remote web server via HTTPS with CORS enabled. The URL for this web server needs to be configured so that Workspaces can load the widgets.
What are these widgets in Workspaces?
There are two types of widgets in Workspaces.
- Core widgets - these are the default widgets provided in Workspaces and developed and supported by Avaya, for example the Chat, Email, Customer Details widgets, etc. These widgets are bundled in every version of Workspaces.
- External widgets - these are widgets developed by a third-party and maintained externally. These are typically widgets written by Avaya customers. These widgets use the Widget Framework API and implement custom functionality (e.g. integrate with customer infrastructure).
How do you localize a widget?
Localization support for external widgets is not supported in Workspaces and should be handled within the external widget itself.
Can I access the Client JavaScript SDK from my widget?
Widgets don't have access to the Client JavaScript SDK directly.
How can my widget access a legacy application that it not web based?
Widgets are written using web technologies (JavaScript, HTML, CSS, JSON). You can still write a widget that implements a screen sharing protocol such as VNC/RDP to access a legacy application that is not web based.
Can you load ActiveX controls, Flash or Java Applets inside widgets?
It is possible but not recommended as these are considered legacy web technologies prone to browser incompatibilities and security issues.
Are widgets secure? Are there any risks of leaking data to unauthorized applications or users?
Widgets inherit the Browsers security model and security permissions of the underlying network and the security model of the Workspaces solution. We recommend that the widget library is hosted on internal web servers only accessible from VPN or restricted networks.
Do you provide custom CSS UI components such as buttons or forms that I can use in my widgets?
Custom CSS UI components are provided in Workspaces via the NEO CSS Framework.
Can I host my own CSS style sheets and use them in my widgets?
Yes. Custom CSS style sheets can be used as long as they don't overwrite the global web font used by Workspaces or implement a CSS reset.
Do you have examples of more complex widgets or larger applications integrated into Workspaces using the Widget API?
Not at this moment. The sample widget library provided is intended to showcase the Widget API and most widgets are intentionally simple.