Techniques for filtering and querying a trie data structure to generate real-time robotic process visualizations and analytics

By using a single global trie structure and depth-first search in the contact center system, the scalability problem of trie data structures when filtering and querying robot processes is solved, enabling efficient real-time robot process visualization and diverse functions.

CN122122570APending Publication Date: 2026-05-29GENESIS CLOUD SERVICES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GENESIS CLOUD SERVICES CO LTD
Filing Date
2024-11-08
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

The existing trie data structure is computationally intensive when filtering and querying robot processes, leading to scalability issues and failing to effectively support real-time robot process visualization.

Method used

Robot process data is stored using a single global trie structure, and the trie is dynamically updated to generate real-time visualizations through depth-first search and user-selected event filtering.

Benefits of technology

It improves the efficiency of filtering and querying, reduces processing and read/write operations, supports online computing, meets the latency requirements of the Service Level Agreement, and enables diverse and customizable function integration.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122122570A_ABST
    Figure CN122122570A_ABST
Patent Text Reader

Abstract

A method for filtering a trie data structure for real-time robotic process visualization according to embodiments includes receiving data associated with a trie data structure, wherein the trie data structure includes data for a plurality of contact center robotic processes organized, and wherein each robotic process of the plurality of contact center robotic processes includes at least one event; receiving a user selection associated with filtering the trie data structure for a modified visualization of the trie data structure; performing a search of the trie data structure to identify events of the trie data structure to delete; deleting the identified events to generate an updated trie data structure; updating event attributes of remaining events of the updated trie data structure in response to deleting the identified events; and providing the updated trie data structure for real-time robotic process visualization.
Need to check novelty before this filing date? Find Prior Art

Description

Cross-referencing of related applications and priority claims

[0001] This application claims priority to U.S. Patent Application 18 / 505,900, filed November 9, 2023, entitled “TECHNOLOGIES FOR FILTERING AND QUERYING TRIE DATA STRUCTURES FOR GENERATING REAL-TIME BOT FLOWVISUALIZATIONS AND ANALYTICS”. Background Technology

[0002] Call centers and other contact centers are used by many organizations to provide technical and other support to their end users. End users can interact with human and / or virtual agents at the contact center through electronic communications via one or more communication technologies, including, for example, telephone, email, web chat, short message service (SMS), dedicated software applications, and / or other technologies. In particular, end users can interact with the contact center's interactive voice response (IVR) system, which, for example, uses a series of predefined prompts and user responses to determine how to resolve the user's problem by utilizing one or more robot processes defined by the contact center administrator. Summary of the Invention

[0003] One implementation relates to unique systems, components, and methods for filtering trie data structures for real-time robotic process visualization. Other implementations relate to apparatus, systems, devices, hardware, methods, and combinations thereof for filtering trie data structures for real-time robotic process visualization.

[0004] According to the implementation scheme, a method for filtering a trie data structure for real-time robot process visualization may include: receiving data associated with a trie data structure by a computing system, wherein the trie data structure includes data for multiple contact center robot processes of an organization, and wherein each of the multiple contact center robot processes includes at least one event; receiving user selections associated with the visualization of modifications to the trie data structure for filtering the trie data structure by the computing system; performing a search on the trie data structure by the computing system to identify events to be deleted from the trie data structure; deleting the identified events by the computing system to generate an updated trie data structure; updating the event attributes of the remaining events in the updated trie data structure in response to the deletion of the identified events; and providing the updated trie data structure by the computing system for real-time robot process visualization.

[0005] In some implementations, receiving user selections associated with filtering the trie data structure may include receiving user requests to filter the trie data structure through a selected robot process.

[0006] In some implementations, performing a search of the trie data structure to identify events that identify the trie data structure to be deleted may include events that identify the trie data structure as not associated with the selected robotic process.

[0007] In some implementations, receiving user selections associated with a filtered trie data structure may include receiving a user request to filter the trie data structure to include only events containing selected event attribute values.

[0008] In some implementations, performing a search of the trie data structure to identify events to be deleted from the trie data structure may include identifying events in the trie data structure that do not include selected event attribute values.

[0009] In some implementations, deleting the identified event to generate an updated trie data structure may include updating the parent-child relationships of events affected by the deletion of the identified event.

[0010] In some implementations, the method may further include one or more sub-tribe data structures identified by the computing system and after the identified event is deleted, wherein each of the one or more sub-tribe data structures is a parent event with an updated parent-child relationship.

[0011] In some implementations, the method may further include merging each of one or more sub-tribes by a computing system to generate an updated trie data structure.

[0012] In some implementations, performing a search on a trie data structure may include performing a depth-first search on the trie data structure.

[0013] According to another embodiment, a system for filtering a trie data structure for real-time robotic process visualization may include at least one processor and at least one memory, the at least one memory including a plurality of instructions stored thereon, the plurality of instructions being responsive to execution by the at least one processor to cause the system to: receive data associated with a trie data structure, wherein the trie data structure includes data for a plurality of contact center robotic processes for an organization, and wherein each of the plurality of contact center robotic processes includes at least one event; receive user selections associated with the visualization of modifications to the trie data structure for filtering the trie data structure; perform a search on the trie data structure to identify events to be deleted from the trie data structure; delete the identified events to generate an updated trie data structure; update the event attributes of the remaining events in the updated trie data structure in response to the deletion of the identified events; and provide the updated trie data structure for real-time robotic process visualization.

[0014] In some implementations, receiving user selections associated with filtering the trie data structure may include receiving user requests to filter the trie data structure through a selected robot process.

[0015] In some implementations, performing a search of the trie data structure to identify events that identify the trie data structure to be deleted may include events that identify the trie data structure as not associated with the selected robotic process.

[0016] In some implementations, receiving user selections associated with a filtered trie data structure may include receiving a user request to filter the trie data structure to include only events containing selected event attribute values.

[0017] In some implementations, performing a search of the trie data structure to identify events to be deleted from the trie data structure may include identifying events in the trie data structure that do not include selected event attribute values.

[0018] In some implementations, deleting the identified event to generate an updated trie data structure may include updating the parent-child relationships of events affected by the deletion of the identified event.

[0019] In some implementations, multiple instructions may further enable the system to identify one or more sub-tribe data structures of the intermediate trie data structure after deleting the identified event, wherein each of the one or more sub-tribe data structures is a parent event with an updated parent-child relationship.

[0020] In some implementations, multiple instructions can further enable the system to merge each sub-tribe in one or more sub-tribes to generate an updated trie data structure.

[0021] In some implementations, performing a search on a trie data structure may include performing a depth-first search on the trie data structure.

[0022] According to yet another embodiment, one or more non-transitory machine-readable storage media may include a plurality of instructions stored thereon, the plurality of instructions being executed by a computing system to cause the computing system to: receive data associated with a trie data structure, wherein the trie data structure includes data for a plurality of contact center robot processes for organization, and wherein each of the plurality of contact center robot processes includes at least one event; receive a user selection associated with a visualization of a modification of the trie data structure for filtering the trie data structure, wherein the user selection requests the trie data structure to be filtered to include only processes with a selected start event; perform a search of the trie data structure to identify each occurrence of the selected start event in the trie data structure; extract a sub-trie data structure associated with each identified start event; merge the extracted sub-trie data structures to generate an updated trie data structure; and provide the updated trie data structure for real-time robot process visualization.

[0023] In some implementations, performing a search on a trie data structure may include performing a depth-first search on the trie data structure.

[0024] This invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to serve as an aid to limiting the scope of the claimed subject matter. Further embodiments, forms, features, and aspects of this application will become apparent from the description and drawings provided herein. Attached Figure Description

[0025] The concepts described herein are illustrated in the accompanying drawings by way of example and not by way of limitation. For simplicity and clarity, the elements illustrated in the drawings are not necessarily drawn to scale. Where deemed appropriate, reference numerals have been repeated in the drawings to indicate corresponding or similar elements.

[0026] Figure 1 A simplified block diagram of at least one implementation scheme of a contact center system is depicted;

[0027] Figure 2 It is a simplified block diagram of at least one implementation of a computing device;

[0028] Figure 3 It is a simplified flowchart of at least one implementation of a method for filtering a trie data structure by a specific event;

[0029] Figure 4This is a simplified flowchart of at least one implementation of a method for filtering a trie data structure by event attributes;

[0030] Figure 5 It is a simplified flowchart of at least one implementation of a method for filtering a trie data structure via a robotic process;

[0031] Figures 6 to 7 Examples of various states of a sample trie data structure filtered by specific events are shown;

[0032] Figures 8 to 10 Examples of various states of a sample trie data structure filtered by event attributes are provided; and

[0033] Figures 11 to 12 Examples of various states of a sample trie data structure filtered by a robot process are shown. Detailed Implementation

[0034] While the concepts of this disclosure are susceptible to various modifications and alternatives, specific embodiments have been shown by way of example in the accompanying drawings and will be described in detail herein. However, it should be understood that the concepts of this disclosure are not intended to be limited to the specific forms disclosed, but rather are intended to cover all modifications, equivalents, and alternatives consistent with this disclosure and the appended claims.

[0035] References to "an embodiment," "an embodiment," "an exemplary embodiment," etc., in the specification indicate that the described embodiment may include a particular feature, structure, or characteristic; however, each embodiment may or may not include that particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. It should also be understood that although references to "preferred" components or features may indicate the desirability of a particular component or feature with respect to an embodiment, this disclosure is not therefore limited to other embodiments in which such component or feature may be omitted. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is considered that implementing such a feature, structure, or characteristic in conjunction with other embodiments is within the knowledge of those skilled in the art, whether explicitly described or not. Moreover, in various embodiments, a particular feature, structure, or characteristic may be combined in any suitable combination and / or sub-combination.

[0036] Additionally, it should be understood that items included in the list in the form of “at least one of A, B, and C” may mean (A); (B); (C); (A and B); (B and C); (A and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” may 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 “a,” “an,” “at least one,” and / or “at least a portion” should not be construed as limiting to only one such element unless specifically stated otherwise, and the use of phrases such as “at least a portion” and / or “a portion” should be construed as covering both embodiments that include only a portion of such element and embodiments that include the entire such element, unless specifically stated otherwise.

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

[0038] In the accompanying drawings, certain structural or methodological features may be shown in a particular arrangement and / or sequence. However, it should be understood that such a particular arrangement and / or sequence may not be necessary. Rather, in some embodiments, unless otherwise indicated, such features may be arranged in a different manner and / or order than shown in the illustrative figures. Additionally, the inclusion of a structural or methodological feature in a particular figure does not imply that such a feature is required in all embodiments, and in some embodiments, such a feature may be omitted or may be combined with other features.

[0039] It should be understood that the techniques described below provide user-friendly visualizations that help contact center customer experience managers improve the "big picture" of the bot experience by visualizing process milestones / outcomes in interactions that affect bot self-service containment. More specifically, the exemplary techniques utilize trie data structures, allowing filtering, searching, and / or querying to display events in a customer journey that begins at a specific event, events including specific attribute values, and / or events associated with a specific bot process (e.g., performed by a bot or automated agent in the contact center system). Traditional implementations of trie data structures have drawbacks that limit their capabilities in certain use cases. For example, to achieve filtering and querying capabilities based on any event and to visualize the path to / from that event, it is simple to create multiple trie data structures, with one trie data structure for each event or node within the trie data structure. However, such approaches are computationally intensive and lead to significant scalability issues. Therefore, the techniques described herein provide a scalable solution that allows for this type of filtering and querying using trie data structures (i.e., without building a separate trie for each query event). Furthermore, the technology described herein allows for online (e.g., cloud-based) computing methods while maintaining reasonable latency (e.g., latency that meets typical service level agreement requirements, such as a maximum query response time of one second). Instead of creating a trie for each filtering criterion, a single “global” trie can be stored for each organization, which includes each bot process in the bot process and its associated event attributes. This approach significantly reduces the required processing and read / write operations, thereby improving efficiency. The reduced number of files and corresponding read / write operations also results in lower operational costs. The system can also be seamlessly integrated with a variety of bot processes, allowing for diverse and customizable functionality. It should be understood that, for simplicity and conciseness, the “trie data structure” may be simply referred to as a “trie” herein. Moreover, although the technology is described herein with reference to “bot processes,” it should be understood that similar techniques can be applied to other types of processes or client processes in other implementations.

[0040] Now for reference Figure 1This diagram illustrates a simplified block diagram of at least one embodiment of a communication infrastructure and / or contact center system that can be used in conjunction with one or more of the embodiments described herein. Contact center system 100 can 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 otherwise performing the functions described herein. The exemplary contact center system 100 includes client equipment 102, network 104, switch / media gateway 106, call controller 108, interactive media response (IMR) server 110, routing server 112, storage device 114, statistics server 116, agent devices 118A, 118B, 118C, media server 120, knowledge management server 122, knowledge system 124, chat server 126, web server 128, interactive (iXn) server 130, general contact server 132, reporting server 134, media service server 136, and analytics module 138. Although in Figure 1 The exemplary implementation shows only one client device 102, one network 104, one switch / media gateway 106, one call controller 108, one IMR server 110, one routing server 112, one storage device 114, one statistics server 116, one media server 120, one knowledge management server 122, one knowledge system 124, one chat server 126, one iXn server 130, one general contact server 132, one reporting server 134, one media service server 136, and An analysis module 138 is included, but in other embodiments, the contact center system 100 may include multiple client devices 102, a network 104, a switch / media gateway 106, a call controller 108, an IMR server 110, a routing server 112, a storage device 114, a statistics server 116, a media server 120, a knowledge management server 122, a knowledge system 124, a chat server 126, an iXn server 130, a general contact server 132, a reporting server 134, a media service server 136, and / or an analysis module 138. Furthermore, in some embodiments, one or more of the components described herein may be excluded from system 100, one or more independent components described as separate components may form part of another component, and / or one or more components described as forming part of another component may be separate.

[0041] It should be understood that the term "contact center system" is used in this article to refer to Figure 1The term “contact center” is used more generally to refer to a contact center system, the customer service providers operating those systems, and / or the organizations or enterprises associated with them. Therefore, unless otherwise expressly limited, the term “contact center” generally refers to a contact center system (such as contact center system 100), the associated customer service providers (such as specific customer service providers / agents providing customer service through contact center system 100), and the organizations or enterprises that provide those customer services on its behalf.

[0042] In the back-end, customer service providers can offer a variety of services through contact centers. Such contact centers may be staffed with employees or customer service agents (or simply "agents") who act as intermediaries between companies, businesses, government agencies, or organizations (hereinafter referred to interchangeably as "organizations" or "enterprises") and individuals such as users, individuals, or customers (hereinafter referred to interchangeably as "individuals," "customers," or "contact center clients"). For example, agents at a contact center can assist customers in making purchasing decisions, receiving orders, or resolving issues with received products or services. Within a contact center, such interactions between contact center agents and external entities or customers can take place on various communication channels, such as, for example, via voice (e.g., telephone calls or VoIP calls), video (e.g., video conferencing), text (e.g., email and text chat), screen sharing, shared browsing, and / or other communication channels.

[0043] Operationally, contact centers generally strive to provide high-quality service to customers while minimizing costs. For example, one way contact centers operate is by handling each customer's interaction with a live agent. While this approach may score well in terms of service quality, it can also be very expensive due to the high cost of agent labor. Therefore, most contact centers utilize some degree of automation to replace live agents, such as interactive voice response (IVR) systems, interactive media response (IMR) systems, internet bots or "bots," automated chat modules or "chatbots," and / or other automated processes. In many cases, this has proven to be a successful strategy because automated processes can handle certain types of interactions very efficiently and effectively reduce the need for live agents. Such automation allows contact centers to use human agents for more challenging customer interactions, while automated processes handle more repetitive or routine tasks. Furthermore, automated processes can be built in ways that optimize efficiency and promote repeatability. While human or live agents may forget to ask certain questions or follow up on specific details, such errors can often be avoided by using automated processes. Although customer service providers are increasingly reliant on automated processes to interact with customers, customers still use such technologies far less. Therefore, although IVR systems, IMR systems, and / or robots are used to automate some interactions on the contact center side of the interaction, the actions on the customer side are still performed manually by the customer.

[0044] It should be understood that customer service providers can use contact center system 100 to provide various types of services to customers. For example, contact center system 100 can be used to participate in and manage interactions between automated processes (or robots) or human agents and customers. It should be understood that contact center system 100 can be an internal facility of a company or enterprise for performing sales and customer service functions relative to products and services available to the enterprise. In another embodiment, contact center system 100 can be operated by a third-party service provider contracted to provide services to another organization. Furthermore, contact center system 100 can be deployed on equipment dedicated to an enterprise or third-party service provider, and / or deployed in a remote computing environment, such as, for example, a private or public cloud environment with infrastructure for supporting multiple contact centers for multiple enterprises. Contact center system 100 may include software applications or programs that can be executed on-site or remotely, or some combination thereof. It should also be understood that the various components of contact center system 100 can be distributed across various geographical locations and are not necessarily contained in a single location or computing environment.

[0045] It should also be understood that, unless otherwise expressly limited, any of the computing elements in this invention may also be implemented in a cloud-based or cloud computing environment. As used herein and further described below with reference to computing device 200, “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), which can be rapidly configured via virtualization and deployed with minimal management effort or service provider interaction, and then scaled accordingly. Cloud computing can be comprised of various characteristics (e.g., on-demand self-service, extensive network access, resource pooling, rapid elasticity, metered 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, hybrid cloud, etc.). Cloud execution models are often referred to as “serverless architectures,” which typically involve service providers that dynamically manage the allocation and configuration of remote servers to achieve the required functionality.

[0046] It should be understood that, relative to Figure 1 Any of the computer-implemented components, modules, or servers described can be accessed via one or more types of computing devices (such as, for example...) Figure 2 The contact center system 100 is implemented using a computing device 200. As can be seen, the contact center system 100 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, remote marketing, order taking, and / or other features.

[0047] Customers wishing to receive services from contact center system 100 can initiate inbound communications to contact center system 100 (e.g., telephone calls, emails, chat, etc.) via customer equipment 102. Although Figure 1 One such client device (i.e., client device 102) is shown, but it should be understood that any number of client devices 102 may exist. Client device 102 may be, for example, a communication device such as a telephone, smartphone, computer, tablet, or laptop computer. Based on the functions described herein, a customer can generally use client device 102 to initiate, manage, and conduct communications with contact center system 100, such as telephone calls, emails, chat, text messages, web browsing sessions, and other multimedia transactions.

[0048] Inbound and outbound communications to and from client equipment 102 can traverse network 104, the nature of which typically depends on the type of client equipment used and the form of communication. For example, network 104 may include communication networks for telephone, cellular, and / or data services. Network 104 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 104 may include a wireless carrier network, including Code Division Multiple Access (CDMA) networks, Global System for Mobile Communications (GSM) networks, or any wireless network / technology conventional in the art, including but not limited to 3G, 4G, LTE, 5G, etc.

[0049] Switch / media gateway 106 may be coupled to network 104 for receiving and sending telephone calls between customers and contact center system 100. Switch / media gateway 106 may include a telephone or communications exchange configured to act as a central exchange for agent-level routing within the center. The exchange may be a hardware switching system or implemented via software. For example, exchange 106 may include an automatic call distributor, a private branch exchange (PBX), an IP-based software exchange, and / or any other exchange with dedicated hardware and software configured to receive interactions from the Internet and / or from the telephone network from customers and route those interactions to, for example, one of the agent devices in agent device 118. Thus, generally speaking, switch / media gateway 106 establishes a voice connection between a customer and an agent by establishing a connection between customer device 102 and agent device 118.

[0050] As further shown, the switch / media gateway 106 may be coupled to a call controller 108, which may serve as, for example, an adapter or interface between the switch and other routing, monitoring, and communication processing components of the contact center system 100. The call controller 108 may be configured to handle PSTN calls, VoIP calls, and / or other types of calls. For example, the call controller 108 may include computer telephony integration (CTI) software for interacting with the switch / media gateway and other components. The call controller 108 may include a Session Initiation Protocol (SIP) server for handling SIP calls. The call controller 108 may also extract data about incoming interactions, such as a customer's phone number, IP address, or email address, and then communicate this data to other contact center components while processing the interaction.

[0051] Interactive Media Response (IMR) server 110 can be configured to enable self-service or virtual assistant functionality. Specifically, IMR server 110 can be similar to an Interactive Voice Response (IVR) server, except that IMR server 110 is not limited to voice and can also cover various media channels. In an example exemplifying voice, IMR server 110 can be configured with IMR scripts to inquire about a customer's needs. For example, a bank's contact center can instruct a customer via an IMR script to "press 1" if they wish to retrieve their account balance. By continuing to interact with IMR server 110, the customer can receive service without speaking to an agent. IMR server 110 can also be configured to determine the reason a customer contacts the contact center, enabling communications to be routed to the appropriate resources. IMR configuration can be performed using self-service and / or auxiliary service tools, including web-based tools for developing IVR applications and routing applications that run in a contact center environment.

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

[0053] It should be understood that the contact center system 100 may include one or more mass storage devices (typically represented by storage device 114) for storing data in one or more databases related to the functions of the contact center. For example, storage device 114 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, disposition data, wait times, processing times, and actions taken by the contact center to resolve customer issues). As another example, storage device 114 may store agent data in an agent database. Agent data maintained by the contact center system 100 may include, for example, agent availability and agent profiles, schedules, skills, processing times, and / or other relevant data. As another example, storage device 114 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, it should be understood that, unless otherwise specified, storage device 114 may be configured to include databases and / or store data related to any of the information types described herein, wherein these databases and / or data can be accessed by other modules or servers of contact center system 100 in a manner that facilitates the functionality described herein. For example, servers or modules of contact center system 100 may query such databases to retrieve data stored therein or send data thereto for storage. For example, storage device 114 may take the form of any conventional storage medium and may be installed locally or operated from a remote location. For example, the database may be a Cassandra database, a NoSQL database, or an SQL database, and is managed by a database management system such as Oracle, IBM DB2, Microsoft SQL Server, Microsoft Access, or PostgreSQL.

[0054] Statistics server 116 can be configured to record and aggregate data related to the performance and operational aspects of contact center system 100. This information can be compiled by statistics server 116 and made available to other servers and modules such as reporting server 134, which can then use the data to generate reports that are used to manage operational aspects of the contact center and perform automated actions according to the functions described herein. This data may relate to the status of contact center resources, such as average wait time, abandonment rate, agent occupancy rate, and other data required for the functions described herein.

[0055] The agent device 118 of the contact center system 100 may be a communication device configured to interact with various components and modules of the contact center system 100 in a manner that facilitates the functions described herein. For example, agent device 118 may include a telephone suitable for regular telephone calls or VoIP calls. Agent device 118 may also include a computing device configured to communicate with the server of the contact center system 100 according to the functions described herein, perform data processing associated with operations, and interact with customers via voice, chat, email, and other multimedia communication mechanisms. Although Figure 1 Three such agent devices 118 are shown (i.e., agent devices 118A, 118B, and 118C), but it should be understood that any number of agent devices 118 may be present in a particular embodiment.

[0056] The multimedia / social media server 120 can be configured to facilitate media interaction (excluding voice) with client device 102 and / or server 128. Such media interaction may be associated with, for example, email, voicemail, chat, video, text messaging, networking, social media, shared browsing, etc. The multimedia / social media server 120 may take the form of any IP router conventional in the art, equipped with dedicated hardware and software for receiving, processing, and forwarding multimedia events and communications.

[0057] Knowledge management server 122 may be configured to facilitate interaction between clients and knowledge system 124. Generally, knowledge system 124 may be a computer system capable of receiving questions or queries and providing answers in response. Knowledge system 124 may be included as part of contact center system 100 or remotely operated by a third party. Knowledge system 124 may include an artificial intelligence computer system capable of answering questions posed in natural language by retrieving information from sources such as encyclopedias, dictionaries, newsletter articles, literary works, or other documents submitted to knowledge system 124 as reference material. For example, knowledge system 124 may be embodied in IBM Watson or a similar system.

[0058] Chat server 126 can be configured to conduct, orchestrate, and manage electronic chat communications with clients. Generally, chat server 126 is configured to implement and maintain chat conversations and generate chat transcripts. Such chat communications can be conducted by chat server 126 in a manner where the client communicates with an automated chatbot, a human agent, or both. In an exemplary embodiment, chat server 126 can function as a chat orchestration server that schedules chat conversations between chatbots and available human agents. In such cases, the processing logic of chat server 126 can be rule-driven to leverage intelligent workload distribution among available chat resources. Chat server 126 can also implement, manage, and facilitate user interfaces (UIs) associated with chat features, including those generated at client device 102 or agent device 118. Chat server 126 can be configured to transfer chat between automated and human resources within a single chat session with a specific client, such as transferring a chat session from a chatbot to a human agent or vice versa. Chat server 126 can also be coupled to knowledge management server 122 and knowledge system 124 to receive suggestions and answers to queries made by customers during chat, such as providing links to relevant articles.

[0059] Web server 128 may be included to provide site hosting for various social interaction sites (such as Facebook, Twitter, Instagram, etc.) subscribed to by customers. Although depicted as part of contact center system 100, it should be understood that web server 128 may be provided and / or remotely maintained by a third party. Web server 128 may also provide web pages for businesses or organizations supported by contact center system 100. For example, customers may browse web pages and receive information about the products and services of a particular business. Within such business web pages, mechanisms may be provided for initiating interactions with contact center system 100, for example, via web chat, voice, or email. Examples of such mechanisms are widgets that may be deployed on web pages or websites hosted on web server 128. 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 may be overlaid on a web page displayed to a customer via the Internet. Widgets may display information, such as in a window or text box, or include buttons or other controls that allow customers to access certain functions, such as sharing or opening files or initiating communications. 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 a corresponding or additional user interface and may be configured to access various local resources (e.g., calendar or contact information on a client device) or remote resources via a network (e.g., instant messaging, email, or social network updates).

[0060] Interactive (iXn) server 130 can be configured to manage deferred activities in the contact center and their routing to human agents for completion. As used herein, deferred activities can include background work that can be performed offline, such as replying to emails, attending training sessions, and other activities that do not require real-time communication with customers. For example, interactive (iXn) server 130 can be configured to interact with routing server 112 to select an appropriate agent to handle each deferred activity among the deferred activities. Once assigned to a specific agent, the deferred activity is pushed to that agent, making it appear on the selected agent's agent device 118. Deferred activities may appear in a workspace as tasks to be completed by the selected agent. The functionality of the workspace can be implemented using any conventional data structure, such as, for example, linked lists, arrays, and / or other suitable data structures. Each agent device in agent device 118 may include a workspace. For example, the workspace may be maintained in a buffer memory of the corresponding agent device 118.

[0061] The Universal Contact Server (UCS) 132 can be configured to retrieve information stored in a customer database and / or send information to it for storage. For example, UCS 132 can be used as part of a chat feature to facilitate the maintenance of a history of how chats with a particular customer were handled, which can then be used as a reference for how future chats should be handled. More generally, UCS 132 can be configured to facilitate the maintenance of a history of customer preferences, such as preferred media channels and optimal contact times. To this end, UCS 132 can be configured to identify data associated with each customer's interaction history, such as data related to comments from agents, customer communication history, etc. Each of these data types can then be stored in the customer database 222 or on other modules and retrieved as needed for the functionality described herein.

[0062] Reporting server 134 can be configured to generate reports based on data compiled and aggregated by statistics server 116 or other sources. Such reports may include near real-time or historical reports and relate to the status and performance characteristics of contact center resources, such as average wait time, abandonment 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, etc.). These reports can then be used to manage contact center operations according to the functionality described herein.

[0063] Media service server 136 may be configured to provide audio and / or video services to support contact center features. Such features, as described herein, may include prompts to IVR or IMR systems (e.g., playback of audio files), hold music, voicemail / one-way recording, multi-way recording (e.g., multi-way recording of audio and / or video calls), screen recording, speech recognition, dual-tone multi-frequency (DTMF) recognition, fax, audio and video transcoding, Secure Real-Time Transport Protocol (SRTP), audio conferencing, video conferencing, tutorials (e.g., enabling coaches to listen to interactions between customers and agents and enabling coaches to provide comments to agents when customers have not heard them), call analytics, keyword targeting, and / or other relevant features.

[0064] Analysis module 138 can be configured to provide systems and methods for performing analysis on data received from multiple different data sources, as the functionality described herein may require. According to example embodiments, analysis module 138 can also generate, update, train, and modify predictors or models based on collected data, such as, for example, customer data, agent data, and interaction data. Models may include behavioral models of customers or agents. Behavioral models can be used to predict, for example, customer or agent behavior in various situations, thereby allowing embodiments of the invention to tailor interactions or allocate resources to prepare predictive characteristics for future interactions based on such predictions, thereby improving the overall performance of the contact center and the customer experience. It should be understood that while the analysis module is described as part of a contact center, such behavioral models can also be implemented on the customer system (or, as used herein, on the "customer side" of the interaction) and used for customer benefit.

[0065] According to an exemplary embodiment, the analysis module 138 can access data stored in storage device 114 (including a customer database and an agent database). The analysis module 138 can also access an interaction database that stores data related to interactions and interaction content (e.g., transcriptions of detected interactions and events), interaction metadata (e.g., customer identifiers, agent identifiers, interaction media, interaction duration, interaction start and end times, department, tag category), and application settings (e.g., interaction paths via contact centers). Furthermore, the analysis module 138 can be configured to retrieve data stored in storage device 114 for use, for example, in developing and training algorithms and models by applying machine learning techniques.

[0066] One or more of the included models can be configured to predict customer or agent behavior and / or aspects related to contact center operation and performance. Furthermore, one or more of the models can be used for natural language processing and, for example, include intent recognition. Models can be developed based on: known first-principles equations describing the system; data that generates the empirical model; or a combination of known first-principles equations and data. When developing models for use with embodiments of the invention, since first-principles formulas are often unavailable or not easily derived, it is generally preferable to build empirical models based on collected and stored data. In order to accurately capture the relationship between the manipulating / interference variables and the controlled variables of a complex system, in some embodiments, it may be preferred that the model be nonlinear. This is because nonlinear models can represent a curvilinear relationship between the manipulating / interference variables and the controlled variables rather than a linear one, which is common for complex systems such as those discussed herein. In view of the foregoing requirements, machine learning or neural network-based methods are preferred embodiments for implementing the models. For example, advanced regression algorithms can be used to develop neural networks based on empirical data.

[0067] Analysis module 138 may also include an optimizer. It should be understood that an optimizer can be used to minimize a “cost function” subject to a set of constraints, where the cost function is a mathematical representation of the desired objective or system operation. Since the model can be nonlinear, the optimizer can be a nonlinear programming optimizer. However, it is conceivable that the techniques described herein can be implemented using a variety of different types of optimization methods, individually or in combination, including but not limited to linear programming, quadratic programming, mixed-integer nonlinear programming, stochastic programming, global nonlinear programming, genetic algorithms, and particle / swarm optimization techniques.

[0068] According to some implementation schemes, the model and optimizer can be used together within the optimization system. For example, the analysis module 138 can utilize the optimization system as part of an optimization process to optimize or at least enhance aspects of the contact center's performance and operation. This could include, for example, features related to customer experience, agent experience, interaction routing, natural language processing, intent recognition, or other functionalities related to automation processes.

[0069] Figure 1 The various components, modules, and / or servers (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 storage devices such as, for example, random access memory (RAM), or in other non-transitory computer-readable media such as, for example, CD-ROMs, flash drives, etc. Although the functionality of each server is described as being provided by a specific server, those skilled in the art will recognize that the functionality of various servers may be combined or integrated into a single server, or the functionality of a specific 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 or non-real-time interaction using any communication channel, including but not limited to telephone calls (PSTN or VoIP calls), email, voicemail, video, chat, screen sharing, text messages, social media messages, WebRTC calls, etc. Access to and control of components of the contact center system 100 can be influenced by a user interface (UI) that may be generated on client equipment 102 and / or agent equipment 118.

[0070] As already noted, in some implementations, the contact center system 100 may operate as a hybrid system in which some or all components are remotely hosted, such as in a cloud-based or cloud computing environment. It should be understood that each of the devices in the contact center system 100 may be embodied in, include, or form similar to those referenced below. Figure 2The computing device 200 described is part of one or more computing devices.

[0071] Now for reference Figure 2 A simplified block diagram of at least one embodiment of computing device 200 is shown. The illustrative computing device 200 depicts at least one embodiment of each of the computing devices, systems, servers, controllers, switches, gateways, engines, modules, and / or computing components described herein (e.g., for the sake of brevity, they may be 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 200, which can execute computer program instructions and interact with other system modules to perform the various functions described herein. Unless otherwise expressly limited, the functions described with respect to multiple computing devices may be integrated into a single computing device, or the various functions described with respect to a single computing device may be distributed across several computing devices. Furthermore, regarding the computing systems described herein (such as… Figure 1 The contact center system 100, with its various servers and computer equipment, may be located on local computing devices 200 (e.g., on-site at the same physical location as the contact center agents), on remote computing devices 200 (e.g., off-site or in a cloud-based or cloud computing environment, such as in a remote data center connected via a network), or some combination thereof. In some implementations, functionality provided by servers on off-site computing devices may be accessed and provided via a Virtual Private Network (VPN) as if such servers were on-site, or functionality may be provided using Software as a Service (SaaS) (accessible via the Internet using various protocols), such as exchanging data via Extensible Markup Language (XML) and JSON, and / or the functionality may be accessed / utilized in other ways.

[0072] In some implementations, the computing device 200 may be embodied as a server, desktop computer, laptop computer, tablet computer, notebook computer, netbook, or ultrabook. ™ Cellular phones, mobile computing devices, smartphones, wearable computing devices, personal digital assistants, Internet of Things (IoT) devices, processing systems, wireless access points, routers, gateways and / or any other computing, processing and / or communication devices capable of performing the functions described herein.

[0073] The computing device 200 includes a processing device 202 that executes algorithms and / or processes data according to operating logic 208, an input / output device 204 that enables communication between the computing device 200 and one or more external devices 210, and a memory 206 that stores data, for example, received from the external devices 210 via the input / output device 204.

[0074] Input / output device 204 allows computing device 200 to communicate with external device 210. For example, input / output device 204 may include a transceiver, network adapter, network interface card (NIC), interface, one or more communication ports (e.g., USB port, serial port, parallel port, analog port, digital port, VGA, DVI, HDMI, FireWire, CAT5, or any other type of communication port or interface) and / or other communication circuitry. Depending on the specific computing device 200, the communication circuitry of computing device 200 may be configured to use any one or more communication technologies (e.g., wireless or wired communication) and associated protocols (e.g., Ethernet, Bluetooth). ® Wi-Fi ® This type of communication can be achieved using devices such as WiMAX, etc. Input / output device 204 may include hardware, software, and / or firmware suitable for performing the techniques described herein.

[0075] External device 210 can be any type of device that allows data to be input or output from computing device 200. For example, in various embodiments, external device 210 may be embodied as one or more and / or a part of the devices / systems described herein. Furthermore, in some embodiments, external device 210 may be embodied as another computing device, switch, diagnostic tool, controller, printer, monitor, alarm, peripheral device (e.g., keyboard, mouse, touchscreen display, etc.) and / or any other computing device, processing device, and / or communication device capable of performing the functions described herein. Additionally, in some embodiments, it should be understood that external device 210 may be integrated into computing device 200.

[0076] Processing device 202 may be embodied as any type of processor capable of performing the functions described herein. In particular, processing device 202 may be embodied as one or more single-core or multi-core processors, microcontrollers, or other processors or processing / control circuitry. For example, in some embodiments, processing device 202 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. Processing device 202 may be programmable, a dedicated hardwired state machine, or a combination thereof. In various embodiments, processing device 202 having multiple processing units may utilize distributed, pipelined, and / or parallel processing. Furthermore, processing device 202 may be dedicated solely to the execution of the operations described herein, or may be utilized in one or more additional applications. In exemplary embodiments, processing device 202 is programmable and can execute algorithms and / or process data according to operating logic 208, as defined by programming instructions (such as software or firmware) stored in memory 206. Additionally or alternatively, the operating logic 208 for the processing device 202 may be at least partially defined by hard-wired logic or other hardware. Furthermore, the processing device 202 may include one or more components of any type suitable for processing signals received from the input / output device 204 or from other components or devices and providing a desired output signal. Such components may include digital circuitry, analog circuitry, or combinations thereof.

[0077] Memory 206 may be one or more types of non-transitory computer-readable media, such as solid-state memory, electromagnetic memory, optical memory, or combinations thereof. Furthermore, memory 206 may be volatile and / or non-volatile, and in some embodiments, some or all of the memory in memory 206 may be portable types, such as disks, magnetic tapes, memory sticks, cassette tapes, and / or other suitable portable storage devices. In operation, memory 206 may store various data and software used during the operation of computing device 200, such as operating systems, applications, programs, libraries, and drivers. It should be understood that, in addition to or instead of storing programming instructions defining operating logic 208, memory 206 may store data manipulated by the operating logic 208 of processing device 202, such as data representing signals received from and / or transmitted to input / output device 204. Figure 2 As shown, depending on the specific implementation, memory 206 may be included in and / or coupled to processing device 202. For example, in some implementations, processing device 202, memory 206, and / or other components of computing device 200 may form part of a system-on-chip (SoC) and be incorporated onto a single integrated circuit chip.

[0078] In some implementations, various components of computing device 200 (e.g., processing device 202 and memory 206) may be communicatively coupled via an input / output subsystem, which may be embodied as circuitry and / or components to facilitate input / output operations with the processing device 202, memory 206, and other components of computing device 200. For example, the input / output subsystem may be embodied as or otherwise include a memory controller hub, an input / output control hub, firmware devices, 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 to facilitate input / output operations.

[0079] In other embodiments, computing device 200 may include other or additional components, such as those common in typical computing devices (e.g., various input / output devices and / or other components). It should also be understood that one or more of the components of computing device 200 described herein may be distributed across multiple computing devices. In other words, the techniques described herein can be employed by computing systems that include one or more computing devices. Additionally, although in Figure 2 The illustration illustratively depicts only a single processing device 202, I / O device 204, and memory 206; however, it should be understood that in other embodiments, a particular computing device 200 may include multiple processing devices 202, I / O devices 204, and / or memory 206. Furthermore, in some embodiments, more than one external device 210 may communicate with the computing device 200.

[0080] Computing device 200 can be one of a plurality of devices connected to or via a network to other systems / sources. A network can be embodied as any one or more types of communication networks capable of facilitating communication between various devices communicatively connected via a network. Therefore, a network can include one or more networks, routers, switches, access points, hubs, computers, client devices, endpoints, nodes, and / or other intermediate network devices. For example, a network can be embodied as or otherwise include one or more cellular networks, telephone networks, local area networks or wide area networks, publicly available global networks (e.g., the Internet), ad hoc networks, short-range communication links, or combinations thereof. In some embodiments, a network can include circuit-switched voice or data networks, packet-switched voice or data networks, and / or any other network capable of carrying voice and / or data. In particular, in some embodiments, a network can include Internet Protocol (IP) based and / or Asynchronous Transfer Mode (ATM) based networks. In some embodiments, a network can handle voice traffic (e.g., via Voice over IP (VoIP) networks), web traffic, and / or other network traffic depending on the specific implementation of the systems communicating with each other and / or other devices. In various implementations, the network may include analog or digital wired and wireless networks (e.g., IEEE 802.11 networks, Public Switched Telephone Network (PSTN), Integrated Services Digital Network (ISDN), and Digital Subscriber Line (xDSL)), third-generation (3G) mobile telecommunications networks, fourth-generation (4G) mobile telecommunications networks, fifth-generation (5G) mobile telecommunications networks, wired Ethernet networks, private networks (e.g., intranets), radio, television, cable, satellite, and / or any other delivery or tunneling mechanism for carrying data, or any suitable combination of such networks. It should be understood that various devices / systems may depend on the source and / or destination devices communicating with each other via different networks.

[0081] It should be understood that computing device 200 can communicate with other computing devices 200 via any type of gateway or tunneling protocol (such as Secure Sockets Layer or Transport Layer Security). The network interface may include a built-in network adapter (such as a network interface card) suitable for connecting computing devices to any type of network capable of performing the operations described herein. Furthermore, the network environment can be a virtual network environment in which various network components are virtualized. For example, various machines can 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, where multiple virtual machines run on the same host physical machine, each acting as if it had its own dedicated box. In other embodiments, other types of virtualization may be employed, such as, for example, networking (e.g., via software-defined networking) or functions (e.g., via network function virtualization).

[0082] Therefore, one or more of the computing devices 200 described herein may be embodied as or form part of one or more cloud-based systems. In a cloud-based implementation, the cloud-based system may be embodied as a server-fuzzy computing solution that, for example, executes multiple instructions on demand, includes logic that executes instructions only when prompted by a specific activity / triggering event, and does not consume computing resources when not in use. That is, the system may be embodied as a virtual computing environment (e.g., a distributed network of devices) residing “on” the computing system, where various virtual functions (e.g., lambda functions, Azure functions, Google Cloud functions, and / or other suitable virtual functions) may correspond to functions of the system described herein for execution. For example, when an event occurs (e.g., data is transferred to the system for processing), communication with the virtual computing environment may occur (e.g., via a request to the virtual computing environment's API), whereby the API may route the request to the correct virtual function (e.g., a specific server-fuzzy computing resource) based on a set of rules. Thus, when a user makes a request for data transfer (e.g., via the appropriate user interface of the system), the appropriate virtual function may be executed to perform an action before an instance of the virtual function is eliminated.

[0083] Now for reference Figure 3In use, a computing system (e.g., contact center system 100, one or more computing devices 200, and / or other computing devices described herein) may execute method 300 for filtering a trie data structure by specific events. It should be understood that, unless otherwise stated, specific boxes of method 300 are illustrated by way of example, and such boxes may be combined or divided, added or removed, and / or reordered, wholly or partially, depending on a particular implementation.

[0084] The exemplary method 300 begins at box 302, in which the computing system receives a trie for the entire dataset of the organization. For example, as described above, the exemplary technique may involve creating a single “global” trie that includes all robotic processes for the organization (e.g., including relevant attributes and / or other metadata). For simplicity and conciseness, this trie may be referred to as the “parent trie” or “global trie.” This parent trie can be received by the computing system or otherwise accessed (e.g., for filtering and querying). Figure 6 An example trie in state 600 is illustrated, where the trie has been organized as a "global" parent trie (e.g., storing the state of the trie). In other implementations, it should be understood that the parent trie may include multiple robotic processes of an organization, but not necessarily all robotic processes. For example, a particular organization may be interested in partitioning it for the analysis and / or visualization of robotic processes and events.

[0085] As described above, Figure 6 The example "global" parent trie is shown in its initial state 600 after its creation. The exemplary trie is a simple example created for an organization comprising three basic robotic processes. For simplicity and clarity, possible event sequences or "routes" are described using "words". The first robotic process includes the processes BALL (representing a sequence of events B, A, L, and L), CAR (representing a sequence of events C, A, and R), and A (representing a sequence containing only event A). The second robotic process includes the processes BAT (representing a sequence of events B, A, and T) and CART (representing a sequence of events C, A, R, and T). The third robotic process includes the processes CAT (representing a sequence of events C, A, and T), A (representing a sequence containing only event A), XP (representing a sequence of events X and P), and BLL (representing a sequence of events B, L, and L). Figure 11 The same trie is also illustrated in state 1100, which further illustrates the robot process identifier associated with each of the robot processes corresponding to the nearest corresponding event.

[0086] In box 304, the computing system receives a selection of the starting event for the trie, which is used to filter the trie. For example, as described above, the administrator can visualize the trie in a graphical user interface and is provided with user input indicating whether they want to filter the trie to include only events containing a specific starting event. Figures 6 to 7 In the exemplary implementation, the user has selected event "a" as the starting event. In box 306, the system calculates each occurrence of the selected starting event in the trie. For example, as... Figure 6 As depicted in state 602, the computational system has identified each occurrence of event "a" in the parent trie, which includes each event in the dataset described above. In some embodiments, in box 308, the computational system may perform a depth-first search to identify each occurrence of a selected starting event in the trie. In other embodiments, the computational system may utilize another search algorithm. In some embodiments, it should be understood that upon finding a specific starting event (e.g., Figure 6 Each time event “a” in state 602 occurs, the computing system can also identify each sub-tribe that includes the selected event as the starting event (e.g., in...). Figure 6 The three sub-tribes are highlighted in state 602.

[0087] If the computational system determines in box 310 that one or more occurrences of the selected event have been identified in the trie, then method 300 proceeds to box 312, in which the computational system extracts the sub-trie associated with each identified initiating event. For example, as Figure 7 As depicted in state 700, the computing system has extracted three sub-tribes from the trie in state 602, each of which begins with the selected event "a". In box 314, the computing system merges the extracted sub-tribes to generate an updated trie. For example, as... Figure 7 As depicted in state 702, the computing system has merged the three exemplary sub-tribes of state 700 into a single trie. It should be understood that the resulting updated trie satisfies the properties of a trie, and therefore, for example, there are no duplicate runs. In box 316, the computing system updates the event attributes of the merged and updated trie. For example, if events in the merged trie previously existed in multiple sub-tribes, counts of events from the sub-tribes can be aggregated, and / or other attributes can be aggregated or otherwise combined.

[0088] In box 318, the computing system provides the updated trie to the administrative user. For example, in some implementations, the updated trie may be returned to the requesting administrative user device for display on a graphical user interface for visualization by the administrative user.

[0089] Although blocks 302 to 318 are described in a relatively sequential manner, it should be understood that in some implementations, the individual blocks of method 300 may be executed in parallel.

[0090] Now for reference Figure 4 In use, a computing system (e.g., contact center system 100, one or more computing devices 200, and / or other computing devices described herein) may execute method 400 for filtering a trie data structure by event attributes. It should be understood that, unless otherwise stated, specific boxes of method 400 are illustrated by way of example, and such boxes may be combined or divided, added or removed, and / or reordered, wholly or partially, depending on a particular implementation.

[0091] The exemplary method 400 begins at box 402, in which the computing system receives a trie for the entire dataset of the organization. For example, as described above, the exemplary technique may involve creating a single “global” trie (e.g., a “mother” trie) that includes all robotic processes in the organization’s robotic processes (e.g., including relevant attributes and / or other metadata). Figure 8 An example trie in state 800 is illustrated, where the trie has been organized as a "global" parent trie (e.g., storing the state of the trie). This exemplary trie is a simple example created for an organization comprising three basic robotic processes as described above. However, in the exemplary implementation, each event in the events includes an "animal" attribute, which includes possible values ​​for at least "dog," "cat," and / or "hen." The attribute values ​​associated with each event are... Figures 8 to 10 The middle element is represented as adjacent to each corresponding event.

[0092] In box 404, the computing system receives selections of event attributes of the trie through which it filters the trie, or more specifically, selections of event attribute values ​​of the trie through which it filters the trie. For example, as described above, an administrative user can visualize the trie in a graphical user interface and is provided with user input indicating whether the user wants to filter the trie to include only events containing specific selected event attribute values. For example, in Figures 8 to 10 In the exemplary implementation, the user has selected the "Animal" attribute, and more specifically, the attribute value "Dog". In box 406, the calculation system identifies each event that does not include the selected event attribute, or more specifically, does not include the selected event attribute value in the trie. For example, as... Figure 8As depicted in state 802, the computing system has identified each event / node that does not include the attribute value "dog". That is, one event is identified as including the attribute value "cat", one event is identified as including the attribute values ​​["cat", "hen"], and another event is identified as including the attribute value "hen". In some implementations, the computing system may perform a depth-first search to identify each event in the trie that does not include the selected event attribute value. In other implementations, the computing system may utilize another search algorithm.

[0093] If the calculation system determines in box 410 that one or more events that do not include the selected event attribute value have been identified, method 400 proceeds to box 412, where the calculation system removes the identified event from the trie. In doing so, in box 414, the calculation system may update the parent-child relationships affected by the deletion of the identified event. For example, a previous parent event / node of the deleted event may be temporarily connected (e.g., via a pointer) to a previous child event / node of the deleted event. Figure 9 As depicted in state 900, the computing system has deleted each identified event and created temporary connection 902 to update the parent / child relationships affected by the deleted events.

[0094] In box 416, the computation system identifies each sub-tribe in the sub-tribe of the parent event affected by the deletion event. For example, in some implementations, each previous parent event / node of the deleted event may be identified as the oldest parent node or root node of the sub-tribe. For example, as... Figure 9 As depicted in state 904, the computing system has identified sub-tribes 906 based on the deleted events. In box 418, the computing system merges the identified sub-tribes (e.g., merges events within each corresponding sub-tribe) to generate an updated trie. For example, as... Figure 10 As described in state 1000, the computing system has been merged. Figure 9 Two exemplary sub-tribes 906 are used to create a single trie. As described above, it should be understood that the resulting updated trie satisfies the properties of a trie, and therefore, for example, there are no duplicate runs. In box 420, the computation system updates the event properties of the merged and updated trie. For example, if events in the merged trie previously existed in multiple sub-tribes, counts of events from the sub-tribes can be aggregated, and / or other properties can be aggregated or otherwise combined.

[0095] In box 422, the computing system provides the updated trie to the administrative user. For example, in some implementations, the updated trie may be returned to the requesting administrative user device for display on a graphical user interface for visualization by the administrative user.

[0096] Although blocks 402 to 422 are described in a relatively sequential manner, it should be understood that in some implementations, the blocks of method 400 may be executed in parallel.

[0097] Now for reference Figure 5 In use, a computing system (e.g., contact center system 100, one or more computing devices 200, and / or other computing devices described herein) may execute method 500 for filtering a trie data structure via a robotic process. It should be understood that, unless otherwise stated, specific boxes of method 500 are illustrated by way of example, and such boxes may be combined or divided, added or removed, and / or reordered, wholly or partially, depending on a particular implementation.

[0098] The exemplary method 500 begins at box 502, in which the computing system receives a trie for the entire dataset of the organization. For example, as described above, the exemplary technique may involve creating a single “global” trie (e.g., a “mother” trie) that includes all robotic processes in the organization’s robotic processes (e.g., including relevant attributes and / or other metadata). Figure 11 An example trie in state 1100 is shown, in which the trie has been organized as a "global" parent trie (e.g., storing the state of the trie). Figure 11 As shown, state 1100 also exemplifies the robot process identifier (the process identifiers of robot process 1, robot process 2, and robot process 3) associated with each of the adjacent corresponding events.

[0099] In box 504, the computing system receives a selection of robot processes within the trie, which is then used to filter the trie. For example, as described above, the management user can visualize the trie in a graphical user interface and is provided with user input indicating whether they want to filter the trie to include only events associated with a specific robot process. Figures 11 to 12 In an exemplary implementation, the user has selected to filter the trie to include only events from robot process 2. In box 506, the calculation system identifies each event not associated with the selected robot process (e.g., based on the associated robot process identifier stored as an attribute associated with the event). For example, as... Figure 11 As depicted in state 1102, the computing system has identified each event / node not associated with robot process 2. For illustrative purposes, those events associated only with robot process 1 and / or robot process 3 (and therefore not robot process 2) have been highlighted. In some embodiments, the computing system may perform a depth-first search to identify each event in the trie not associated with the selected robot process. In other embodiments, the computing system may utilize a different search algorithm.

[0100] If the computing system determines in box 510 that it has identified one or more events that are not associated with the selected robotic process, method 500 proceeds to box 512, where the computing system removes the identified event from the trie. It should be understood that if a particular event / node is not associated with a particular robotic process, then for inherent reasons, none of the child nodes of that particular event / node will be associated with that particular robotic process. Therefore, in some embodiments, during a depth-first search, the computing system may identify events / nodes that are not associated with the selected process and remove the entire sub-trie of that node without further searching that sub-trie, making the search more efficient. Figure 12 As depicted in state 1200, the computing system has deleted each of the identified events to generate an updated trie. In box 514, the computing system updates the event attributes of the updated trie. It should be understood that deleting an unselected robot process may cause the frequency count to change for the event, and the attributes may also be updated as described above. For example, the event / node attributes in state 1200 reflect the counts and / or other attributes before the deletion of the identified event, while the event / node attributes in state 1202 reflect the updated counts and / or other attributes after the deletion of the identified event. Additionally, it should be understood that robot process 2 is the only robot process identified as associated with the remaining events.

[0101] In box 516, the computing system provides the updated trie to the administrative user. For example, in some implementations, the updated trie may be returned to the requesting administrative user device for display on a graphical user interface for visualization by the administrative user.

[0102] Although blocks 502 to 516 are described in a relatively sequential manner, it should be understood that in some implementations, the individual blocks of method 500 may be executed in parallel.

Claims

1. A method for filtering trie data structures for real-time robotic process visualization, the method comprising: The computing system receives data associated with the trie data structure, wherein the trie data structure includes data for a plurality of contact center robot processes for organization, and wherein each of the plurality of contact center robot processes includes at least one event; The computing system receives and visualizes user selections associated with the filtering of the trie data structure for modifications to the trie data structure. The computing system performs a search on the trie data structure to identify events that need to be deleted from the trie data structure; The computing system deletes the identified events to generate an updated trie data structure; The computing system updates the event attributes of the remaining events in the updated trie data structure in response to the deletion of the identified event; as well as The updated trie data structure is provided by the computing system for real-time robot process visualization.

2. The method of claim 1, wherein receiving the user selection associated with filtering the trie data structure includes receiving a user request to filter the trie data structure by selecting a robot process.

3. The method of claim 2, wherein performing the search on the trie data structure to identify events to be deleted from the trie data structure includes identifying events in the trie data structure that are not associated with the selected robot process.

4. The method of claim 1, wherein receiving the user selection associated with filtering the trie data structure includes receiving a user request to filter the trie data structure to include only events containing selected event attribute values.

5. The method of claim 4, wherein performing the search on the trie data structure to identify events to be deleted from the trie data structure includes identifying events in the trie data structure that do not include the selected event attribute value.

6. The method of claim 5, wherein deleting the identified event to generate the updated trie data structure includes updating the parent-child relationships of events affected by the deletion of the identified event.

7. The method of claim 6, further comprising one or more sub-tribe data structures identified by the computing system and after the identified event is deleted, wherein each of the one or more sub-tribe data structures is a parent event having an updated parent-child relationship.

8. The method of claim 7, further comprising merging each of the one or more sub-tribes by the computing system to generate the updated trie data structure.

9. The method of claim 1, wherein performing the search on the trie data structure includes performing a depth-first search on the trie data structure.

10. A system for filtering trie data structures for real-time robotic process visualization, the system comprising: At least one processor; and At least one memory, the at least one memory including a plurality of instructions stored thereon, the plurality of instructions being responsive to execution by the at least one processor to cause the system to: Receive data associated with the trie data structure, wherein the trie data structure includes data for a plurality of contact center robot processes for organization, and wherein each of the plurality of contact center robot processes includes at least one event; Receive and visualize user selections associated with the trie data structure for modifications to the trie data structure; Perform a search on the trie data structure to identify events that need to be deleted from the trie data structure; Delete the identified events to generate an updated trie data structure; The event attributes of the remaining events in response to the deletion of the identified event are updated in the updated trie data structure. and The updated trie data structure is provided for real-time robot process visualization.

11. The system of claim 10, wherein receiving the user selection associated with filtering the trie data structure includes receiving a user request to filter the trie data structure by selecting a robot process.

12. The system of claim 11, wherein performing the search on the trie data structure to identify events for deletion of the trie data structure includes identifying events of the trie data structure that are not associated with the selected robot process.

13. The system of claim 10, wherein receiving the user selection associated with filtering the trie data structure includes receiving a user request to filter the trie data structure to include only events containing selected event attribute values.

14. The system of claim 13, wherein performing the search on the trie data structure to identify events to be deleted from the trie data structure includes identifying events in the trie data structure that do not include the selected event attribute value.

15. The system of claim 14, wherein deleting the identified event to generate the updated trie data structure includes updating the parent-child relationships of events affected by the deletion of the identified event.

16. The system of claim 15, wherein the plurality of instructions further causes the system to identify one or more sub-tribe data structures of the intermediate trie data structure after deleting the identified event, wherein each of the one or more sub-tribe data structures is a parent event having an updated parent-child relationship.

17. The system of claim 16, wherein the plurality of instructions further cause the system to merge each of the one or more sub-tribes to generate the updated trie data structure.

18. The system of claim 10, wherein performing the search on the trie data structure includes performing a depth-first search on the trie data structure.

19. One or more non-transitory machine-readable storage media, the non-transitory machine-readable storage media comprising a plurality of instructions stored thereon, the plurality of instructions being responsive to execution by a computing system to cause the computing system to: Receive data associated with a trie data structure, wherein the trie data structure includes data for a plurality of contact center robot processes for organization, and wherein each of the plurality of contact center robot processes includes at least one event; Receive user selections associated with a visualization that filters the trie data structure for modifications to the trie data structure, wherein the user selection requests that the trie data structure be filtered to include only trips with a selected start event; Perform a search of the trie data structure to identify each occurrence of the selected starting event in the trie data structure; Extract the sub-tribe data structure associated with each identified start event; The extracted sub-tribe data structures are merged to generate an updated trie data structure; and The updated trie data structure is provided for real-time robot process visualization.

20. One or more non-transitory machine-readable storage media according to claim 19, wherein performing the search on the trie data structure includes performing a depth-first search on the trie data structure.