1. Field of the Invention
The present invention relates to computer telephony, and in particular to integrating telephony data with computer applications.
2. Description of Related Art
Contact center products use Computer Telephony Integration (“CTI”) technology in many ways. CTI technology provides programmatic methods for accessing CTI data and executing CTI methods. CTI data can include information about the calling number, called number, caller entered digits, and the queue the call came from. CTI methods can include call control operations such as answering a call, making a call, and transferring a call. In addition, CTI methods can include Automatic Call Distribution (“ACD”) specific operations. For example, ACD specific operations can include setting an agent's state and querying the state of a queue of customers.
A classic use of CTI technology is for populating data into a software application running on an agent's desktop. This is called a screen pop. A screen pop is typically executed when an agent begins a voice conversation with a customer. The goal of the screen pop is to increase the agent's productivity and the customer's satisfaction by reducing the amount of time to service the customer and automating the display of information about the caller.
The second application in which CTI data 110 can be integrated is an enterprise's business application 140. The enterprise application has information about the customer or the topic that the customer is calling to discuss. The enterprise business application may have: 1) been developed prior to the desire to integrate CTI data with it (such as a preexisting application); 2) been developed from a third party software vendor or by the customer's IT staff; and/or 3) been a shrink-wrap or a custom application.
One example of how data can be integrated with the enterprise business application is by using the “calling number” or Automatic Number Identification (“ANI”) to index into a database of customer records, and display information about the customer to the agent prior to the beginning of the conversation. Another example involves using data collected from an IVR is to collect a trouble ticket number from the caller, index into a help desk system and display information to the agent about the caller's trouble ticket prior to the beginning of the conversation.
There are three general approaches for integrating CTI data with enterprise applications. The first two approaches are to use: 1) a standard programming language such as visual BASIC, C++ or Java with a CTI API; or 2) a proprietary scripting language that has procedural extensions for accessing the CTI data. The third approach involves a non-procedural specification of what telephony data is to be integrated with which desktop application. These are represented in
The first approach extends standard programming language by defining a new application programming interface for that standard programming language. The API defines a set of methods by which a programmer can gain access to the CTI data. It requires knowledge of a given procedural programming language and learning about a CTI API. An Information Technology (“IT”) department must have access to the source code of its enterprise application, or have a third party software vendor do the CTI integration. The application source code is modified to call the relevant API functions in the appropriate place in the program's logic.
The second approach is for a CTI vendor to define a self-contained proprietary scripting language. The scripting language provides a programming environment for a customer to develop enterprise applications. It provides a procedural language for writing programming logic. The language constructs provide access to CTI data. The scripting language is a self-contained environment in which the desktop application is executed. As such the scripting language approach is a closed environment that is explicitly limited by the script functions provided by the vendor (or creator). For example, access to host data in a script can only be done if the vendor provides methods such as terminal emulation and database access. Integration of CTI and/or host data into a desktop application will require the script vendor to provide additional scripting methods and for the enterprise's IT staff to modify their desktop applications.
These first two approaches suffer from their dependence on programming skills. These approaches require that an installer or user have programming skills to set up and operate the CTI. The approaches also can be time consuming when a programmer needs to develop a specific program for integration. Thus, a need exists for systems that allows a user or installer to integrate and expand the use of telephony data without requiring programmer skills, and to extend the CTI functioning without requiring a heavy investment of time by a non-programmer.
The third approach, unlike the above two approaches, is user-friendly, and does not require that an installer (or user) have programming skills to set up and operate the CTI. The third approach provides a method for declaring in a non-procedural manner what telephony data is to be integrated with which enterprise application. It assumes that an enterprise's host and desktop applications exist and that there be no modifications made to their source code.
This third approach is used in the work of Walsh et al., “Call processor for a computer telephone integration system” in U.S. Pat. No. 5,642,410; Walsh et al., “Switching device independent computer-telephone integration system”, U.S. Pat. No. 5,655,014 and Walsh et al., “Computer telephone integration system”, U.S. Pat. No. 5,655,015.
Although the Walsh implementation of the third approach enjoys the advantages of using a non-procedural specification for computer telephony integration, it does not effectively integrate CTI data with existing Web-based enterprise applications in a non-procedural manner. A need therefore exists for the effective integration of CTI data with Web-based enterprise applications.
Advantageously, the present invention effectively integrates CTI data with Web-based enterprise applications, and more generally, with any Web-based application. This may be accomplished through, for example, a workflow automation model and integration of telephony data with a Web browser. Advantageously, the present invention in some embodiments extends integration to include Interactive Voice Response (“IVR”) collected information in addition to traditional telephony data. Advantageously, the web browser may be imbedded in an agent desktop, so that no modification to the source code of the Web application is required.
Advantageously, a user of the invention does not need programming skills to set up and operate. A system administrator can provide a non-procedural specification of what telephony data is to be integrated with a Web-based application. The end user can develop the client application using standard browser capabilities. And host applications are similarly developed using technologies that the user desires.
One embodiment is a method of computer telephony integration that establishes an agent desktop; embeds a web-based browser in the agent desktop; integrates a web-based application with the browser; and establishes a workflow automation model having a plurality of events, a plurality of respective rules for the events, and a plurality of respective actions for the rules, wherein each of the rules is expressed as one or more relations on computer telephony integration (“CTI”) data, and wherein at least one of the actions is an HTTP action having a request data field. In this method, the occurrence of one of the events in the workflow automation model causes an evaluation of a respective one of the rules. Then, upon valid evaluation of the evaluated rule executes the HTTP action with the browser to obtain requested data in accordance with the request data field; and provides the requested data to the web-based application.
Another embodiment is a contact center system having a broadband internet connection; a computer telephony integration (“CTI”) server; and a client computer coupled to the internet connection and having associated therewith computer instructions for: establishing an agent desktop on the client computer; embedding a web-based browser in the agent desktop; integrating a web-based application with the browser; and establishing a workflow automation model comprising a plurality of events, a plurality of respective rules for the events, and a plurality of respective actions for the rules, wherein each of the rules is expressed as one or more relations on computer telephony integration (“CTI”) data, and wherein at least one of the actions is an HTTP action having a request data field. Then, the system upon occurrence of one of the events in the workflow automation model, populates a respective one of the rules with CTI data from the CTI server, and evaluates the populated rule. Upon valid evaluation of the evaluated rule, the system executes the HTTP action with the browser to obtain requested data via the internet connection in accordance with the request data field; and provides the requested data to the web-based application integrated in the browser.
Yet, another embodiment is a computer readable medium having computer program instructions stored thereon, having: instructions for establishing an agent desktop; instructions for embedding a web-based browser in the agent desktop; instructions for integrating a web-based application with the browser; and instructions for establishing a workflow automation model comprising a plurality of events, a plurality of respective rules for the events, and a plurality of respective actions for the rules, wherein each of the rules is expressed as one or more relations on computer telephony integration (“CTI”) data, and wherein at least one of the actions is an HTTP action having a request data field. The computer program instructions further having instructions for, upon occurrence of one of the events in the workflow automation model, evaluating a respective one of the rules; instructions for, upon valid evaluation of the evaluated rule, executing the HTTP action with the browser to obtain requested data in accordance with the request data field; and instructions for providing the requested data to the web-based application.
The computer telephony integration approach described herein, which uses a workflow automation model, allows a user such as, for example, a system administrator, to provide a non-procedural specification for the integration of CTI data with existing enterprise applications as well as web-based applications, whether or not enterprise applications. The user is not required to have programming skills, and even a non-programmer may set up and operate the system in a few hours in comparison to days that would be required to develop a similar program. The techniques described herein may be implemented on commercially available personal computers, workstations, and servers as appropriate, or on customized special purpose computing equipment.
Desktop Workflow Automation Model
Common goals of a desktop workflow automation, whether web-based applications or not, are often to: 1) integrate customer contacts (more generally, telephony information) with an enterprise's software applications without the modification of the application's source code; 2) provide a method for customers to configure the operation of a product to match their business needs; 3) allow workflow rules to be specified by a contact center's operations staff without the use of IT staff; and 4) automate mundane and complex tasks for contact center employees.
The implementation of workflow automation meets these goals. It excels in automating a contact center's agents interactions with customers on voice calls through the use of a simple, yet powerful workflow model. A workflow is modeled as a specification setting forth a set of events, rule(s) and action(s). An event is an occurrence of a contact center activity that corresponds to a real world state transition such as a phone ringing at an agent position, an agent ACD state transition or time of day. For each event there are sets of rules that are evaluated in order to determine what actions to perform. A set of actions is defined for each set of rules. The action set defines the integration of the telephony data with a desktop application and the execution of the desktop application.
For example,
When an event occurs, a rule is evaluated to determine if the workflow should be executed. A rule may be expressed as a set of data conditions. A data condition is a relation on CTI data.
When a workflow is determined to be valid, a set of actions is executed. The actions may specify the integration of CTI data with an enterprise's application, execution of a CTI method, or the execution of a contact center operation. An action is an occurrence that happens when a rule is met.
Integration With Web Technologies
Web based computer applications are increasingly becoming an important segment of contact center operations. Advantageously, CTI data including IVR data are integrated with web-based applications using a web-based browser. The web-based browser may be embedded in an agent desktop using any suitable approach. One suitable approach is to use a Windows 32 (“Win 32”) application for workflow interpretation and execution, and embeds a custom web-based browser in the agent desktop.
Another suitable approach is to use a commercial web browser that embeds the agent desktop functionalty. Suitable commercial browsers include Microsoft® Internet Explorer which is available from Microsoft Corporation of Redmond, Wash., and Firefox Web Browser which is available from Mozilla Foundation of Mountain View, Calif. In this approach, the application which executes the workflow is a combination of a server side application and a client side commercial browser. The client side browser application executes in the commercial browser, and follows a web application design instead of the Windows 32 approach.
The technology of the commercial browser approach uses two frames within the commercial browser. The first frame (or top frame) hosts an applet implementing the agent application; the second frame (or bottom frame) hosts a customer's browser application. Alternatively, the features may be implemented or windows instead of frames. The applet implementing the top frame uses the bottom frame as the embedded browser for: end user pages, http post/get results, and supervisor URL pushes. (The same functionality exists in the browser embedded in the Windows 32 agent desktop.) Preferably, all browser controls of the commercial browser are disabled so that users (or agents) cannot inadvertently exit the applet or browse to non-administered web sites. Preferably, the disablement of the browser controls includes removal of the browser toolbars and the address bar, and disabling of the browser right click menu. Preferably, the basic browser controls are supplied by the applet running in the top frame including forward, back, refresh, and stop controls.
In both approaches, the following features illustratively behave the same for a custom web browser as well as commercial web browser.
Specification of Workflows
In this section, our attention turns to the specification of workflows for integrating CTI data including IVR data with web based applications. A web browser embedded in the agent desktop, as described above, offers advantages. For example, advantageously, no modification to a browser based application, no custom programming and no proprietary script based programming are required. The end user may develop the client application using standard browser capabilities. The host application may be developed using the technologies that the user desires.
Embedding a web browser in the agent desktop implements the concept of an agent desktop that includes a container and hosts customer applications. This reduces the number of windows that must reside on the agent's desktop and optimizes the use of screen real estate. It also presents opportunities for easy integration with desktop applications and for the telephony application to easily use the web based application's data. For example, the telephone numbers included in the web page may be automatically converted into hyperlinks as the page is displayed to the agent. This agent may click the link to dial a customer. Similarly it will be possible to do transfers and conferences from telephone numbers in the web pages.
The application integration opportunity for the workflows is described in the following section.
HTTP Post & Get Workflow Actions
The desktop workflow automation is extended to support the rapid and easy integration of telephony data with web based computer applications. The integration with the embedded browser uses the specification of the event and rule as described previously.
A new type of action is now described for integrating with the browser. The new type of action is called an Hypertext Transfer Protocol Action or “HTTP Action”. The specification of an HTTP action only requires the user to have a limited knowledge of the web page that provides access to the enterprise application. Pointing the browser to the desired page, filling in any form data on that page and executing the page may be used to obtain this information. For an HTTP get action the required information appears in the Universal Resource Locator (“URL”). For an HTTP post operation, the person who implemented the web page may need to be consulted.
The request data fields that are specified in the HTTP action provide for the integration of telephony data with the computer application. The request data fields correspond to values entered into a form that are to be passed to a script invoked by the web server. The request data may be telephony data or user-defined data. Telephony data may include traditional CTI data, IVR collected data, and host data from IVR scripts (i.e., database DIPS or 3270/5250 terminal emulation). The user defined data may be strings that the web page requires such as language encoding.
The HTTP action and request data field are parts of the workflow automation that provide a method for integrating telephony data without requiring a programmer to integrate it. The HTTP action improves on keystroke macros' action in several ways. The keystroke macro method requires multiple keystrokes to navigate to the web page of interest and possibly more keystrokes to navigate to the input control for the data. Using keystroke macros with a web application is similar to a terminal emulation application with regard to screen navigation on a host computer. The HTTP action, however, requires no screen navigation.
Another exceptional advantage of the HTTP action over keystroke macros for web application integration is the absence of the need to manage the timing of the integration of the telephony data with the host application. Browser based applications may have varying response times based on the load on the web server application. The keystroke macros provide a flexible mechanism for managing the timing by allowing the system administrator to control the speed at which the keystrokes are executed, and allows delays to be placed in the keystroke stream as needed. However, this is additional work that needs to be done, and this timing may vary based on the load on the web server. In contrast, there is no need to manage the synchrony of execution between the web server application and the browser when using as HTTP action.
Before deploying a workflow of the invention in an operational contact center, a user should verify the correct operation of a workflow. There are multiple ways to do the verification. Approaches range from requiring a customer to have a full laboratory system, as one approach, to using simulation tools and tools, as another approach. In the simulation tools and tools approach, the tools are integrated into the system administration tool used to define workflows. The simulation tool approach advantageously allows for immediate verification of the correctness of the workflow using valid data while operating against the actual host application.
Using the HTTP Action Setup screen 1100 shown in
In the example using
Desktop Execution of Workflow
The agent desktop has two main functions. One function of the agent desktop is to provide a set of Graphical User Interface (“GUI”) controls that enable the agent to perform standard ACD functions. The other function of the agent desktop application is execution of the workflows and enablement of portions of the GUI controls. The desktop may use a state machine model to interpret a workflow's events and rules in order to determine when to execute the associated actions. Similarly, a state machine may be used to determine which GUI controls should be enabled.
The agent desktop state machine is based on a set of events, rules and actions. The events model changes in the real world based on the state of a customer contact or an agent. There is a finite set of events. For example, for a telephony contact, the events describe the state of a phone device and may include ringing, answered, and dropped. When an event occurs, a set of rules is evaluated to determine if any are valid.
For example, a rule can be that the telephone number dialed by a customer is one stated in a list. A user defines the set of rules that are of interest for an event. If a rule evaluates in a certain way, such as “true,” a set of user defined actions are executed. The integration of a web page with telephony data described in this document is an action. An action may be to execute a telephony or agent state operation (i.e., change the agent's ACD state), and that action may result in a new event occurring. A user defines the set of actions that are of interest when a rule evaluates true for a given event.
A workflow system may be defined as follows.
A software system that implements a workflow interpreter may be organized as a finite state machine.
The invention is set forth in the following claims. A variety of different permutations of the invention are possible, and the invention is not meant to be limited by this disclosure, or limited to the embodiments described herein. The embodiments are merely exemplary, and one skilled in the art will recognize that many others are possible, and that numerous modifications and adaptations can be resorted to without departing from the scope and fair meaning of the instant invention as set forth below by the claims.
Although the present invention has been described in considerable detail with reference to certain preferred versions thereof, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions described herein.
All features disclosed herein, and all the steps of any method or process disclosed herein, may be combined in various combinations, except combinations where at least some of such features and/or steps are mutually exclusive. Each of the features disclosed herein, can be replaced by alternative features serving the same, equivalent, or similar purposes, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example of a generic series of equivalent or similar features.
This application claims the benefit of U.S. Provisional Application No. 60/659,758 filed Mar. 7, 2005, which hereby is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60659758 | Mar 2005 | US |