A system and method for improving data preprocessing for prediction.

JP7912060B2Active Publication Date: 2026-08-27GENESIS CLOUD SERVICES CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024515618
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-09-14
Filing Date
2022-09-14
Publication Date
2026-08-27
Estimated Expiration
2042-09-14

Smart Images

  • Figure 0007912060000004
    Figure 0007912060000004
  • Figure 0007912060000005
    Figure 0007912060000005
  • Figure 0007912060000006
    Figure 0007912060000006
Patent Text Reader

Abstract

An on-premises system for pre-processing data for prediction according to one embodiment includes at least one processor and at least one memory storing a plurality of instructions that, upon execution by the at least one processor, cause the on-premises system to receive a request to predict contact center data using a cloud system, determine a first number of interactions per unit of time for a source interval, determine a second number of units of time in a destination interval, and determine a third number of interactions in the destination interval based on the first number of interactions per unit of time for the source interval and the second number of units of time in the destination interval.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] (Cross - Reference to Related Applications) This application claims priority to U.S. Non - Provisional Patent Application No. 17 / 474,791, filed on September 14, 2021, the entire contents of which are incorporated herein by reference.

Background Art

[0002] <L000P014>Many computing systems that analyze data for prediction and / or other purposes require that the data be segmented at specific intervals (e.g., 15 - minute intervals) and supplied with explicit indices. However, it is common for data sources from which data is retrieved for analysis to process and / or store data segmented according to different and / or inconsistent intervals. The data must be preprocessed to match the expected segmentation parameters of the analysis computing system that will perform the prediction and / or other processing. Conventionally, systems "draw lines" within the data and divide the data over multiple expected intervals into corresponding intervals. However, such an approach is insufficient in that the data often falls into incorrect intervals or "buckets".

Summary of the Invention

[0003] One embodiment is directed to unique systems, components, and methods for processing data for prediction. Other embodiments are directed to apparatuses, systems, devices, hardware, methods, and combinations thereof for processing data for prediction. ​​According to one embodiment, an on-premises system for preprocessing data for prediction may include at least one processor and at least one memory storing a plurality of instructions, the instructions, upon execution by at least one processor, cause the on-premises system to receive a request to predict contact center data using a cloud system, determine a first number of interactions per hour for a source interval, determine a second number of hours for a destination interval, and determine a third number of interactions for a destination interval based on the first number of interactions per hour for a source interval and the second number of hours for a destination interval.

[0005] In some embodiments, the on-premise system may further include a contact center system comprising at least one processor and at least one memory.

[0006] In some embodiments, the first number of interactions may be the number of calls given to an agent in the contact center system.

[0007] In some embodiments, the first interaction count may be the number of calls handled by an agent in the contact center system.

[0008] In some embodiments, the first number of interactions may be the total processing time of calls by agents in the contact center system.

[0009] In some embodiments, determining the third number of interactions in the destination interval may involve multiplying the first number of interactions per unit of time for the source interval by the second number of units of time in the destination interval.

[0010] In some embodiments, the destination interval may be a time interval of 15 minutes.

[0011] In some embodiments, receiving a request to predict contact center data using a cloud system may include receiving a request to migrate data from an on-premises system to a cloud system.

[0012] According to another embodiment, a system for preprocessing data for prediction may include an on-premise system configured to receive requests from a user device to predict contact center data, determine a first number of interactions per hour for an input interval, determine a second number of hours for an output interval, and determine a third number of interactions for an output interval based on the first number of interactions per hour for the input interval and the second number of hours for the output interval; and a cloud system configured to predict contact center system data based on the third number of interactions for an output interval.

[0013] In some embodiments, the first number of interactions may be the number of calls given to an agent in the contact center system.

[0014] In some embodiments, the first interaction count may be the number of calls handled by an agent in the contact center system.

[0015] In some embodiments, the first number of interactions may be the total processing time of calls by agents in the contact center system.

[0016] In some embodiments, determining the third number of interactions in an output interval may involve multiplying the first number of interactions per unit of time for an input interval by the second number of units of time for an output interval.

[0017] In some embodiments, the output interval may be a time interval of 15 minutes.

[0018] In yet another embodiment, a method for preprocessing data for prediction may include: an on-premises contact center system receiving a request to predict contact center data using a cloud system; the on-premises contact center system determining a first number of interactions per hour for a source interval; the on-premises contact center system determining a second number of hours for a destination interval; and the on-premises contact center system determining a third number of interactions for a destination interval based on the first number of interactions per hour for the source interval and the second number of hours for the destination interval.

[0019] In some embodiments, the first number of interactions may be the number of calls given to an agent in the contact center system.

[0020] In some embodiments, the first interaction count may be the number of calls handled by an agent in the contact center system.

[0021] In some embodiments, the first number of interactions may be the total processing time of calls by agents in the contact center system.

[0022] In some embodiments, determining the third number of interactions in the destination interval may involve multiplying the first number of interactions per unit of time for the source interval by the second number of units of time in the destination interval.

[0023] In some embodiments, the destination interval may be a time interval of 15 minutes.

[0024] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter. Further embodiments, forms, features, and aspects of the present application will become apparent from the description and figures provided herein.

Brief Description of the Drawings

[0025] The concepts described herein are illustrative by way of example and not as limitations in the accompanying drawings. For simplicity and clarity of illustration, the elements illustrated in the figures are not necessarily drawn to scale. Where considered appropriate, reference labels are repeated between the figures to indicate corresponding or similar elements. [Figure 1] It is a simplified system flowchart of at least one embodiment of a system and method for preprocessing data for prediction. [Figure 2] It is a simplified block diagram of at least one embodiment of a call center system. [Figure 3] It is a simplified block diagram of at least one embodiment of a computing system. [Figure 4] It is a diagram showing at least one embodiment of pseudocode for preprocessing data for prediction. [Figure 5] It is a diagram showing at least one embodiment of pseudocode for preprocessing data for prediction. [Figure 6] It is a diagram showing at least one embodiment of pseudocode for preprocessing data for prediction. [Figure 7] It is a diagram showing at least one other embodiment of pseudocode for preprocessing data for prediction. [[ID=**30**]]

Modes for Carrying Out the Invention

[0026] While the concepts of this disclosure are open to various modifications and alternative forms, specific embodiments are shown as examples in the drawings and described in detail herein. However, it should be understood that the concepts of this disclosure are not intended to be limited to any particular form disclosed, but rather to encompass all modifications, equivalents, and alternatives that are consistent with this disclosure and the appended claims.

[0027] References in this specification such as “one embodiment,” “one embodiment,” and “exemplary embodiment” indicate that the embodiments described may include certain features, structures, or characteristics, but not all embodiments may necessarily include or may not include certain features, structures, or characteristics. Furthermore, such phrases do not necessarily refer to the same embodiment. References to “preferred” components or features may indicate that certain components or features are desirable in relation to one embodiment, but it should be further understood that this disclosure does not so limit itself to other embodiments in which such components or features may be omitted. Furthermore, where certain features, structures, or characteristics are described in relation to an embodiment, implementation of such features, structures, or characteristics in relation to other embodiments, whether explicitly described or not, should be considered within the knowledge of those skilled in the art. Furthermore, certain features, structures, or characteristics may be combined in any preferred combination and / or partial combination in various embodiments.

[0028] Furthermore, please understand that items included in a list in the form of "at least one of A, B, and C" can mean (A), (B), (C), (A and B), (B and C), (A and C), or (A, B, and C). Similarly, please understand that items enumerated in the form of "at least one of A, B, or C" can mean (A)(B), (C), (A and B), (B and C), (A and C), or (A, B, and C). Furthermore, with respect to the claims, the use of words and phrases such as “one (a),” “one (an),” “at least one,” and / or “at least one portion” should not be interpreted as limiting to only one of such elements unless specifically stated to the contrary, and the use of phrases such as “at least a portion” and / or “a portion” should be interpreted as encompassing both embodiments that include only a portion of such elements and embodiments that include the whole of such elements, unless specifically stated to the contrary.

[0029] The disclosed embodiments may, depending on the circumstances, be implemented in hardware, firmware, software, or a combination thereof. The disclosed embodiments may also be implemented as instructions executed or stored in one or more temporary or non-temporary machine-readable (e.g., computer-readable) storage media that can be read and executed by one or more processors. The machine-readable storage media may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., volatile or non-volatile memory, media disk, or other media device).

[0030] In the drawings, some structural or methodological features may be shown in a specific arrangement and / or sequence. However, it should be understood that such a specific arrangement and / or sequence may not always be necessary. Rather, in some embodiments, such features may be arranged in a different manner and / or sequence than those shown in the illustrative drawings, unless otherwise indicated. Furthermore, the inclusion of structural or methodological features in a particular drawing does not mean that such features are required in all embodiments, and in some embodiments they may not be included or may be combined with other features.

[0031] Referring here to Figure 1, a system flow diagram of a system 100 and method 101 for preprocessing data for prediction is shown. The exemplary system 100 includes an on-premises system 102, a cloud system 104, and a user 106. In addition, as shown in the figure, the exemplary on-premises system 102 includes an interaction optimizer 108 and an on-premises data storage device 110, and the exemplary cloud system 104 includes a cloud upload service 112, a cloud data storage device 114, and a cloud data processing service 116. While only one on-premises system 102, one cloud system 104, one user 106, one interaction optimizer 108, one on-premises data storage device 110, one cloud upload service 112, one cloud data storage device 114, and one cloud data processing service 116 are shown in the exemplary embodiment of Figure 1, in other embodiments the system 100 may include multiple on-premises systems 102, multiple cloud systems 104, multiple users 106, multiple interaction optimizers 108, multiple on-premises data storage devices 110, multiple cloud upload services 112, multiple cloud data storage devices 114, and / or multiple cloud data processing services 116. For example, in some embodiments, the same cloud system 104 may be used to process data from multiple on-premises systems 102. In some embodiments, one or more of the systems, services, and / or components described herein may be excluded from system 100, and one or more of the systems, services, and / or components described as independent may form part of another system, service, and / or component, and / or one or more features of the systems, services, and / or components may be independent.

[0032] It should be understood that each of the on-premise system 102, cloud system 104, user 106 (or more specifically, user device), interaction optimizer 108, on-premise data storage device 110, cloud upload service 112, cloud data storage device 114, and cloud data processing service 116 may be embodied, performed by, form part of, or associated with any type of device / system, set of devices / systems, and / or parts thereof (e.g., computing device 300 in Figure 3) suitable for performing the functions described herein. Furthermore, in some embodiments, system 100 and / or parts thereof may be embodied as a cloud-based system as described below. In some embodiments, one or more features of system 100 may form part of or be associated with a contact center system similar to the contact center system 200 in Figure 2. For example, in some embodiments, the on-premise system 102 may form part of a contact center system such as the contact center system 200, or may be communicably coupled with it.

[0033] While the on-premises system 102 is described herein as a system local to the customer's computing environment (i.e., on-premises), it should be understood that in some embodiments, parts of the on-premises system 102 may be remote to the customer's computing environment. For example, in some embodiments, the on-premises system 102 may be embodied as a “closed cloud” system deployed for a specific customer. Furthermore, while the cloud system 104 is described herein as a cloud-based computing system, it should be understood that in other embodiments, system 104 may include one or more devices / systems located outside the cloud computing environment.

[0034] It should be understood that the techniques described herein enable data preprocessing for prediction and / or other processing. For example, as will be described in more detail below, system 100 may collect data segmented at various intervals (which may be arbitrary for the purposes of the techniques described herein) from an on-premise system 102 (e.g., associated with a contact center system 200) and perform data preprocessing to segment the data into a predetermined set of intervals (e.g., 15-minute intervals) expected by the cloud system 104. The preprocessed data may be sent to the cloud system 104 for prediction and / or other processing. In some embodiments, the data collected and processed may include the number of calls given to an agent (e.g., in a contact center system), the number of calls handled by the agent, total processing time including post-call work (e.g., completing forms associated with the call), post-call time, and / or other data. Furthermore, it should be understood that the data may be described as interactions.

[0035] During use, system 100 can perform method 101 of Figure 1 for preprocessing data for prediction. As illustrated, exemplary method 101 includes flows 150-160. It should be understood that specific flows of method 101 are shown as examples, and such blocks may be combined, divided, added, removed, and / or rearranged in whole or in part, depending on the particular embodiment, unless otherwise stated.

[0036] An exemplary method 101 begins with flow 150, in which user 106 requests that data be transferred from on-premises system 102 to cloud system 104 for forecasting and / or other processing. For example, in some embodiments, user 106 requests a historical data transfer to preload interaction data into cloud system 104, which provides preliminary data for forecasting interaction volume within cloud system 104. In some embodiments, the request may occur as a one-time (or infrequent) operation to request that on-premises data be transferred to cloud system 104 for persistent cloud-based operation. For example, in some embodiments, the one-time operation may be performed in conjunction with migrating the customer from an on-premises workforce management system to a cloud-based system. In other embodiments, user 106 can make requests on demand as many times as desired via a user interface. For example, in some embodiments, the customer may continue using on-premises system 102 but leverage the forecasting algorithms of cloud system 104 via a user interface accessible to user 106 in on-premises system 102.

[0037] In flow 152, the interaction optimizer 108 of the on-premises system 102 accesses data stored in the on-premises data storage device 110 (e.g., customer database) and performs preprocessing for forecasting as described herein. For example, the pseudocode in Figures 4–6 describes at least one embodiment of preprocessing data for forecasting, and the pseudocode in Figure 7 describes at least one other embodiment of preprocessing data for forecasting. As described above, it should be understood that in some embodiments the data read includes the number of calls given to an agent (e.g., in the contact center system 200), the number of calls handled by an agent (e.g., in the contact center system 200), and the total call processing time by the agent, including post-call work. In other embodiments the data may include the agent's post-call time (e.g., excluding in-call processing time) and / or other data related to call center forecasting.

[0038] In an exemplary embodiment, the prediction algorithm of the cloud system 104 requires that the data be segmented into 15-minute intervals supplied with an explicit time index (e.g., minute intervals of 00, 154, 30, and 45 in time). However, as described above, the on-premises system 102 may store the data in a different format (e.g., at the customer's discretion). Therefore, the interaction optimizer 108 preprocesses the data to convert it from the source format (e.g., having intervals in the on-premises system 102) to the 15-minute interval segmentation of the cloud system 104, and in the exemplary embodiment, the interaction optimizer 108 does so without assuming that the source data intervals are consistent over any given period. While the exemplary embodiment involves 15-minute intervals, it should be understood that the cloud system 104 may utilize intervals of different lengths in other embodiments.

[0039] It should be understood that a natural step in performing preprocessing might be to average the data over an hour, for example, by summing up all the data for an hour and dividing the data into four blocks to match quarter-hour intervals, thereby attempting to generate a uniform distribution of the data. However, such an approach does not provide the appropriate granularity of the data at quarter-hour intervals. Under investigation, theoretical datasets were identified that "destroy" the uniform distribution, leading to inaccurate predictions.

[0040] Referring here to Figures 4-6, exemplary pseudocode for preprocessing data for prediction is shown. The exemplary pseudocode includes the code itself and comments describing the function of the code, the comments are shown in bold text for clarity. In the exemplary embodiment, the preprocessing algorithm essentially involves determining the number of interactions per unit of time in the source / input interval and multiplying that number by the unit of time in the destination / output interval. For example, as described in the comments for the pseudocode, the interaction optimizer 108 of the on-premise system 102 can determine the next source / input interval and calculate the number of interactions per minute. Assume the interval has a value of 91 (i.e., 91 interactions in that interval), with the first interval being 5:30, the next interval being 6:00, and the next interval being 91. The next interval is calculated as 30 minutes, and the number of interactions per minute based on that interval is 3.03 (91 interactions / 30 minutes = 3.03). To appropriately distribute interactions, the interaction optimizer 108 determines a new destination interval (5:15-5:30, length 15 minutes), calculates the distributed interactions by multiplying the number of interactions per minute (3.03) by the interval length (15 minutes), and obtains a value of 45.5. This code continues similarly until all items in the statistics have been analyzed and preprocessed. In other words, the pseudocode essentially determines where the offsets are and how to put the data into "buckets". The data being analyzed is stored aggregate data. In a sense, the aggregate data is weighted across different intervals to determine the appropriate distribution of data within the new corresponding interval. Figure 7 shows at least one other embodiment of the pseudocode for preprocessing data for prediction.

[0041] Tables 1-3 below show exemplary data used in developing the prediction preprocessing algorithms and techniques described herein. In particular, Table 1 contains sample data. Table 2 contains sample input data for sorted time series (e.g., without constraints on the interval between series). Table 3 contains sample output data that are distributed / smoothed over specific tight time intervals. As illustrated in the pseudocode in Figures 4-6, if the input series contains missing values, in the exemplary embodiment the output series are populated at -1 over those intervals.

[0042] [Table 1]

[0043] [Table 2]

[0044] [Table 3]

[0045] Referring again to Figure 1, in flow 154, the interaction optimizer 108 of the on-premises system 102 sends the preprocessed data to the cloud upload service 112 of the cloud system 104 for prediction. In particular, in flow 156, the cloud upload service 112 of the cloud system 104 may store the data in the cloud data storage device 114 of the cloud system 104 (for use, for example, in future predictions and / or other processing). In some embodiments, the cloud data storage device 114 may include one or more AWS S3 buckets. However, it should be understood that in other embodiments, the cloud data storage device 114 may include other types of cloud-based data storage devices.

[0046] In flow 158, the cloud data processing service 116 of the cloud system 104 can retrieve data from the cloud data storage device 114, generate a given interaction, and perform a forecast to average the processing time. In some embodiments, the forecast may be performed nightly and / or periodically according to a different predefined interval. As described above, in other embodiments, the forecast may be performed on demand at the request of user 106. In some embodiments, in flow 160, the interaction optimizer 108 of the on-premises system 102 may be notified when processing / forecasting is complete so that the interaction optimizer 108 can retrieve the forecast data and store it in the on-premises data storage device 110 (e.g., the customer's on-premises database).

[0047] It should be understood that in some embodiments, system 100 may incorporate memory and speed improvements by omitting intermediate storage of time-series data, directly generating time intervals on the fly, and storing the results in an output data structure. Additional speed improvements can be obtained by eliminating redundant iterations across time-series datasets. In an exemplary embodiment, the memory storage device is O(2n * m) to O(1 * The speed is improved to O(logn) (where m is the time interval dataset), and the speed is O(logn) * m) to O(1 * m) is improved (where m is a time interval dataset). Furthermore, there is a significant constant-time speed improvement, particularly in relation to iterations across time series datasets. More specifically, in a less efficient method, system 100 may retrieve data from a source on on-premises system 102, copy the data to a data structure on on-premises system 102 (e.g., on-premises data storage device 110), and then copy the data to a final data structure for uploading to the cloud upload service 112. In a memory-efficient method, intermediate data structures can be omitted so that the data is sent from the source to the output data structure to which it is uploaded.

[0048] While flows 150-160 are described in a relatively serial manner, it should be understood that various blocks of method 101 can be implemented in parallel in some embodiments.

[0049] Referring next to Figure 2, a simplified block diagram of at least one embodiment of a communications infrastructure and / or content center system is shown, which may be used in conjunction with one or more embodiments of the embodiments described herein. The contact center system 200 may be embodied as any system capable of providing contact center services (e.g., call center services, chat center services, SMS center services, etc.) to end users and performing functions otherwise described herein. An exemplary contact center system 200 includes customer devices 205, a network 210, a switch / media gateway 212, a call controller 214, an interactive media response (IMR) server 216, a routing server 218, a storage device 220, a statistics server 226, agent devices 230A, 230B, 230C, a media server 234, a knowledge management server 236, a knowledge system 238, a chat server 240, a web server 242, an interaction (iXn) server 244, a universal contact server 246, a reporting server 248, a media services server 249, and an analytics module 250.The exemplary embodiment in Figure 2 includes one customer device 205, one network 210, one switch / media gateway 212, one call controller 214, one IMR server 216, one routing server 218, one storage device 220, one statistics server 226, one media server 234, one knowledge management server 236, one knowledge system 238, one chat server 240, one iXn server 244, one universal contact server 246, one reporting server 248, one media service server 249, and one analytics model. Although only Joule 250 is shown, in other embodiments the contact center system 200 may include a plurality of customer devices 205, a network 210, a switch / media gateway 212, a call controller 214, an IMR server 216, a routing server 218, a storage device 220, a statistics server 226, a media server 234, a knowledge management server 236, a knowledge system 238, a chat server 240, an iXn server 244, a universal contact server 246, a reporting server 248, a media service server 249, and / or an analytics module 250. Furthermore, in some embodiments, one or more of the components described herein may be excluded from the system 200, one or more of the components described as independent may form part of another component, and / or one or more of the components described as forming part of another component may be independent.

[0050] In this specification, the term “contact center system” is used to refer to the system and / or its components as depicted in Figure 2, while the term “contact center” is used more generally to refer to the contact center system, the customer service provider operating these systems, and / or the organization or company associated therewith. Therefore, unless otherwise specifically limited, the term “contact center” generally refers to the contact center system (e.g., contact center system 200), the associated customer service provider (e.g., a specific customer service provider providing customer services through contact center system 200), and the organization or company on which customer services are provided.

[0051] As background, customer service providers can offer many types of services through contact centers. Such contact centers may be staffed with employees or customer service agents (or simply "agents"), who act as an interface between a company, corporation, government agency, or organization (hereinafter interchangeably referred to as "organization" or "corporation") and people such as users, individuals, or customers (hereinafter interchangeably referred to as "individuals" or "customers"). For example, a contact center agent can assist a customer in making a purchase decision, taking an order, or resolving an issue with a product or service already received. Within a contact center, such interactions between a contact center agent and an external entity or customer may take place via various communication channels, such as voice (e.g., telephone calls or voice over IP, i.e., VoIP calls), video (e.g., video conferencing), text (e.g., email and text chat), screen sharing, co-browsing, and / or other communication channels.

[0052] In practice, contact centers generally strive to provide high-quality service to customers while minimizing costs. For example, one way a contact center operates is to handle all customer interactions with live agents. While this approach can be quite successful from a service quality standpoint, it is likely to be prohibitively expensive due to the high cost of agent labor. For this reason, most contact centers utilize some level of automated processes instead of live agents, such as interactive voice response (IVR) systems, interactive media response (IMR) systems, internet robots, i.e., "bots," automated chat modules, i.e., "chatbots," and / or other automated processes. Often, this has proven to be a successful strategy because automated processes can be very efficient at handling certain types of interactions and can be effective in reducing the need for live agents. Such automation allows contact centers to target customer interactions that are more difficult for human agents to use, while automated processes handle more repetitive or routine tasks. Furthermore, automated processes can be structured in a way that optimizes efficiency and promotes repeatability. Human agents, i.e., live agents, may forget to ask a specific question or pursue certain details thoroughly, but such errors are typically avoided by using automated processes. Customer service providers are increasingly relying on automated processes to interact with customers, while the use of such technologies by customers remains far less developed. Thus, on the contact center side of the interaction, IVR systems, IMR systems, and / or bots are used to automate parts of the interaction, while customer-side actions remain to be performed manually by the customer.

[0053] It should be understood that the contact center system 200 can be used by customer service providers to provide various types of services to customers. For example, the contact center system 200 may be used to engage in and manage interactions in which automated processes (or bots) or human agents communicate with customers. As should be understood, the contact center system 200 may be an in-house facility of a business or company for carrying out sales and customer service functions related to products and services available through the company. In another embodiment, the contact center system 200 may be operated by a third-party service provider contracted to provide services on behalf of another organization. Furthermore, the contact center system 200 may be deployed on equipment dedicated to the company or third-party service provider and / or in a remote computing environment such as a private or public cloud environment with infrastructure to support multiple contact centers for multiple companies, for example. The contact center system 200 may include software applications or programs that can run on-premises, remotely, or in any combination thereof. Furthermore, it should be understood that the various components of the contact center system 200 may be distributed across various geographical locations and are not necessarily contained in a single location or computing environment.

[0054] Furthermore, it should be understood that, unless otherwise specified, any of the computing elements of the present invention may be implemented in a cloud-based or cloud computing environment. As used herein and further described below in relation to computing device 300, “cloud computing” or simply “cloud” is defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage devices, applications, and services) that can be rapidly provisioned via virtualization, released with minimal administrative effort or service provider interaction, and then scaled accordingly. Cloud computing can comprise a variety of characteristics (e.g., on-demand self-service, wide-area network access, resource pooling, rapid scalability, measurable services, etc.), service models (e.g., Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS)), and deployment models (e.g., private cloud, community cloud, public cloud, etc.). Cloud execution models, often referred to as "serverless architectures," generally include a service provider that dynamically manages the allocation and provisioning of remote servers to achieve desired functionality.

[0055] It should be understood that any of the computer implementation components, modules, or servers described in relation to Figure 2 may be implemented via one or more types of computing devices, such as the computing device 300 in Figure 3. As understood, the contact center system 200 generally manages resources (e.g., personnel, computers, telecommunications equipment, etc.) to enable the delivery of services via telephone, email, chat, or other communication mechanisms. Such services may vary depending on the type of contact center and may include, for example, customer service, help desk functions, emergency response, telemarketing, order taking, and / or other characteristics.

[0056] A customer wishing to receive services from the contact center system 200 may initiate inbound communication to the contact center system 200 (e.g., telephone calls, emails, chats, etc.) via a customer device 205. Figure 2 shows one such customer device, i.e., customer device 205, but it should be understood that any number of customer devices 205 may exist. A customer device 205 may be a communication device such as a telephone, smartphone, computer, tablet, or laptop. According to the functions described herein, a customer may generally use a customer device 205 to initiate, manage, and perform communications with the contact center system 200, such as telephone calls, emails, chats, text messages, web browsing sessions, and other multimedia transactions.

[0057] Inbound and outbound communications to and from customer devices 205 may traverse network 210, depending on the nature of the network, which typically depends on the type of customer device being used and the form of communication. Examples of network 210 include telephone, cellular, and / or data service communication networks. Network 210 may be a private or public switched telephone network (PSTN), a local area network (LAN), a private wide area network (WAN), and / or a public WAN such as the Internet. Furthermore, network 210 may include a code division multiple access (CDMA) network, a global system for mobile communications (GSM) network, or any wireless network / technology conventional in the art, including but not limited to 3G, 4G, LTE, 5G, etc.

[0058] A switch / media gateway 212 may be connected to the network 210 to receive and transmit telephone calls between the customer and the contact center system 200. The switch / media gateway 212 may be a telephone switch or communications switch configured to function as a central switch for agent-level routing within the center. The switch may be a hardware switching system or implemented via software. For example, switch 212 may include an automated call distributor, a private branch exchange (PBX), an IP-based software switch, and / or any other switch with dedicated hardware and software configured to receive internet-sourced and / or telephone network-sourced interactions from customers and route these interactions to, for example, one of the agent devices 230. Thus, generally, the switch / media gateway 212 establishes a voice connection between the customer and the agent by establishing a connection between the customer device 205 and the agent device 230.

[0059] As further shown, the switch / media gateway 212 may be coupled to a call controller 214, for example, which functions as an adapter or interface connection between the switch and other routing, monitoring, and communication processing components of the contact center system 200. The call controller 214 may be configured to handle PSTN calls, VoIP calls, and / or other types of calls. For example, the call controller 214 may include computer-telephone integration (CTI) software for interface connection with the switch / media gateway and other components. The call controller 214 may include a SIP server for handling session initiation protocol (SIP) calls. The call controller 214 may also extract data about the incoming interaction, such as the customer's telephone number, IP address, or email address, and then communicate this data with other contact center components when processing the interaction.

[0060] The two-way media response (IMR) server 216 may be configured to enable self-help or virtual assistant functions. Specifically, the IMR server 216 may be similar to an interactive voice response (IVR) server, except that the IMR server 216 is not limited to voice and may also cover various media channels. In the example illustrating voice, the IMR server 216 may consist of IMR scripts for querying customers about their needs. For example, a bank contact center may instruct customers via an IMR script to "press 1" if they want to withdraw their deposit balance. Through continuous interaction with the IMR server 216, customers may receive services without needing to speak with an agent. The IMR server 216 may also be configured to determine why a customer is contacting the contact center so that communications can be routed to the appropriate resources. IMR configuration may be implemented through the use of self-service and / or assisted service tools, including web-based tools for developing IVR and routing applications that run within a contact center environment (e.g., Genesys® Designer).

[0061] The routing server 218 may function to route incoming interactions. For example, if it is determined that an inbound communication should be handled by a human agent, the functions within the routing server 218 may select the most appropriate agent and route the communication to that agent. This agent selection may be based on which available agent is best suited to handle the communication. More specifically, the selection of the appropriate agent may be based on a routing strategy or algorithm implemented by the routing server 218. In doing so, the routing server 218 may query data related to the incoming interaction, such as data related to a specific customer, available agents, and the type of interaction, and this data may be stored in a specific database as described herein. Once an agent is selected, the routing server 218 may interact with the call controller 214 to route (i.e., connect) the incoming interaction to the corresponding agent device 230. As part of this connection, information about the customer may be provided to the selected agent via that agent device 230. This information is intended to enhance the services that the agent can provide to the customer.

[0062] It should be understood that the contact center system 200 may include one or more mass storage devices (generally represented by storage device 220) for storing data in one or more databases related to the functions of the contact center. For example, storage device 220 may store customer data maintained in a customer database. Such customer data may include, for example, customer profiles, contact information, service level agreements (SLAs), and interaction history (e.g., details of previous interactions with a particular customer, including the nature of the previous interaction, disposal data, wait times, processing times, and actions taken by the contact center to resolve the customer's issue). As another example, storage device 220 may store agent data in an agent database. Agent data maintained by the contact center system 200 may include, for example, agent availability and agent profiles, schedules, skills, processing times, and / or other related data. As yet another example, storage device 220 may store interaction data in an interaction database. Interaction data may include, for example, data related to numerous past interactions between customers and the contact center. More generally, unless otherwise specifically designated, the storage device 220 may be configured to store data including and / or relating to any of the types of information described herein, and it should be understood that these databases and / or data are accessible to other modules or servers of the contact center system 200 in a manner that facilitates the functions described herein. For example, a server or module of the contact center system 200 may query such databases to retrieve data stored in the databases or to transmit data to the databases for storage. The storage device 220 may take the form of any conventional storage medium, for example, and may be housed locally or operated from a remote location.For example, a database can be a Cassandra database, a NoSQL database, or an SQL database, and may be managed by a database management system such as Oracle, IBM DB2, Microsoft SQL Server, Microsoft Access, or PostgreSQL.

[0063] The statistics server 226 may be configured to record and aggregate data relating to the performance and operating characteristics of the contact center system 200. Such information may be compiled by the statistics server 226 and made available to other servers and modules, such as the reporting server 248, which may then use the data to generate reports used to manage the operating characteristics of the contact center and to perform automated actions according to the functions described herein. Such data may relate to the status of contact center resources, such as average wait time, discard rate, agent occupancy, and others that may be required by the functions described herein.

[0064] The agent device 230 of the contact center system 200 may be a communication device configured to interact with various components and modules of the contact center system 200 in a manner that facilitates the functions described herein. For example, the agent device 230 may include a telephone adapted for regular telephone calls or VoIP calls. The agent device 230 may further include a computing device configured to communicate with the server of the contact center system 200, perform data processing associated with its operation, and interface with customers via voice, chat, email, and other multimedia communication mechanisms in accordance with the functions described herein. Figure 2 shows three such agent devices 230, namely agent devices 230A, 230B, and 230C, but it should be understood that in a particular embodiment, any number of agent devices 230 may be present.

[0065] The multimedia / social media server 234 may be configured to facilitate (non-voice) media interactions with customer devices 205 and / or server 242. Such media interactions may relate to, for example, email, voicemail, chat, video, text messaging, the web, social media, co-browsing, etc. The multimedia / social media server 234 may take the form of any IP router conventional in the art, having dedicated hardware and software for receiving, processing, and forwarding multimedia events and communications.

[0066] The knowledge management server 236 may be configured to facilitate interaction between the customer and the knowledge system 238. Generally, the knowledge system 238 may be a computer system capable of receiving questions or queries and providing answers accordingly. The knowledge system 238 may be included as part of the contact center system 200 or operated remotely by a third party. The knowledge system 238 may include an artificial intelligence computer system capable of answering questions presented in natural language by retrieving information from sources such as encyclopedias, dictionaries, newswire articles, literary works, or other documents submitted to the knowledge system 238 as reference material. As an example, the knowledge system 238 may be embodied as IBM Watson or a similar system.

[0067] The chat server 240 may be configured to conduct, orchestrate, and manage electronic chat communication with customers. Generally, the chat server 240 is configured to implement and maintain chat conversations and generate chat transcripts. Such chat communication may be conducted by the chat server 240 in a manner in which the customer communicates with an automated chatbot, a human agent, or both. In an exemplary embodiment, the chat server 240 may function as a chat orchestration server that dispatches chat conversations between chatbots and available human agents. In such a case, the processing logic of the chat server 240 may be rules that are thus driven to leverage intelligent workload distribution among available chat resources. The chat server 240 may further implement, manage, and streamline user interfaces (UIs) associated with the chat functionality, including user interfaces generated on either the customer device 205 or the agent device 230. The chat server 240 may be configured to transfer chat between automated and human sources within a single chat session with a particular customer, for example, so that the chat session is transferred from a chatbot to a human agent or from a human agent to a chatbot. The chat server 240 may also be coupled with a knowledge management server 236 and a knowledge system 238 to receive suggestions and answers to inquiries presented by the customer during the chat, for example so that links to relevant articles may be provided.

[0068] The web server 242 may be included to provide site hosting for various social interaction sites that customers subscribe to, such as Facebook, Twitter, and Instagram. Although described as part of the contact center system 200, it should be understood that the web server 242 may be provided by a third party and / or maintained remotely. The web server 242 may also provide web pages of companies or organizations supported by the contact center system 200. For example, a customer may browse a web page to receive information about a particular company's products and services. Within such a company's web page, a mechanism may be provided for initiating interaction with the contact center system 200, for example, via web chat, voice, or email. An example of such a mechanism is a widget that may be deployed on a web page or website hosted on the web server 242. As used herein, a widget refers to a user interface component that performs a specific function. In some implementations, a widget may include a graphical user interface control that can be overlaid on a web page displayed to the customer over the internet. A widget may include buttons or other controls that allow a customer to access specific functions, such as displaying information in a window or text box, sharing or opening a file, or initiating communication. In some implementations, a widget includes a user interface component with a portable portion of code that can be installed and executed within a separate web page without compilation. Some widgets may include corresponding or additional user interfaces and may be configured to access various local resources (e.g., calendar or contact information on the customer's device) or remote resources over a network (e.g., instant messaging, email, or social networking updates).

[0069] The interaction (iXn) server 244 may be configured to manage deferred activities in a contact center and the routing of those activities to human agents for completion. As used herein, deferred activities include back-office work that can be performed offline, such as responding to emails, attending training, and other activities that do not require real-time communication with customers. For example, the interaction (iXn) server 244 may be configured to interact with the routing server 218 to select the appropriate agent to handle each of the deferred activities. Once assigned to a specific agent, the deferred activity is pushed to that agent, and as a result, the deferred activity appears on the agent device 230 of the selected agent. The deferred activity may appear in a workbin as a task for the selected agent to complete. The functionality of the workbin may be implemented via any conventional data structure, such as linked lists, arrays, and / or other preferred data structures. Each of the agent devices 230 may contain a workbin. For example, the workbin may be maintained in the buffer memory of the corresponding agent device 230.

[0070] The universal contact server (UCS) 246 may be configured to retrieve information stored in the customer database and / or transmit information to the customer database for storage. For example, UCS 246 may be used as part of a chat function to facilitate maintaining a history of how chats with a particular customer were handled, and this history may then be used as a reference for how future chat communications should be handled. More generally, UCS 246 may be configured to facilitate maintaining a history of customer preferences, such as preferred media channels and best times to contact. To do this, UCS 246 may be configured to identify data related to each customer's interaction history, such as data on agent comments, customer communication history, etc. Each of these data types may then be stored in the customer database 222 or other modules and retrieved when required by the functions described herein.

[0071] The reporting server 248 may be configured to generate reports from data compiled and aggregated by the statistics server 226 or other sources. Such reports may include quasi-real-time or historical reports and may relate to the state of contact center resources and performance characteristics, such as average latency, discard rate, and / or agent occupancy. Reports may be generated automatically or in response to specific requests from requesters (e.g., agents, administrators, contact center applications). The reports may then be used to manage the operation of the contact center in accordance with the functions described herein.

[0072] The media service server 249 may be configured to provide audio and / or video services to support contact center functions. According to the functions described herein, such functions may include prompting for IVR or IMR systems (e.g., playing audio files), hold music, voicemail / single-party recording, multi-party recording (e.g., audio and / or video calls), speech recognition, dual-tone multi-frequency (DTMF) recognition, fax, audio and video transcoding, secure real-time transport protocol (SRTP), teleconferencing, video conferencing, coaching (e.g., support for coaches to eavesdrop on interactions between customers and agents, and support for coaches to provide comments to agents without customers hearing the comments), call analysis, keyword spotting, and / or other related functions.

[0073] The analysis module 250 may be configured to provide a system and method for performing analysis on data received from multiple different data sources, where the functionality described herein may be required. According to exemplary embodiments, the analysis module 250 may also generate, update, train, and modify predictors or models based on collected data, such as customer data, agent data, and interaction data. The models may include customer or agent behavior models. Behavioral models may be used to predict customer or agent behavior in various situations, for example, thereby enabling embodiments of the invention to adjust interactions based on such predictions or allocate resources in preparation for predicted characteristics of future interactions, thereby improving overall contact center performance and customer experience. Although the analysis module is described as part of a contact center, it will be understood that such behavior models may also be implemented in customer systems (or the “customer side” of interactions, as used herein) and used for the benefit of the customer.

[0074] According to an exemplary embodiment, the analytics module 250 may have access to data stored in the storage device 220, including a customer database and an agent database. The analytics module 250 may also have access to an interaction database that stores data relating to interactions and interaction content (e.g., transcripts of interactions and events detected therein), interaction metadata (e.g., customer identifiers, agent identifiers, interaction medium, interaction length, interaction start and end times, department, tagged category), and application settings (e.g., interaction paths through the contact center). Furthermore, the analytics module 250 may be configured to retrieve data stored in the storage device 220 for use in developing and training algorithms and models, for example, by applying machine learning techniques.

[0075] One or more of the included models may be configured to predict customer or agent behavior, and / or aspects related to the operation and performance of the contact center. Furthermore, one or more of the models may be used for natural language processing, including, for example, intent recognition. Models may be developed based on known first-principles equations describing the system, data yielding an experimental model, or a combination of known first-principles equations and data. When developing models for use in this embodiment, first-principles equations are often unavailable or not easily derived, so it may generally be preferable to build empirical models based on collected and stored data. In some embodiments, it may be preferable for the models to be nonlinear in order to adequately capture the relationship between the instrumental / disturbance variables and the control variables of a complex system. This is because nonlinear models may show a curvilinear relationship, rather than a linear relationship, between the instrumental / disturbance variables and the control variables, which is common in complex systems such as those considered herein. Given the requirements described above, machine learning or neural network-based approaches may be preferred embodiments for implementing the models. For example, a neural network may be developed based on empirical data using advanced regression algorithms.

[0076] The analysis module 250 may further include an optimizer. As can be understood, the optimizer can be used to minimize the “cost function” object to which a set of constraints is applied, where the cost function is a mathematical representation of the desired objective or system behavior. Since the model can be nonlinear, the optimizer may be a nonlinear programming optimizer. However, the techniques described herein are intended to be implemented by using various different types of optimization approaches, including but not limited to linear programming, quadratic programming, mixed-integer nonlinear programming, stochastic programming, global nonlinear programming, genetic algorithms, particle / swarm techniques, etc., individually or in combination.

[0077] According to some embodiments, the model and optimizer may be used together within an optimization system. For example, the analysis module 250 may utilize the optimization system as part of an optimization process in which the performance and behavior of the contact center are optimized, or at least enhanced. This may include features related to customer experience, agent experience, interaction routing, natural language processing, intent recognition, or other functions related to automated processes, for example.

[0078] The various components, modules, and / or servers in Figure 2 (and other figures included herein) may each include one or more processors that execute computer program instructions and interact with other system components to perform the various functions described herein. Such computer program instructions may be stored in memory implemented using standard memory devices such as random-access memory (RAM), or on other non-temporary computer-readable media such as CD-ROMs or flash drives. While each function of a server is described as being provided by a particular server, those skilled in the art should understand that the functions of various servers may be combined or integrated into a single server, or that the functions of a particular server may be distributed across one or more other servers without departing from the scope of the invention. Furthermore, the terms “interaction” and “communication” are used interchangeably and generally refer to any real-time and non-real-time interaction using any communication channel, including but not limited to telephone calls (PSTN or VoIP calls), email, V-mail, video, chat, screen sharing, text messages, social media messages, WebRTC calls, etc. Access to and control of the components of the contact system 200 may be influenced through a user interface (UI) that may be generated on the customer device 205 and / or agent device 230. As already mentioned, the contact center system 200 may be operated as a hybrid system in which some or all of its components are remotely hosted in a cloud-based environment or a cloud computing environment. It should be understood that each device of the call center system 200 may be embodied, include, or form part of one or more computing devices similar to the computing device 300 described below with reference to Figure 3.

[0079] Referring next to Figure 3, a simplified block diagram of at least one embodiment of computing device 300 is shown. The exemplary computing device 300 represents at least one embodiment of each of the computing devices, systems, services, controllers, switches, gateways, engines, modules, and / or computing components described herein (for example, for brevity of description, they may be collectively and interchangeably referred to as computing devices, servers, or modules). For example, various computing devices may be processes or threads running on one or more processors of one or more computing devices 300, executing computer program instructions and possibly interacting with other system modules to perform various functions described herein. Unless otherwise specifically limited, functions described in relation to multiple computing devices may be integrated into a single computing device, or various functions described in relation to a single computing device may be distributed across several computing devices. Furthermore, in relation to the computing systems described herein, such as the contact center system 200 in Figure 2, the various servers and computer devices of the system may be located on local computing devices 300 (e.g., on-site at the same physical location as the contact center agents), remote computing devices 300 (e.g., off-site, i.e., in a cloud-based environment, or in a cloud computing environment, e.g., in a remote data center connected via a network), or any combination thereof.In some embodiments, functions provided by a server located on an off-site computing device may be accessed and provided via a virtual private network (VPN) as if such a server were on-site, or functions may be provided using Software as a Service (SaaS) accessed over the Internet using various protocols, for example, by exchanging data via an extensible markup language (XML), JSON, and / or functions may be accessed / utilized in other ways.

[0080] In some embodiments, the computing device 300 may be embodied as a server, desktop computer, laptop computer, tablet computer, notebook, netbook, Ultrabook®, mobile phone, mobile computing device, smartphone, wearable computing device, personal digital assistant, Internet of Things (IoT) device, processing system, wireless access point, router, gateway, and / or any other computing device, processing device, and / or communication device capable of performing the functions described herein.

[0081] The computing device 300 includes a processing device 302 that executes algorithms and / or processes data according to operational logic 308, an input / output device 304 that enables communication between the computing device 300 and one or more external devices 310, and a memory 306 that stores data received from the external devices 310, for example, via the input / output device 304.

[0082] The input / output device 304 enables the computing device 300 to communicate with the external device 310. For example, the input / output device 304 may include a transceiver, a network adapter, a network card, an interface, one or more communication ports (e.g., a USB port, a serial port, a parallel port, an analog port, a digital port, VGA, DVI, HDMI, FireWire, CAT5, or any other type of communication port or interface), and / or other communication circuits. The communication circuits of the computing device 300 may be configured to perform such communication depending on the specific computing device 300 using any one or more communication technologies (e.g., wireless or wired communication) and associated protocols (e.g., Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.). The input / output device 304 may include hardware, software, and / or firmware suitable for implementing the technologies described herein.

[0083] The external device 310 may be any type of device that enables data to be input to or output from the computing device 300. For example, in various embodiments, the external device 310 may be embodied as one or more of the devices / systems and / or parts thereof described herein. Furthermore, in some embodiments, the external device 310 may be embodied as another computing device, switch, diagnostic tool, controller, printer, display, alarm, peripheral device (e.g., keyboard, mouse, touchscreen display, etc.), and / or any other computing, processing, and / or communication device capable of performing the functions described herein. Furthermore, it should be understood that in some embodiments, the external device 310 may be integrated with the computing device 300.

[0084] The processing device 302 can be embodied as any type of processor capable of performing the functions described herein. In particular, the processing device 302 can be embodied as one or more single-core or multi-core processors, microcontrollers, or other processors or processing / control circuits. For example, in some embodiments, the processing device 302 may include, or be embodied as, an arithmetic logic unit (ALU), a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another suitable processor. The processing device 302 may be of a programmable type, a dedicated hardwired state machine, or a combination thereof. The processing device 302 having multiple processing units can utilize distributed processing, pipelined processing, and / or parallel processing in various embodiments. Furthermore, the processing device 302 may be dedicated solely to performing the operations described herein, or it may be used in one or more additional applications. In exemplary embodiments, the processing device 302 is programmable and executes algorithms and / or processes data according to operational logic 308 defined by programming instructions (such as software or firmware) stored in memory 306. Additionally or alternatively, the operational logic 308 of the processing device 302 may be defined at least in part by hardwired logic or other hardware. Furthermore, the processing device 302 may include one or more components of any type suitable for processing signals received from the input / output device 304 or from other components or devices and providing a desired output signal. Such components may include digital circuits, analog circuits, or a combination thereof.

[0085] Memory 306 may be one or more types of non-temporary computer-readable media, such as solid-state memory, electromagnetic memory, optical memory, or a combination thereof. Furthermore, memory 306 may be volatile and / or non-volatile, and in some embodiments, part or all of memory 306 may be of a portable type, such as disks, tapes, memory sticks, cartridges, and / or other suitable portable memory. During operation, memory 306 may store various data and software used during the operation of the computing device 300, such as operating systems, applications, programs, libraries, and drivers. It should be understood that in addition to storing programming instructions that define the operational logic 308, memory 306 may also store data operated by the operational logic 308 of the processing device 302, such as data representing signals received from and / or transmitted to the input / output device 304. As shown in Figure 3, memory 306 may be included in and / or coupled to the processing device 302, depending on the particular embodiment. For example, in some embodiments, the processing device 302, the memory 306, and / or other components of the computing device 300 may form part of a system-on-a-chip (SoC) and be incorporated into a single integrated circuit chip.

[0086] In some embodiments, various components of the computing device 300 (e.g., the processing device 302 and the memory 306) may be communicatively coupled via an input / output subsystem, which may be embodied as circuits and / or components for facilitating input / output operations with the processing device 302, the memory 306, and other components of the computing device 300. For example, the input / output subsystem may be embodied as a memory controller hub, an input / output control hub, a firmware device, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.), and / or other components and subsystems for facilitating input / output operations, or may otherwise include them.

[0087] The computing device 300 may include other or additional components, such as those commonly found in typical computing devices (e.g., various input / output devices and / or other components) in other embodiments. It should be further understood that one or more components of the computing device 300 described herein may be distributed across multiple computing devices. In other words, the techniques described herein may be employed by a computing system comprising one or more computing devices. Furthermore, although only a single processing device 302, I / O device 304, and memory 306 are shown exemplary in Figure 3, it should be understood that a particular computing device 300 may, in other embodiments, include multiple processing devices 302, I / O devices 304, and / or memory 306. Additionally, in some embodiments, two or more external devices 310 may communicate with the computing device 300.

[0088] The computing device 300 may be one of several devices connected by a network or connected to other systems / resources via a network. The network may be embodied as any one or more types of communication networks that can facilitate communication between various devices connected communicably via the network. Thus, the network may include one or more networks, routers, switches, access points, hubs, computers, client devices, endpoints, nodes, and / or other intervening network devices. For example, the network may be embodied as one or more cellular networks, telephone networks, local or wide area networks, publicly available global networks (e.g., the Internet), ad hoc networks, short-range communication links, or a combination thereof, or otherwise include them. In some embodiments, the network may include circuit-switched voice or data networks, packet-switched voice or data networks, and / or any other networks capable of carrying voice and / or data. In particular, in some embodiments, the network may include Internet Protocol (IP) based networks and / or asynchronous transfer mode (ATM) based networks. In some embodiments, the network may handle voice traffic (e.g., via a Voice over IP (VOIP) network), web traffic, and / or other network traffic, depending on the particular embodiment and / or the devices of the systems communicating with each other.In various embodiments, the network may include analog or digital wired and wireless networks (e.g., IEEE 802.11 networks, public switched telephone networks (PSTN), Integrated Services Digital Network (ISDN), and Digital Subscriber Line (xDSL)), third-generation (3G) mobile networks, fourth-generation (4G) mobile networks, fifth-generation (5G) mobile networks, wired Ethernet networks, private networks (e.g., intranets), radio, television, cable, satellite, and / or any other distribution or tunneling mechanism for carrying data, or any suitable combination of such networks. It should be understood that various devices / systems may communicate with each other via different networks depending on the source and / or destination devices / systems.

[0089] It should be understood that computing device 300 may communicate with other computing devices 300 via any type of gateway or tunneling protocol, such as secure socket layer or transport layer security. Network interfaces may include built-in network adapters, such as network interface cards, suitable for interfaceping the computing device to any type of network capable of performing the operations described herein. Furthermore, the network environment may be a virtual network environment in which various network components are virtualized. For example, various machines may be virtual machines implemented as software-based computers running on physical machines. Virtual machines may share the same operating system, or, in other embodiments, different operating systems may run on each virtual machine instance. For example, a "hypervisor" type of virtualization is used in which multiple virtual machines run on the same host physical machine, each functioning as if it had its own dedicated box. Other types of virtualization may be employed in other embodiments, e.g., for networks (e.g., via software-defined networking) or functions (e.g., via network function virtualization).

[0090] As a result, one or more of the computing devices 300 described herein may be embodied as one or more cloud-based systems, or form part thereof. In a cloud-based embodiment, the cloud-based system may be embodied as, for example, a server-ambiguous computing solution that executes multiple instructions on demand, executes instructions only when prompted by a specific activity / trigger, and does not consume computing resources when not in use. That is, the system may be embodied as a virtual computing environment that resides "on top of" a computing system (e.g., a distributed network of devices) on which various virtual functions (e.g., lambda functions, Azure functions, Google Cloud functions, and / or other suitable virtual functions) can be executed in accordance with the functionality of the system described herein. For example, when an event occurs (e.g., data is transferred to the system for processing), the virtual computing environment may be communicated (e.g., via requests to the virtual computing environment's API), thereby allowing the API to route requests to the correct virtual function (e.g., a specific server-ambiguous computing resource) based on a set of rules. Therefore, if a request for data transmission is made by a user (for example, through a suitable user interface to the system), a suitable virtual function may be executed to perform the action before deleting the instance of the virtual function.

Claims

1. An on-premise system for preprocessing data for prediction, An on-premises data storage device that stores a source data structure that stores contact center interaction data for each of multiple source intervals, At least one processor, The system comprises at least one memory storing multiple instructions, and the instructions are executed by the at least one processor in the on-premises system. Receiving a request to predict the aforementioned contact center interaction data, With respect to the plurality of source intervals stored in the source data structure, the corresponding first number of interactions per unit of time for the corresponding source interval of the contact center interaction data is determined. In an output data structure that stores interaction data for each of multiple uniform destination intervals, the corresponding second number of time units in the corresponding destination interval is determined, For each of the plurality of source intervals, the corresponding third number of interactions in the corresponding destination interval is determined based on the corresponding first number of interactions per unit of time for the corresponding source interval and the corresponding second number of units of time in the corresponding destination interval. An on-premise system that, for each corresponding destination interval, immediately stores data representing the corresponding third number of interactions determined for the corresponding destination interval from the source data structure into the output data structure, without generating a third data structure that temporarily holds intermediate data based on the source data structure.

2. With further enhancements to the contact center system, The on-premise system according to claim 1, wherein the contact center system comprises the at least one processor and the at least one memory.

3. The on-premise system according to claim 1, wherein the corresponding first number of interactions includes the number of calls given to an agent of the contact center system.

4. The on-premise system according to claim 1, wherein the corresponding first number of interactions includes the number of calls handled by an agent of the contact center system.

5. The on-premise system according to claim 1, wherein the corresponding first number of interactions includes the total call processing time by agents of the contact center system.

6. The on-premise system according to claim 1, wherein determining the corresponding third number of interactions in the destination interval includes multiplying the corresponding first number of interactions per unit of time for the corresponding source interval by the corresponding second number of units of time in the corresponding destination interval.

7. The on-premise system according to claim 1, wherein the corresponding destination interval is a time interval of 15 minutes.

8. The on-premises system according to claim 1, wherein receiving the request to predict the contact center interaction data includes receiving a request to migrate the contact center interaction data from the on-premises system to a cloud system.

9. A system for preprocessing data for prediction, An on-premises contact center system comprising an on-premises data storage device that stores a source data structure for storing contact center interaction data in each of a plurality of source intervals, wherein (i) a request to predict the contact center interaction data is received from a user device; (ii) for the plurality of source intervals stored in the source data structure, the corresponding first number of interactions per time unit for the corresponding source interval of the contact center interaction data is determined; and (iii) in an output data structure that stores interaction data in each of a plurality of uniform destination intervals, the corresponding second number of time units in the corresponding output interval is determined. A system comprising an on-premise contact center system configured to: (iv) determine for each of the plurality of source intervals the corresponding third number of interactions in the corresponding output interval based on the corresponding first number of interactions per unit of time for the corresponding source interval and the corresponding second number of units of time in the corresponding output interval; and (v) store data representing the corresponding third number of interactions determined for each corresponding destination interval in the output data structure from the source data structure without generating a third data structure that temporarily holds intermediate data based on the source data structure for each corresponding destination interval.

10. The system according to claim 9, wherein the corresponding first number of interactions includes the number of calls given to an agent of the on-premise contact center system.

11. The system according to claim 9, wherein the corresponding first number of interactions includes the number of calls handled by the agent of the on-premise contact center system.

12. The system according to claim 9, wherein the corresponding first number of interactions includes the total processing time of calls by the agents of the on-premise contact center system.

13. The system according to claim 9, wherein determining the corresponding third number of interactions in the output interval includes multiplying the corresponding first number of interactions per unit of time for the corresponding source interval by the corresponding second number of units of time in the corresponding output interval.

14. The system according to claim 9, wherein the corresponding output interval is a time interval of 15 minutes.

15. A method for preprocessing data for prediction, The on-premises contact center system receives a request to predict the contact center interaction data for each of the multiple source intervals stored in the on-premises data storage device of the on-premises contact center system, and the source data structure is used to store the contact center interaction data for each of the multiple source intervals stored in the on-premises data storage device of the on-premises contact center system. The on-premise contact center system determines, for the multiple source intervals stored in the source data structure, the corresponding first number of interactions per unit of time for the corresponding source interval of the contact center interaction data; The on-premise contact center system, in its output data structure for storing interaction data in each of multiple uniform destination intervals, determines the corresponding second time unit in the corresponding destination interval. The on-premise contact center system determines, for each of the multiple source intervals, the corresponding third number of interactions in the corresponding destination interval based on the corresponding first number of interactions per hour for the corresponding source interval and the corresponding second number of hours in the corresponding destination interval. A method comprising: using the on-premise contact center system, immediately storing data representing the corresponding third number of interactions determined for each corresponding destination interval from the source data structure into the output data structure, without generating a third data structure for temporarily holding intermediate data based on the source data structure for each corresponding destination interval.

16. The method according to claim 15, wherein the corresponding first number of interactions includes the number of calls given to an agent of the on-premise contact center system.

17. The method according to claim 15, wherein the corresponding first number of interactions includes the number of calls handled by the agent of the on-premise contact center system.

18. The method according to claim 15, wherein the corresponding first number of interactions includes the total call processing time by the agent of the on-premise contact center system.

19. The method according to claim 15, wherein determining the corresponding third number of interactions in the destination interval includes multiplying the corresponding first number of interactions per unit of time for the corresponding source interval by the corresponding second number of units of time in the corresponding destination interval.

20. The method according to claim 15, wherein the corresponding destination interval is a time interval of 15 minutes.

Citation Information

Patent Citations

  • Method and apparatus of predicting number of accesses, and method and apparatus of arranging number of operators

    JP2006254094A

  • Method of predicting call volume

    JP2008187444A

  • Method for Operating Call-Center by Analyzing Service Call and Program Recording Medium

    KR1020090001862A