Cisco Finesse Architecture

Cisco Finesse is architected from the ground up to provide the optimal contact center agent and supervisor user experience through desktop simplification. Finesse supports desktop simplification in two ways:

  • 1. Allowing developers to create their own OpenSocial Gadgets that are deployed inside of the Cisco Finesse OpenSocial Gadget Container. These gadgets may or may not use the Finesse API.
  • 2. Provide a Finesse API to be used inside of any thick or thin client application.

Cisco Finesse Gadgets

Cisco Finesse is part of a class of applications called Enterprise Mashups. An Enterprise Mashup is a web-centric way of combining (or mashing up) applications on the client-side. This approach is particularly useful for contact center agents because they often need to work in multiple applications at the same time. Agents and supervisors have access to all of the applications that they need to service calls inside of a single application, Cisco Finesse. It is great for IT because each of the applications can be administered uniquely. For example, if IT needed to upgrade the CRM, they could do that without needing to do anything special on Cisco Finesse.

So what exactly is an OpenSocial Gadget? An OpenSocial Gadget is an XML document that defines metadata for an OpenSocial Gadget container. The gadget includes html, css, and javascript.

The Cisco Finesse Server is an OpenSocial Gadget Container. The Gadget Container's role is to take the gadget spec as input, and output the HTML, JavaScript and CSS as one document.

  • 1. Finesse will fetch the Gadget xml file from a 3rd Party web server or the Finesse Server
  • 2. Cisco Finesse turns the page into HTML and sends the page back to the client(agent)
  • 3. The gadget includes JavaScript and references to various web services. Browser can't have connections to servers in multiple domains due to security considerations so Cisco Finesse functions as web proxy so all requests from the browser use a single domain
  • 4. The proxy will pass along the request the web services referenced in the gadget
  • 5. Web Services will pass the information back to the Proxy
  • 6. Finesse Proxy will pass this back to the client

Finesse REST API

Cisco Finesse provides a REST API for performing agent and supervisor actions programmatically. This REST API is easy to use, modeled after HTTP, and works in thick and thin client integrations. The Finesse developer guide explains the details for each of the API's, but here is a high level description of the API functionality.

The Finesse REST API handles request/response, for example initiating a call or agent state change, but another important element of desktop functionality is processing of events. For example, when a call is sent to the agent, the Finesse Server needs to process the CTI Event and send the event to the client. Finesse uses BOSH/XMPP, an industry standard, to deliver this functionality. The specific events supported by Finesse are described in the Developer Guide.

This is a high level view of how the events are processed:

Next Steps

The Cisco Finesse team recorded a developer training video to help you understand how to develop applications in Finesse. The webex recording is here: https://communities.cisco.com/docs/DOC-28452