Many businesses and organizations offer services to consumers and other clientele remotely. While a growing portion of these services are becoming automated, human interaction is often preferred (and sometimes necessary) for more difficult or complex cases. Naturally, many businesses and organizations employ human representatives to provide (technical) support and/or information to inquiring consumers and other interested parties regarding products and/or services. To handle large volumes of requests, a popular approach used by many organizations is to use one or more contact centers staffed by human agents. Many individualized contact centers are centralized to provide sufficient space and resources for many agents working simultaneously. For example, a larger contact center may support hundreds or thousands of workstations in a single building or campus of buildings. In that manner, maintenance and installation of all of the infrastructure (e.g., computers, workstation cubicle, etc.) would be centralized.
These contact centers typically handle large volumes of service or fulfillment requests by telephone (or communication technologies that simulate a telephonic communication). Typically, agents will answer calls in the order they are received, and when the number of available agents is surpassed by the number of pending calls, a chronological queue is formed that agents may respond to whenever available (e.g., a previous call is completed).
A popular example of a contact center is an inbound contact center that manages incoming calls to provide services to incoming callers. For example, an inbound contact center may provide support to complete a sale, handle issues or questions regarding products (e.g., installation instructions, warranty service, etc.), handle calls related to services (e.g., banking, collections, police, fire, alarm, etc.), and other similar types of services. Another example of a contact center is an outbound contact center that initiates calls. An outbound contact center may provide telemarketing for a product or service, enable the solicitation of charitable or political donations, provide debt collection services, perform polling or market research, etc.
Each individual support session or case depends on a variety of factors. These factors can include, for example, the caller or customer's own expertise or knowledge, the agent's skill and experience, the complexity of a particular product or service, the policies involved in addressing the product or service, and even the strength or quality of the connection. As a result, a support session can have an extremely variable duration. This uncertainty can make it difficult to predict the number of agents required to staff a contact center to adequately provide service to callers while simultaneously minimizing overstaffing (and thus inefficient resource allocation) and caller wait-times.
Several approaches have been introduced to address these issues. One common approach is to use different tiers of agents. This approach is popular for technical support and troubleshooting cases, particularly for software products. In essence, issues are ranked according to complexity. Callers or customers can indicate or describe the issue to an attendant (which can be the first tier of agents), the agent can prescribe some initial ameliorative actions, or if the issue is common, well-known, or simple enough, can provide a specific set of instructions for the caller to perform. However, if the attendant is unaware of a solution, unable to provide a solution, or if the initial ameliorative action is insufficient, the attendant can “escalate” the case to the next tier of agents, which typically have a higher level of training, experience, and/or expertise.
Another approach is to use automated interactive systems. These systems can replace a human attendant with an automated service that collects user input corresponding to directed prompts. Common for call-centers, the caller or customer can use touch-tone phones to indicate selections when provided a list of options. Often, these options are presented to the caller in successive stages that further define the issue or product of interest to the caller.
However, while collecting information from the user can expedite the support-handling process, agents may be limited to supporting users with the same computing resources available to the agents at their workstations. To adequately serve all sectors of an organization's products or services then requires agents with workstations that have every possible combination of the specific products, services, and versions available. Naturally, for an organization with a broad range of products and services or a long history of products and services to support, properly provisioning and staffing for every possible combination can be prohibitively costly.
This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
According to embodiments of the present invention, various computer implemented methods are provided for dynamically delivering user-customized instances of computing environments to contact center agents. User input collected using automated interaction techniques is received in a contact center. The collected information is used to select or determine instances of computing environments that best approximate the particular environment for which support is being requested. Once identified, an instance of the computing environment is sent to a workstation of an available agent and a direct communication session is brokered between the agent and the requesting user. According to various embodiments, the method may include dynamically generating the instance as a virtual machine from a server in the contact center or otherwise communicatively coupled to the workstation of the agent. Alternately, the method may include distributing pre-generated instances of a virtual machine.
According to another embodiment, a method for receiving support requests for a call center is provided. According to one embodiment, a communication (e.g., a call) session is initiated at a call center between a customer or user of a product or service having technical support or services being provided by the a center. User input is collected using an interactive voice response (IVR) system using a series of directed queries that prompt user input to select (using a touch-tone phone or touch screen, for example) from options that characterize or describe the particular product or service (e.g., software or operating system) the user is seeking support for. A corresponding computing platform or environment is identified from the collected information, and a virtual instance is either dynamically generated (if necessary) or a pre-generated instance is distributed (if available) to the workstation of the next available agent.
According to another embodiment, a method for receiving support requests for a contact center is provided. According to one embodiment, a communication (e.g., a call) session is initiated at a contact center between a customer or user of a product or service having technical support or services being provided by the a center. User input is collected using an automated web-based user interface system that presents (graphically and/or verbally) a series of directed queries that prompt user input to select (using a user input device, virtual input device, augmented reality input device, or touch screen, for example) from options that characterize or describe the particular product or service (e.g., software or operating system) the user is seeking support for. A corresponding computing platform or environment is identified from the collected information, and a virtual instance is either dynamically generated (if necessary) or a pre-generated instance is distributed (if available) to the workstation of the next available agent.
The accompanying drawings, which are incorporated in and form a part of this specification and in which like numerals depict like elements, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the disclosure.
Reference will now be made in detail to several embodiments. Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. However, it will be recognized by one skilled in the art that embodiments may be practiced without these specific details or with equivalents thereof. In other instances, well-known processes, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects and features of the subject matter.
Portions of the detailed description that follow are presented and discussed in terms of a process. Although operations and sequencing thereof are disclosed in a figure herein describing the operations of this process, such operations and sequencing are exemplary. Embodiments are well suited to performing various other operations or variations of the operations recited in the flowchart of the figure herein, and in a sequence other than that depicted and described herein.
Some portions of the detailed description are presented in terms of procedures, operations, logic blocks, processing, and other symbolic representations of operations on data bits that can be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer-executed operation, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of operations or instructions leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout, discussions utilizing terms such as “accessing,” “writing,” “including,” “storing,” “transmitting,” “traversing,” “associating,” “identifying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments described herein may be discussed in the general context of computer-executable instructions residing on some form of computer-readable storage medium, such as program modules, executed by one or more computers or other devices. By way of example, and not limitation, computer-readable storage media may comprise non-transitory computer storage media and communication media. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or distributed as desired in various embodiments.
Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, compact disk ROM (CD-ROM), digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can accessed to retrieve that information.
Communication media can embody computer-executable instructions, data structures, and program modules, and includes any information delivery media. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared and other wireless media. Combinations of any of the above can also be included within the scope of computer-readable media.
Embodiments of the present invention are described within the context of a contact center, e.g., a contact center used to facilitate interactions and/or communications between agents and customers through a telephone network, such as handling incoming and outgoing calls. In one or more embodiments, a contact center is employed to provide services to customers on behalf of a third party client through various systems and methods of interacting and/or communicating with the client. A typical configuration of a contact center includes, for example, a centralized location remotely located from a substantial portion—if not vast majority—of the customers or clients that contribute to the call volume. For example, for contact centers operating under the purview of a software vendor, rather than using employees, the institution may be a client of a third party provider that operates the contact center, and contracts with the contact center to provide technical support or product inquiry services to its customers. In such an example, at least a portion of the services conducted over telephone or other long distance communication channels are provided by the agents of the contact center via direct interaction with the customers.
According to one or more embodiments, a contact center is able to support interaction and/or communication between an agent and a customer along one or more communication channels. One type of interaction involves telephone communications between an agent and a customer through a phone network (e.g., mobile, public switched network, combinations of mobile and public switched network, etc.). Other types of interactions and/or communications between an agent and a customer also include, but are not limited to: video conferencing, text, text messaging, internet based communications through graphical user interfaces on one or more web pages, etc.
Contact centers employ agents to provide technical support and product inquiry support to customers, customers of clients, or potential customers. For example, a client that is a software vendor may offer support for various software products and even particular versions of software products in the market to customers and potential customers, while another client (hardware device vendor) may provide support for multiple lines of products, down to the specific models, and even software-hardware combination. Because each particular service or product can be substantially different from others offered by the same vendor, an agent may not be able to replicate (e.g., troubleshoot) or solve certain version or model specific technical issues without having the same or substantially similar product or product environment used by the caller/customer. Likewise, when responding to product inquiries, an agent may require specifically detailed information to accurately answer any questions a customer or potential customer may have.
To address these issues, embodiments of the present invention provide techniques for dynamically distributing instances of multiple computing environments to an agent that is customized to approximate the environment for which support is being requested by a customer. Other embodiments of the present invention provide the ability to dynamically generate and distribute new instances of computing environments specifically provisioned to mimic the known environments used by the requesting customer. According to one or more embodiments, an automated intake session is performed before the agent is connected to the customer. During the automated intake session, the caller or customer is presented a series of directed queries designed to identify, characterize, or specify the computing environment of the user, or a computing environment of interest to the user. The customer is able to select from a list of options to provide the requested information, and the information is collected, and analyzed, and a computing environment that best matches the information collected is dynamically distributed to an available agent's workstation.
While the following example configurations are shown as incorporating specific, enumerated features and elements, it is understood that such depiction is exemplary. Accordingly, embodiments are well suited to applications involving different, additional, or fewer elements, features, or arrangements.
The computer system 100 may also comprise an optional graphics subsystem 105 for presenting information to a user, e.g., by displaying information on an attached display device 110, connected by a video cable 111. According to embodiments of the present claimed invention, the graphics subsystem 105 may be coupled directly to the display device 110 through the video cable 111. In alternate embodiments, display device 110 may be integrated into the computing system (e.g., a laptop or netbook display panel) and will not require a video cable 111.
Additionally, computing system 100 may also have additional features/functionality. For example, computing system 100 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. RAM 102, ROM 103, and external data storage device (not shown) are all examples of computer storage media.
Computer system 100 also comprises an optional alphanumeric input device 106, an optional cursor control or directing device 107, and one or more signal communication interfaces (input/output devices, e.g., a network interface card) 108. Optional alphanumeric input device 106 can communicate information and command selections to central processor 101. Optional cursor control or directing device 107 is coupled to bus 109 for communicating user input information and command selections to central processor 101. Signal communication interface (input/output device) 108, also coupled to bus 109, can be a serial port. Communication interface 108 may also include wireless communication mechanisms. Using communication interface 108, computer system 100 can be communicatively coupled to other computer systems over a communication network such as the Internet or an intranet (e.g., a local area network).
In some embodiments, a computer-readable medium containing a computer program may be loaded into computing system 100. All or a portion of the computer program stored on the computer-readable medium may then be stored in system memory and/or various portions of storage devices. When executed by processing units 101 and/or 105, a computer program loaded into computing system 100 may cause processor 101 and/or 105 to perform and/or be a means for performing the functions of the example embodiments described and/or illustrated herein. Additionally or alternatively, the example embodiments described and/or illustrated herein may be implemented in firmware and/or hardware.
According to one or more embodiments, system 200 includes a contact center 210 operated by one or more agents of a business or organization to handle interactions with customers of the business or organization. In alternate embodiments, the contact center may operate on behalf of a client business or organization and managed by a third party service purveyor. According to such embodiments, agents may be trained and tasked with providing support and information to one or more customers 280 regarding products and/or services associated with a client business or organization. Tasks that agents of contact center 210 may perform include (but are not limited to): responding to requests for support and information, helping a customer complete a sale of a product or service, assisting a customer with accessing information managed by the client, or cooperatively guiding the customer to handle issues and problems with products or services provided or offered by the client.
Customers 280 may interact with agents at workstations 230 through one or more communication networks 270 and 275. For example, communication network 275 may include a system of interconnected computer networks (e.g., Internet) that allow for direct communication between a customer and a client. Also, communication network 270 may be any combination of phone networks that are configured to connect a customer to an agent at a particular workstation, such as a mobile phone network, a land-line based public switched telephone network (PSTN), etc.
According to one or more embodiments, the contact center 210 may include a network 220 of workstations 230, including workstations 230A-N, each workstation being attended to by one or more agents. In one or more embodiments, a workstation can be compartmentalized as a scalable unit, and is configured to provide essential resources that an agent utilizes to handle requests by a customer on behalf of a client. For example, a workstation may integrate a computing system (not shown), and telephone component (not shown) on an individual working platform. By providing an infrastructure that includes substantial workstation and human (agent) resources, a contact center 210 is able to efficiently install and maintain large call volumes. In addition, by providing a centralized location for workstations, agents have ready access to information, resources, and supervisors to help achieve and maintain the highest quality of service to the customers of the client.
As depicted in
As presented in
According to one or more embodiments, the Data Center 240 may be implemented as one or more computing devices (e.g., servers), such as the system 100 described above with respect to
The information collected by the AIE 250 may be stored in a storage on the Data Center 240 for later access, such as when performing analysis on the information. For example, a virtual machine (VM) engine 265 can access the stored information, analyze the collected information, and, based on the analysis, determine an appropriate computing environment. According to one or more embodiments, the computing environment may be an instance of a virtual machine pre-loaded with an operating system and/or software application that matches the information collected by the AIE 250 during an initial interaction with the contacting customer 280. For example, if the automated intake engine 245 determines (via analysis of collected user-input) that the contacting customer 280 is requesting support or assistance for an operating system product managed by the contact center 210, the VM Engine 265 may compare the identified operating system with the default operating system of an available agent's workstation. If the operating system at the agent's workstation is not the same operating system as the one used by the contacting customer 280 (as determined by the AIE 25), an instance of the appropriate operating system is distributed to and loaded at the agent's workstation. When the contacting customer 280 is requesting support or assistance for a software application, or software-operating system combination, the VM Engine 260 may identify the respective combination and distribute a virtual machine pre-loaded with instances of the operating system and software applications to the workstation of the next available agent.
According to alternate embodiments, the computing environment, which may consist of an operating system or operating system and software application(s), can be received as an instance of a virtual machine and loaded by, for example, a hypervisor executing in the workstation of the agent. In alternate embodiments, the operating system may be executed in the workstation using an emulator of the operating system, and the software application(s) may be installed via the emulated operating system. In still further embodiments, one or more workstations (any of 230A-230N) of agents at the contact center 210 may be provisioned as thin clients. According to these embodiments, virtual machine instances of the requested computing environment (operating system and/or operating system and software application(s)) are provisioned and executed by the VM Engine 260 in the Data Center 240, and managed by a hypervisor of the Data Center 240. For these embodiments, at least a substantial portion of the processing and computing is performed by the Data Center 240, and accessible to the agent via a graphical user interface implemented by the thin client workstation.
In one or more embodiments, the determination of the next available agent and the subsequent default computing environment at the workstation of the next available agent, and the distribution of the instances generated by the VM Engine 260 may be performed by an Instance Distribution Module 265. The Instance Distribution Module 265 may determine the next available agent by continuously or periodically querying the session, telephony, or computer-telephony status of each workstation for each agent logged in to the contact center distributed system (e.g., contact center application). If no agents are available, the contacting customer 280 may be placed on hold. According to one or more embodiments, the VM Engine 260 may pre-generate instances of virtual machines with the operating systems, or integrated software-operating system environments supported by the contact center 210 and distribute the instances (e.g., via Instance Distribution Module 265) as necessary. In alternate or further embodiments, the VM Engine 260 may dynamically generate the instances of virtual machine on-demand, customized for the contacting customer 280 based on the information collected by the AIE 250.
At 310, the method begins by receiving a communication request. The communication request may comprise, for example, an inbound call initiated by a customer and received at a workstation assigned to an agent, and may be received via a telephone device through a voice network (e.g., network 270 of
Upon receiving the communication request at step 310, an intake session is performed at step 320. In one or more embodiments, the intake session is performed by an automated intake engine (AIE) (e.g., AIE 250 in
The questions may be presented according to a dynamically adjustable question tree, whereby subsequent questions that are presented to the contacting customer depend on the user's selections from previous questions. For example, if a customer is contacting a contact center to request support for a software application managed by the contact center, the customer may be first prompted to select from a list or menu of products supported by the contact center. If the customer identifies the software application in question, the automated system processes the customer's initial response, selects the next question to present (e.g., branch of a question tree) based on the previous response, and the next question presented to the customer may be to request the user to specify the version or year of the software application from all known versions corresponding to that particular software application in the system. The next question after that may be to request the user to select from one or more issues for the specific version of the software application that are known to the contact center. By using directed questions and sequentially filtering subsequent questions based on previously submitted user-input, characteristics of the contacting customer's computing environment can be ascertained.
In one or more embodiments, steps 310 and 320 may be performed by one or more processing components remotely positioned with respect to the contact center. For example, steps 310 and 320 may be performed in whole or in part at a data center that stores and manages data for the contact center that is communicatively coupled to the workstations of the contact center. Alternately, steps 310 and 320 may be performed by computing systems and devices within the contact center. At step 330, the information collected during the automated intake session at step 320 is received. The information may be received in, for example, a data analyzer or an Instance Distribution Module comprised in the data center. The information is processed at step 340 to determine the product or service managed by the contact center and the computing environment of the contacting customer in which the product or service is executing. For example, if the product or service comprises a version of a software application, information regarding the computing environment—including, for example, an operating system, extensions, other software applications—that the product or service depends on or is integrated with can also be collected and identified at step 340.
Once identified, a virtual machine instance pre-loaded with the computing environment matching the computing environment identified at step 340 is dynamically selected and delivered to the workstation of the next available agent at step 350. The virtual machine instance may be one of a pre-generated set of virtual machine instances pre-loaded with software products or services managed by the contact center, and dynamically selected to be customized for the contacting customer's computing environment. According to further embodiments, the pre-generated set of virtual machine instances may include multiple virtual machine instances with varying combinations of versions of operating systems and/or software applications. Alternatively, the virtual machine instance may be dynamically generated and specifically provisioned with the version or model of the operating system and/or software applications of the contacting customer.
At step 360, the instance of the virtual machine dynamically delivered at step 350 is executed in the workstation of the selected agent. In one or more embodiments, the virtual machine instance may be received via a network connection in, and managed by a hypervisor executing in the workstation of the selected agent. Alternately, the virtual machine instance of the computing environment may be deployed (either pre-generated or dynamically generated) at a server (which may be remotely positioned from the agent's workstation), and access to the virtual machine instance (e.g., as a remote desktop) can be granted to the workstation at steps 350-360. Access may be granted in embodiments or implementations where the workstation of the agent comprises a thin client, or a computing device with insufficient or reduced computing resources (processing or memory capabilities).
Finally, a communication session is established at step 370 between the agent and the contacting user. Establishing a communication session may be performed by, for example, creating a communication channel (e.g., phone call, web-connection) between the agent's telephone, voice over internet protocol (VOIP) device, or via a simultaneous connection to a website or webpage with communication (chat) interaction functionality. Once the communication channel is created, the agent is able to provide instructions or assistance to the contacting customer with enhanced precision. Since the agent is able to perform the same steps that are being described to the contacting customer in the same computing environment, the agent is able to see first hand the result of each action performed and will be able to empirically address or explain, in real-time, what the user is experiencing from the agent's instructions.
The process 400 may be performed in response to receiving a status query in a workstation of an agent at step 410. In one or more embodiments, the status query may be sent from an application or program (e.g., the Instance Distribution Module 265 in
The status of an agent may also be determined by monitoring the verbal communication (conversation) taking place between the agent and the customer during ongoing contact sessions, or tracking the activity of the agent on any applications executing on the workstation. In one or more embodiments, audio communication may be monitored using voice and video-teleconferencing communication protocols, such as the Real-time Transport Protocol (RTP), and/or Session Initiation protocol (SIP). The specific protocols used may themselves adhere to industry standards (e.g., the H.323 standard for call signaling and control). In one or more embodiments, the statuses of each agent once determined may be reported at step 430 in response to the query received at step 410. In alternate embodiments, the statuses of each agent may be reported when a change in status is determined for that particular agent.
In some instances, it may not be desirable for a particular agent to be assigned an incoming case (communication session). For example, in contact centers where cases may be organized in tiers, it may not be desirable to assign cases of a particular tier to agents who have not been certified or authorized to support cases at that tier. When no qualified agents are available, the status of all qualified agents may be monitored and a communication request may be assigned to the next available qualified agent. Where more than one qualified agent is available, an agent is selected from the available pool of qualified agents using one or more selection metrics (e.g., based on qualification, average speed in handling support requests, rating, experience, etc.) or algorithms (e.g., round robin).
If an available, qualified agent is selected to provide support for an incoming case, the workstation of the agent is notified, and data corresponding to the computing environment identified to match the computing environment of the contacting customer is received by the workstation at step 440, and executed (e.g., by a hypervisor executing in the workstation) at step 450. As described above, the data corresponding to the computing environment may include a virtual machine instance pre-loaded with one or more products or services managed by the contact center and any computing platforms (operating systems), critical software dependencies, or other integrated applications. In alternate embodiments, the data may comprise a direct channel (e.g., remote desktop) that provides access to the virtual machine instance executed by a hypervisor in a remote server.
The process 500 may be performed in response to receiving collected information at step 330 of process 300, depicted in
Whether the collected information exceeds the pre-determined threshold is determined at step 520 (e.g., as a binary output). If the threshold is exceeded, the specific computing environment is identified based on the collected information at step 530, and, once an available, qualified agent is determined (e.g., by performing process 400 described above with respect to
Thus, according to embodiments of the present invention, methods and systems for dynamically distributing computing environments to workstations of a contact center based on user-input collected during an automated intake process are disclosed.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as may be suited to the particular use contemplated.
Embodiments according to the invention are thus described. While the present disclosure has been described in particular embodiments, it should be appreciated that the invention should not be construed as limited by such embodiments.
The present application is a divisional of, claims the benefit of and priority to U.S. application Ser. No. 15/703,830, Attorney Docket TELP-0004-01.01US, filed Sep. 13, 2017, entitled “DYNAMIC COMPUTER ENVIRONMENT ALLOCATION FOR CONTACT CENTER INTERACTION”, and hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 15703830 | Sep 2017 | US |
Child | 15915961 | US |