One problem faced by many customer contact centers is how to efficiently use resources of the contact center, including hardware and software resources, to process customer interactions. When a contact center agent is not proficient at his job, the resources are not used as efficiently as they could. For example, the resources may unnecessarily be used to transfer a current interaction to another agent who might be more proficient, to process repeated call-backs due to the customer's issue not being resolved the first time, and/or for a prolonged interaction with the customer due to the agent's lack of proficiency. The contact center often has no choice but to replace the underperforming agents with new agents. This contributes to the high turnover rate of agents at a contact center. As a result of the high turnover rate, contact centers engage in a seemingly endless task of looking and hiring new contact center agents.
Accordingly, what is desired is a system and method for predicting performance of candidate contact center agents prior to taking steps towards hiring such candidates.
In one exemplary embodiment, a method for predicting performance for a contact center via machine learning includes invoking, by a processor, an interaction between a contact center resource and an end user, and recording, by the processor, the interaction. The processor automatically analyzes the recorded interaction for identifying attributes associated with the interaction. The processor provides the identified attributes to a machine learning model, and predicts a performance score based on providing the identified attributes to the machine learning model. The performance score is compared against a threshold score, and a recommendation is output by the processor based on the comparing.
According to one embodiment, the interaction is a simulated call between the end user and a voice processor of the contact center. The voice processor may be configured with a script for conducting the simulated call.
According to one embodiment, the attributes that are identified by the processor include emotions of the end user during the interaction, adherence of the end user to a script invoked for the interaction, or clarity in speech of the end user during the interaction.
According to one embodiment, the automatically analyzing of the recorded interaction includes assigning a score to each of the identified attributes.
According to one embodiment, the performance score that is predicted by the processor is for predicting performance of the end user in meeting particular metrics for the contact center.
According to one embodiment, the processor further monitors contact center agents of the contact center, gathers performance scores of the monitored contact center agents, invokes a second interaction with the contact center agents, obtains attribute scores for the contact center agents based on the second interaction, correlates the attribute scores with the performance scores, and trains the machine learning model based on the correlation.
According to one embodiment, the processor also monitors a criteria of the contact center, and dynamically adjusts the threshold based on the monitored criteria.
According to one embodiment, the end user is a candidate contact center agent considered for hiring, and the recommendation is hiring the candidate or advancing the candidate to a next step of an interview process.
In one exemplary embodiment, a system for predicting performance for a contact center via machine learning includes a processor and memory. The memory has stored therein instructions that, when executed by the processor, cause the processor to: invoke an interaction between a contact center resource and an end user; record the interaction; automatically analyze the recorded interaction for identifying attributes associated with the interaction; provide the identified attributes to a machine learning model; predict a performance score based on providing the identified attributes to the machine learning model; compare the performance score against a threshold score; and output a recommendation based on the comparing.
As a person of skill in the art should recognize, predicting performance of candidate agents prior to hiring brings technical improvements to automatic call/interaction distribution systems typically used by customer contact centers. For example, the prediction helps to hire agents that are predicted to perform well after being employed. Agents who perform well allow more efficient use of contact center resources by, for example, allowing shorter interactions with customers, avoiding call transfers, avoiding repeat calls, and the like. Avoiding such tasks help avoid unnecessary tying up of resources such as processors, communication ports, queues, and the like.
These and other features, aspects and advantages of the present invention will be more fully understood when considered with respect to the following detailed description, appended claims, and accompanying drawings. Of course, the actual scope of the invention is defined by the appended claims.
In general terms, embodiments of the present invention are directed to a system and method for predicting performance of a candidate contact center agent prior to hiring the candidate. In one embodiment, the candidate is given a simulated call for handling. The call may simulate, for example, a scenario that the candidate would have to handle if hired to work at the contact center. In one embodiment, the call is recorded and transcribed for analysis. The analysis may entail, for example, automatically determining, based on text analytics, certain attributes, elements, features, or characteristics (collectively referred to as attributes) of the candidate when handling the call. The attributes may relate to, for example, emotion of the candidate during the simulation. The attributes may also relate to clarity in speech of the candidate, and/or adherence of the candidate to a script used for the simulation. In one embodiment, scores are provided for the detected attributes.
In one embodiment, the detected attributes and associated scores are provided as input features to a machine learning model. The machine learning model outputs a predicted performance score based on the received input features. The predicted performance score is compared against a threshold score, and a recommendation is made based on the comparison. The recommendation may be, for example, to hire (or not hire) the candidate, or advance (or not advance) the candidate to a next round of interviews.
In one embodiment, the machine learning model is trained with data of agents of the contact center for which actual performance scores have been computed. This helps avoid manually generating data for training the model. The automatically computed performance scores of contact center agents may be used as the training data. In addition, because an algorithm for computing the performance scores for a contact center is customized to the needs of the contact center, the model may also be customized to the unique needs of the contact center. For example, a contact center looking for energetic, young, and hip contact center agents (e.g. Nike contact center agents) may have the algorithm configured in such a way as to allow a higher performance score for agents that show characteristics that are associated with energetic, young, and hip agents. On the other hand, a contact center looking for more somber, calm, and collected agents (e.g. agents for a funeral home) may have the algorithm configured in such a way as to allow a higher performance scores for agents that show characteristics that are associated with somber, calm, and collected agents.
At a designated time, the scheduler module 100 transmits a signal to a call controller 104 for initiating the simulated call to the candidate 102. In one embodiment, the call controller 104 is a session initiation protocol (SIP) server that transmits signaling messages for initiating a SIP call to the candidate 102. Once connected, the call controller 104 may route the call to a media server 106 configured with interactive voice response (IVR) capabilities. In one embodiment, the media server 106 interacts with the candidate 102 via voice prompts and responses as set out in the script that is used for the simulation. The media server 106 may further configured to record the call with the candidate 102.
A voice processor 108 is configured to take the recorded call from the media server 106 and associate the recording to the candidate 102. In one embodiment, the voice processor 108 retrieves metadata associated with the call recording (e.g. time, date, script ID, candidate ID (or dial number), and the like), and associates the retrieved metadata to information about the candidate (e.g. name), and provides the association to a synchronization server 110. The call recording and the associated data may also be stored in, for example, the data storage device 118.
In one embodiment, the synchronization server 110 is configured to provide the call recording to an analysis server 112 for conducting speech and sentiment analysis of the call. For example, the analysis may include analysis of the emotions of the candidate while handling the call, clarity of the speech of the candidate, and/or adherence by the candidate to the script that is used for the simulation. The analysis may be conducted via speech and sentiment analytics tools as is conventional in the art. For example, a third party product such as Vokaturi may be used for sentiment analysis. Google's speech-to-text software may be used for speech analytics and transcription.
In one embodiment, the synchronization server 110 forwards the analysis data to a scorer module 114 for predicting a performance score for the candidate. In one embodiment, the scorer module 114 is configured to train a machine learning model (hereinafter referred to as a hiring model), and use the trained model for making the prediction. The predictions may be based on a machine learning algorithm, such as one of various known regression or backpropagation algorithms.
In one embodiment, the data for training the model is provided by a performance monitoring module 116. Functionality of the performance monitoring module is described in detail in U.S. Pat. No. 8,589,215, the content of which is incorporated herein by reference. In general terms, the performance monitoring module 116 monitors agent performance in meeting certain contact center metrics, and determines objective performance measurements based on the monitoring. Such objective performance measurements may include, for example, a number of interactions that have been transferred to another agent per month, customer survey scores, number of repeat calls per month, and the like. In addition to objective performance measurements, the contact center may also consider certain subjective factors that may be important to the contact center, such as for example, enthusiasm, selling skills, teamwork, and the like. Scores for the subjective factors may be given, for example, by a supervisor who may evaluate the subjective factors after analyzing one or more interactions of the agent.
In one embodiment, the objective and subjective measurements are weighted and combined to generate an overall performance score for the agent. The performance evaluation of each agent of the contact center may be done on a periodic basis (e.g. every month or after X number of interactions), and stored in a data storage device 118 in association with the agent until a next evaluation is performed.
If an agent's performance is deemed to be below a threshold, a trainer module 120 may be invoked for scheduling appropriate training sessions for the agent. In one embodiment, in order to generate training data that correlates an agent's performance score with certain attributes of the agent that may be expressed when handling a call, the agent is provided the same simulated call as the candidate 102 for handling. The simulated call with the agent is analyzed for detecting attributes such as sentiment, clarity, and adherence, and scores for the detected attributes are correlated to the agent's performance score that is currently associated with the agent at the time of the simulated call. In some embodiments, one or more of the real calls handled by the agent may be analyzed by the analysis server 112 for determining sentiment, clarity, and adherence. In this manner, the training data is generated automatically and based on performance metrics already identified by the contact center in generating performance scores for the agents.
In some embodiments, the model may correspond to a neural network or a deep neural network (a deep neural network being a neural network that has more than one hidden layer, for use with deep learning techniques), and the training of the neural network may involve using the training data and an algorithm, such as a back propagation algorithm. The neural network may further include a set of weights for connections between the neurons of a trained neural network.
Once the model is trained, the model may be used to receive the attributes 202 of the contact center candidate that is being interviewed, including, for example, the candidate's emotional feature scores 202a, adherence scores 202b, clarity scores 202c, and the like, to output the corresponding predicted performance score 204.
In act 300, the scorer module 114 (or the scheduler module 100) selects agents of the contact center for training the hiring model 200. All or a subset of the agents may be selected for this purpose.
In act 302, the scorer module 114 gathers performance scores of the selected agents from the data storage device 118.
In act 304, the scheduler module 100 runs a simulated call with the selected contact center agents. In this regard, the scheduler module 100 invokes the call controller 104 for initiating the simulated call with the selected contact center agents. One or more different simulated calls may be selected for being handled by the selected contact center agents at different times. At least one of the simulated calls is the simulated call that is provided to the candidate contact center agent 102 during an interview process.
In act 306, the scorer module 114 obtains scores of the attributes 202 that are monitored for the contact center agents while handling the simulated call. In this regard, the simulated call may be recorded and handed to the analysis server 112 for determining the scores. The scores that may be obtained include, for example, the emotional feature scores 202a, adherence scores 202b, and clarity scores 202c that are used to train the hiring model 200.
In act 308, the scorer module 114 maps the scores of the attributes to the performance values of the selected agents.
In act 310, the hiring model 200 is trained based on the mapping of the attribute scores to the performance values for each of the selected agents.
In the event of a telephony simulation, the interaction between the candidate agent 102 and the media server 106 is recorded in act 402. The recorded interaction may be saved in, for example, the data storage device 118, along with metadata for the simulated call, and information about the candidate 102.
In act 404, the analysis server 112 analyzes the recorded interaction for conducting, for example, speech and sentiment analysis of the call, and assigning scores to the various input features to be fed to the hiring model 200. Speech analytics may entail transcribing the audio speech into text, and parsing the text for determining the presence of keywords. The keywords may be obtained from the script that is used for the simulation. In one embodiment, an adherence score 202b is provided based on the number and timing of the keywords. For example, the analysis server 112 may parse the transcribed conversation for the occurrence of the phrase “thank you” at the end of the call, to make sure that the candidate agent has expressed his gratitude to the simulated customer at the end of the call.
In one embodiment, speech analytics may also entail determining clarity of speech by the candidate agent 102 during the call, and assigning a clarity score 202c in response to the determination. The clarity score may be based on a confidence level of the speech recognition. The less clear the utterance by the candidate agent, the harder it is for the analysis server to perform the speech analytics, resulting in a lower confidence score (and lower clarity score 202c) for the transcription.
Sentiment analysis may entail, for example, determining emotions of the candidate agent while handling the call simulation. The emotions that are detected may include, but are not limited to fear, sadness, anger, happiness, and the like, and may be deduced based on, for example, the words spoken by the candidate, tone, how fast/slow the words are being uttered, and/or the like. A separate emotion score may be assigned to each of the various emotions detected during the analysis, and fed to the hiring model 200 as the emotional feature scores 202a.
In act 406, the hiring model 200 takes the scores of the various attributes 202 detected for the candidate agent, and generates a predicted performance score 204 for the candidate agent 102. In one embodiment, the predicted performance score is for predicting performance of the candidate agent in meeting particular metrics of the contact center. Such metrics may relate to, for example, call transfers, repeat calls, number of interactions handled, enthusiasm, teamwork, and the like.
In act 408, the predicted performance score is compared against a threshold value.
If the performance score satisfies the threshold value (e.g. is equal or higher to the threshold value), the scorer module 114 outputs a positive recommendation in act 410. The positive recommendation may be, for example, a recommendation to hire the candidate agent 102, or advance the candidate to a next round of interviews. If moving the candidate to a next round, the contact center may automatically schedule the candidate for the up-coming interviews. The contact center may also automatically generate a congratulatory message for delivery to the candidate agent 102.
If, however, the performance score does not satisfy the threshold value (e.g. is lower than the threshold value), the scorer module 114 outputs a negative recommendation in act 412. The negative recommendation may be, for example, a recommendation to not hire the candidate agent 102.
In one embodiment, the threshold that is used for the hiring process is re-evaluated and modified, as necessary, on a periodic basis. The threshold value, thus, is not static, but may be dynamically adjusted based on the needs of the contact center.
In one embodiment, the threshold may be adjusted to be a particular value, or it may be left unset. In the latter case, instead of looking for candidates satisfying a particular threshold, the contact center may select a set top percent of the candidates, and move them to a next round of interviews. For example, the predicted performance scores of the candidate agents may be ranked in descending order, and a top X % (e.g. 25%) of the scores may be selected for being recommended for the next round.
In one embodiment, the threshold is selected based on a correlation of performance scores of actual agents of the contact center, and particular events associated with those agents. The particular event may be, for example, termination of employment. In this regard, the scorer module 114 may identify performance scores of agents whose employment was terminated, and set the threshold based on such identification. The threshold may be set, for example, to be an average of the performance scores of the terminated agents, or set to be the maximum performance score of the terminated agents.
The threshold may also be periodically adjusted based on hiring needs of the contact center. For example, during a product launch or at certain times of the year, the contact center may have to increase its contact center staff. In this case, the threshold may be set based on staffing need, past speed of hiring, and time left until the staffing is needed. In one embodiment, the threshold may also depend on the pool of applicants that have applied for the job. Once the initial threshold is set, the hiring speed of contact center agents may be monitored to determine if enough agents are being hired. As time passes, if not enough agents have been hired, the threshold may be lowered to increase the hiring speed.
According to one example embodiment, the contact center system 1160 manages resources (e.g. personnel, computers, and telecommunication equipment) to enable delivery of services via telephone or other communication mechanisms. Such services may vary depending on the type of contact center, and may range from customer service to help desk, emergency response, telemarketing, order taking, and the like.
Customers, potential customers, or other end users (collectively referred to as the customers 12) desiring to receive services from the contact center may initiate inbound communications (e.g., telephony calls) to the contact center via their end user devices 1108a-1108c (collectively referenced as 1108). Each of the end user devices 1108 may be a communication device conventional in the art, such as, for example, a telephone, wireless phone, smart phone, personal computer, electronic tablet, and/or the like. Users operating the end user devices 1108 may initiate, manage, and respond to telephone calls, emails, chats, text messaging, web-browsing sessions, and other multi-media transactions.
Inbound and outbound communications from and to the end user devices 1108 may traverse a telephone, cellular, and/or data communication network 1110 depending on the type of device that is being used. For example, the communications network 1110 may include a private or public switched telephone network (PSTN), local area network (LAN), private wide area network (WAN), and/or public wide area network such as, for example, the Internet. The communications network 1110 may also include a wireless carrier network including a code division multiple access (CDMA) network, global system for mobile communications (GSM) network, or any wireless network/technology conventional in the art, including but to limited to 3G, 4G, 5G, LTE, and the like.
According to one example embodiment, the contact center system includes a switch/media gateway 1112 coupled to the communications network 1110 for receiving and transmitting telephony calls between the customers 12 and the contact center. The switch/media gateway 1112 may include a telephony switch or communication switch configured to function as a central switch for agent level routing within the center. The switch may be a hardware switching system or a soft switch implemented via software. For example, the switch 1112 may include an automatic call distributor, a private branch exchange (PBX), an IP-based software switch, and/or any other switch with specialized hardware and software configured to receive Internet-sourced interactions and/or telephone network-sourced interactions from a customer, and route those interactions to, for example, an agent telephony or communication device. In this example, the switch/media gateway establishes a voice path/connection (not shown) between the calling customer and the agent telephony device, by establishing, for example, a connection between the customer's telephony device and the agent telephony device.
According to one exemplary embodiment of the invention, the switch is coupled to a call controller 1118 which may, for example, serve as an adapter or interface between the switch and the remainder of the routing, monitoring, and other communication-handling components of the contact center.
The call controller 1118 (which may be similar to the call controller 104 of
According to one exemplary embodiment of the invention, the system further includes an interactive media response (IMR) server 1122, which may also be referred to as a self-help system, virtual assistant, or the like. In one embodiment, the IMR server 1122 takes the form of the media server 106 and/or voice processor 108 of
In one embodiment, the IMR script invoked by the IMR server 1122 may take the form of a script for a simulated call if the IMR server 1122 is being invoked during an interview of the candidate agent 102, or if being invoked for gathering feature inputs for training the hiring model 200.
If the communication is to be routed to an agent, the call controller 1118 interacts with the routing server (also referred to as an orchestration server) 1124 to find an appropriate agent for processing the interaction. The selection of an appropriate agent for routing an inbound interaction may be based, for example, on a routing strategy employed by the routing server 1124, and further based on information about agent availability, skills, and other routing parameters provided, for example, by a statistics server 1132.
In some embodiments, the routing server 1124 may query a customer database, which stores information about existing clients, such as contact information, loyalty information, service level agreement (SLA) requirements, nature of previous customer contacts and actions taken by contact center to resolve any customer issues, and the like. The database may be, for example, Cassandra or any NoSQL database, and may be stored in a mass storage device 1126 (which may be similar to the data storage device 118 of
Once an appropriate agent is identified as being available to handle a communication, a connection may be made between the customer and an agent device 1130a-1130c (collectively referenced as 1130) of the identified agent. Collected information about the customer and/or the customer's historical information may also be provided to the agent device for aiding the agent in better servicing the communication. In this regard, each agent device 1130 may include a telephone adapted for regular telephone calls, VoIP calls, and the like. The agent device 1130 may also include a computer for communicating with one or more servers of the contact center and performing data processing associated with contact center operations, and for interfacing with customers via voice and other multimedia communication mechanisms.
The contact center system may also include a multimedia/social media server 1154 for engaging in media interactions other than voice interactions with the end user devices 1108 and/or web servers 1120. The media interactions may be related, for example, to email, vmail (voice mail through email), chat, video, text-messaging, web, social media, co-browsing, and the like. In this regard, the multimedia/social media server 1154 may take the form of any IP router/processor conventional in the art with specialized hardware and/or software for receiving, processing, and forwarding multi-media events. For example, the multimedia/social media server 1154 may include a chat server for processing text-based chat conversations, email server or processing emails, SMS server for processing text-messages, and the like.
The web servers 1120 may include, for example, social interaction site hosts for a variety of known social interaction sites to which an end user may subscribe, such as, for example, Facebook, Twitter, and the like. In this regard, although in the embodiment of
According to one exemplary embodiment, in addition to real-time interactions, deferrable (also referred to as back-office or offline) interactions/activities may also be routed to the contact center agents. Such deferrable activities may include, for example, responding to emails, responding to letters, attending training seminars, or any other activity that does not entail real time communication with a customer. In this regard, an interaction (iXn) server 1156 interacts with the routing server 1124 for selecting an appropriate agent to handle the activity. Once assigned to an agent, an activity may be pushed to the agent, or may appear in the agent's workbin 1136a-1136c (collectively referenced as 1136) as a task to be completed by the agent. The agent's workbin may be implemented via any data structure conventional in the art, such as, for example, a linked list, array, and/or the like. The workbin 1136 may be maintained, for example, in buffer memory of each agent device 1130.
According to one exemplary embodiment, the mass storage device(s) 1126 may store one or more databases relating to agent data (e.g. agent profiles, schedules, etc.), customer data (e.g. customer profiles and loyalty information), interaction data (e.g. details of each interaction with a customer, including reason for the interaction, disposition data, time on hold, handle time, etc.), and the like. According to one embodiment, some of the data (e.g. customer profile data) may be maintained in a customer relations management (CRM) database hosted in the mass storage device 1126 or elsewhere. The mass storage device may take form of a hard disk or disk array as is conventional in the art.
According to some embodiments, the contact center system may include a universal contact server (UCS) 1127, configured to retrieve information stored in the CRM database and direct information to be stored in the CRM database. The UCS 1127 may also be configured to facilitate maintaining a history of customers' preferences and interaction history, and to capture and store data regarding comments from agents, customer communication history, and the like.
The contact center system 1160 may also include a reporting server 1134 configured to generate reports from data aggregated by the statistics server 1132. Such reports may include near real-time reports or historical reports concerning the state of resources, such as, for example, average waiting time, abandonment rate, agent occupancy, and the like. The reports may be generated automatically or in response to specific requests from a requestor (e.g. agent/administrator, contact center application, and/or the like).
In one embodiment, the contact center system 1160 further includes a hiring recommendation server 1160 for hosting, for example, the scheduler module 100, scorer module 114, and synchronization server 110 of
In one embodiment, each of the various servers, controllers, switches, gateways, engines, and/or modules (collectively referred to as servers) in the afore-described figures are implemented via hardware or firmware (e.g. ASIC) as will be appreciated by a person of skill in the art.
In one embodiment, each of the various servers, controllers, switches, gateways, engines, and/or modules (collectively referred to as servers) in the afore-described figures is a process or thread, running on one or more processors, in one or more computing devices 1500 (e.g.,
The various servers may be located on a computing device on-site at the same physical location as the agents of the contact center or may be located off-site (or in the cloud) in a geographically different location, e.g., in a remote data center, connected to the contact center via a network such as the Internet. In addition, some of the servers may be located in a computing device on-site at the contact center while others may be located in a computing device off-site, or servers providing redundant functionality may be provided both via on-site and off-site computing devices to provide greater fault tolerance. In some embodiments of the present invention, functionality provided by servers located on computing devices off-site may be accessed and provided over a virtual private network (VPN) as if such servers were on-site, or the functionality may be provided using a software as a service (SaaS) to provide functionality over the internet using various protocols, such as by exchanging data using encoded in extensible markup language (XML) or JavaScript Object notation (JSON).
The central processing unit 1521 is any logic circuitry that responds to and processes instructions fetched from the main memory unit 1522. It may be implemented, for example, in an integrated circuit, in the form of a microprocessor, microcontroller, or graphics processing unit (GPU), or in a field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC). The main memory unit 1522 may be one or more memory chips capable of storing data and allowing any storage location to be directly accessed by the central processing unit 1521. As shown in
A wide variety of I/O devices 1530 may be present in the computing device 1500. Input devices include one or more keyboards 1530a, mice, trackpads, trackballs, microphones, and drawing tablets. Output devices include video display devices 1530c, speakers, and printers. An I/O controller 1523, as shown in
Referring again to
The removable media interface 1516 may for example be used for installing software and programs. The computing device 1500 may further comprise a storage device 1528, such as one or more hard disk drives or hard disk drive arrays, for storing an operating system and other related software, and for storing application software programs. Optionally, a removable media interface 1516 may also be used as the storage device. For example, the operating system and the software may be run from a bootable medium, for example, a bootable CD.
In some embodiments, the computing device 1500 may comprise or be connected to multiple display devices 1530c, which each may be of the same or different type and/or form. As such, any of the I/O devices 1530 and/or the I/O controller 1523 may comprise any type and/or form of suitable hardware, software, or combination of hardware and software to support, enable or provide for the connection to, and use of, multiple display devices 1530c by the computing device 1500. For example, the computing device 1500 may include any type and/or form of video adapter, video card, driver, and/or library to interface, communicate, connect or otherwise use the display devices 1530c. In one embodiment, a video adapter may comprise multiple connectors to interface to multiple display devices 1530c. In other embodiments, the computing device 1500 may include multiple video adapters, with each video adapter connected to one or more of the display devices 1530c. In some embodiments, any portion of the operating system of the computing device 1500 may be configured for using multiple display devices 1530c. In other embodiments, one or more of the display devices 1530c may be provided by one or more other computing devices, connected, for example, to the computing device 1500 via a network. These embodiments may include any type of software designed and constructed to use the display device of another computing device as a second display device 1530c for the computing device 1500. One of ordinary skill in the art will recognize and appreciate the various ways and embodiments that a computing device 1500 may be configured to have multiple display devices 1530c.
A computing device 1500 of the sort depicted in
The computing device 1500 may be any workstation, desktop computer, laptop or notebook computer, server machine, handheld computer, mobile telephone or other portable telecommunication device, media playing device, gaming system, mobile computing device, or any other type and/or form of computing, telecommunications or media device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein. In some embodiments, the computing device 1500 may have different processors, operating systems, and input devices consistent with the device.
In other embodiments the computing device 1500 is a mobile device, such as a Java-enabled cellular telephone or personal digital assistant (PDA), a smart phone, a digital audio player, or a portable media player. In some embodiments, the computing device 1500 comprises a combination of devices, such as a mobile phone combined with a digital audio player or portable media player.
As shown in
In some embodiments, a central processing unit 1521 provides single instruction, multiple data (SIMD) functionality, e.g., execution of a single instruction simultaneously on multiple pieces of data. In other embodiments, several processors in the central processing unit 1521 may provide functionality for execution of multiple instructions simultaneously on multiple pieces of data (MIMD). In still other embodiments, the central processing unit 1521 may use any combination of SIMD and MIMD cores in a single device.
A computing device may be one of a plurality of machines connected by a network, or it may comprise a plurality of machines so connected.
The computing device 1500 may include a network interface 1518 to interface to the network 1504 through a variety of connections including, but not limited to, standard telephone lines, local-area network (LAN), or wide area network (WAN) links, broadband connections, wireless connections, or a combination of any or all of the above. Connections may be established using a variety of communication protocols. In one embodiment, the computing device 1500 communicates with other computing devices 1500 via any type and/or form of gateway or tunneling protocol such as Secure Socket Layer (SSL) or Transport Layer Security (TLS). The network interface 1518 may comprise a built-in network adapter, such as a network interface card, suitable for interfacing the computing device 1500 to any type of network capable of communication and performing the operations described herein. An I/O device 1530 may be a bridge between the system bus 1550 and an external communication bus.
According to one embodiment, the network environment of
Other types of virtualization is also contemplated, such as, for example, the network (e.g. via Software Defined Networking (SDN)). Functions, such as functions of the session border controller and other types of functions, may also be virtualized, such as, for example, via Network Functions Virtualization (NFV).
Although this invention has been described in certain specific embodiments, those skilled in the art will have no difficulty devising variations to the described embodiments which in no way depart from the scope and spirit of the present invention. For example, instead of routing of a single interaction to a single agent in a sequential manner, the embodiments could be extended to concurrent routing/assignment of multiple interactions to multiple agents. Furthermore, to those skilled in the various arts, the invention itself herein will suggest solutions to other tasks and adaptations for other applications. For example, although the above embodiments have mainly been described in terms of routing inbound interactions, a person of skill in the art should appreciate that the embodiments may also be applied during an outbound campaign to select outbound calls/customers to which an agent is to be assigned. Thus, for example, the reward maximization module 102 may rate customers based on their profiles and assign a specific agent to one of the calls/customers that is expected to maximize a reward (e.g. sales). Thus, the present embodiments of the invention should be considered in all respects as illustrative and not restrictive.