Automated ticket resolution

A device may communicate with a server to obtain historical ticket data. The device may generate a data model, based on the historical ticket data. The device may communicate with a client device to obtain ticket data relating to an issue associated with a project. The device may classify, using the data model, the ticket data into a ticket type. The device may generate, using the data model and based on the ticket type, a set of recommended resolutions for resolving the issue associated with the project. The device may select, from the set of recommended resolutions, a particular resolution based on a set of selection criteria. The device may automatically perform one or more actions to implement the particular resolution to resolve the issue associated with the project.

RELATED APPLICATION

This application claims priority under 35 U.S.C. § 119 to Indian Patent Application No. 201741008620, filed on Mar. 13, 2017, the content of which is incorporated by reference herein in its entirety.

BACKGROUND

Using a ticket management system to classify and resolve issues may be difficult in situations where different parties interact in a multitude of different situations, creating a massive number of issues to resolve. Manual classification and/or resolution of issues may be impossible when tens of thousands, hundreds of thousands, or even millions of issues need to be resolved.

SUMMARY

According to some possible implementations, a device may include one or more processors. The one or more processors may communicate with a server to obtain historical ticket data. The one or more processors may generate a data model, based on the historical ticket data. The one or more processors may communicate with a client device to obtain ticket data relating to an issue associated with a project. The one or more processors may classify, using the data model, the ticket data into a ticket type. The one or more processors may generate, using the data model and based on the ticket type, a set of recommended resolutions for resolving the issue associated with the project. The one or more processors may select, from the set of recommended resolutions, a particular resolution based on a set of selection criteria. The one or more processors may automatically perform one or more actions to implement the particular resolution to resolve the issue associated with the project.

According to some implementations, a non-transitory computer-readable medium may store instructions. The one or more instructions, when executed by one or more processors, may cause the one or more processors to receive, from a client device, ticket data for automated resolution. The ticket data may relate to an issue associated with a project. The one or more instructions, when executed by the one or more processors, may cause the one or more processors to determine a classification of the ticket data based on the ticket data and historical ticket data. The one or more instructions, when executed by the one or more processors, may cause the one or more processors to determine, by applying a machine learning technique, a particular resolution for the issue associated with the project, based on the classification of the ticket data. The one or more instructions, when executed by the one or more processors, may cause the one or more processors to generate a user interface associated with identifying the particular resolution for the issue associated with the project. The one or more instructions, when executed by the one or more processors, may cause the one or more processors to provide, for display via the client device, the user interface to identify the particular resolution for the issue associated with the project.

According to some possible implementations, a cloud platform may include one or more computing resources. The one or more computing resources may implement an automatic ticket classification module to classify ticket data into a ticket type. The ticket data may indicate an issue associated with a project. The automatic ticket classification module may be to classify the ticket data into the ticket type by comparing the ticket data and historical ticket data. The one or more computing resources may implement a machine learning module to analyze the ticket data and the historical ticket data associated with the ticket type. The one or more computing resources may implement a resolution identification module to identify a set of recommended resolutions based on analyzing the ticket data and the historical ticket data associated with the ticket type. The one or more computing resources may implement a resolution selection module to select a particular resolution, based on a set of selection criteria. The resolution selection module may include a resolution scoring submodule to rank the set of recommended resolutions or a resolution analysis submodule to determine whether one or more resolutions, associated with the set of recommended resolutions, satisfy a threshold, based on the resolution scoring submodule ranking the set of recommended resolutions. The one or more computing resources may implement a ticket resolution module to automatically implement the particular resolution to resolve the issue associated with the project.

DETAILED DESCRIPTION

A ticket management system may resolve issues indicated by ticket data. In some cases, resolving the issue with human intervention may be time and resource intensive, while also being prone to human error. This may result in a poor user experience, and may lead to excessive use of computing resources (e.g., from a person researching a ticket, providing a failed resolution, re-researching the ticket, providing another resolution, etc.). In other cases, resolving a ticket issue (with or without human intervention) may be difficult due to the ticket management system receiving a large volume of ticket data relating to a multitude of different issues. This may result in high computer processing and/or storage costs. For example, applying a ticket management system in a field that uses big data may require classifying and/or resolving issues for tens of thousands, hundreds of thousands, or even millions of tickets.

Implementations described herein may provide for a cloud platform to automatically classify ticket data, and to automatically identify and implement a resolution based on the classification. In this way, the cloud platform reduces utilization of computing resources based on automatically classifying the ticket data to reduce processing (e.g., classification of ticket data allows the cloud platform to process a subset of all ticket data, rather than processing all ticket data), reduces utilization of computing resources based on faster resolution of a ticket issue (e.g., less resources may be needed to resolve the ticket issue), reduces utilization of computing resources and/or network resources based on decreasing a period of time where a network device is using additional resources to complete a task (e.g. a network device may use less resources to complete a task when operating properly), or the like. By reducing the utilization of computing resources, the cloud platform improves overall system performance due to efficient and effective allocation of resources. Furthermore, faster resolution of a ticket issue improves user experience and minimizes time that a user may lose due to the ticket issue (e.g., a user may be unable to work if experiencing a technical error).

FIGS. 1A and 1Bare diagrams of an overview of an example implementation100described herein. As shown inFIG. 1A, example implementation100may include a cloud platform, a client device, and a ticket data archive. As shown by reference number105, the cloud platform may obtain, from the ticket data archive, historical ticket data. The ticket data archive may store historical ticket data for millions, tens of millions, hundreds of millions, or even billions of tickets. The information included in the historical ticket data may include information indicating an entity (e.g., a user or a business), information indicating an issue associated with a project, ticket resolution information (e.g., one or more ways in which the issue was resolved or attempted to be resolved, whether the issue was resolved manually or automatically, etc.), or the like. Additionally, or alternatively, the cloud platform may obtain historical ticket data by crawling the web. By obtaining a large volume of historical ticket data (e.g., big data), the cloud platform is able to generate a ticket data model that accurately and intelligently provides recommended resolutions to ticket issues, as described further herein.

As shown by reference number110, the cloud platform may generate a ticket data model based on obtaining the historical ticket data. For example, the cloud platform may process the historical ticket data to generate the ticket data model. In some cases, the ticket data model may analyze the historical ticket data to classify the historical ticket data into a ticket type. For example, if an issue associated with the historical ticket data relates to a user login issue, the ticket data model may classify the historical ticket data into a ticket type relating to user authentication issues. In this way, the historical ticket data may be separated into groups based on ticket types (e.g., based on similarities).

As shown by reference number115, the cloud platform may receive, from the client device, ticket data. For example, the cloud platform may cause a user interface associated with the client device to display information indicating ticket data. The ticket data may include one or more fields for describing an issue associated with a project. In this case, a user may interact with the user interface (e.g., to input information into the one or more fields), which may cause the client device to transmit the ticket data to the cloud platform. In some implementations, the cloud platform may automatically populate a portion of the one or more fields using predictive analytics.

As shown by reference number120, the cloud platform may process the ticket data based on the ticket data model. For example, the cloud platform may use the ticket data as input for the ticket data model, and the ticket data model may classify the ticket data by analyzing information associated with the ticket data (e.g., information in the one or more fields of the ticket data). The information included in the ticket data may include information indicating an entity (e.g., a user, a group of users, a business, etc.), information indicating an issue associated with the entity (e.g., an issue that a company or a user seeks to resolve, such as an issue relating to a project or an application, etc.), or the like. In some implementations, the cloud platform may use the ticket data model to analyze the information included in the ticket data by applying a natural language processing technique and/or a machine learning technique. For example, the cloud platform may parse text associated with the ticket data, and may analyze the parsed text to determine the ticket type of the ticket data. The cloud platform may use the data model to further analyze historical ticket data with the same or similar ticket type. In this way, the cloud platform identifies a subset of the historical ticket data that may be used to determine a particular resolution to the issue associated with the ticket data, thereby conserving processing resources relative to using all the historical ticket data to determine a particular resolution.

As shown inFIG. 1B, and by reference number125, the cloud platform may use the data model to generate a set of recommended resolutions for the ticket data, may use the data model to select a particular resolution, and may implement the particular resolution. The set of recommended resolutions may include automatically generating code, altering code, removing code, allocating computing resources, reallocating computing resources, assigning a developer to resolve an issue associated with a project, and/or the like, and may further include an estimated amount of time to resolve the issue. In some implementations, the cloud platform may use the ticket data model to process a subset of the historical ticket data (e.g., historical ticket data with the same or similar ticket type) and may generate a set of recommended resolutions based on processing the subset of the historical ticket data. For example, the cloud platform may apply a machine learning technique or a natural language processing technique to determine how issues associated with the subset of the historical ticket data were resolved. In some implementations, the cloud platform may automatically generate at least a portion of the set of recommended resolutions.

Additionally, the cloud platform may use the ticket data model to select a particular resolution, from the set of recommended resolutions. For example, the cloud platform may apply a machine learning or a natural language processing technique to determine the particular resolution to select. As an example, the cloud platform may apply a machine learning technique or a natural language processing technique to analyze the set of recommended resolutions, which may include one or more particular resolutions that involve assigning a developer to resolve the issue. In this case, the cloud platform may parse one or more developer schedules, one or more lists of developer skillsets, or the like, to determine a developer most able to resolve the issue. Additionally, or alternatively, the cloud platform may perform one or more actions to automatically implement the particular resolution. For example, the cloud platform may generate code, alter code, and/or remove code as part of a particular resolution, may allocate and/or reallocate computing resources as part of a particular resolution, may assign the ticket data to a developer as part of a particular resolution, and/or the like. Additionally, the cloud platform may provide, to the client device, information indicating an estimated amount of time to resolve the issue.

As shown by reference number130, the cloud platform may provide a ticket resolution status update to the client device. For example, the cloud platform may provide the ticket resolution status update after a threshold period of time is satisfied, after a threshold amount of the particular resolution is completed, or the like. Additionally, or alternatively, the cloud platform may monitor the project and/or receive feedback about the particular resolution to determine an effectiveness level of the resolution. As shown by reference number135, the cloud platform may update the ticket data archive based on the particular resolution. For example, the cloud platform may transmit information indicating the particular resolution, and the ticket data, for storage by the ticket data archive. This may allow subsequent requests for historical ticket data (e.g., to update the ticket data model) to access the ticket and the particular resolution associated with the ticket. Additionally, or alternatively, the cloud platform may update the ticket data archive based on monitoring the project and/or receiving feedback about the effectiveness of the resolution.

By using machine learning and natural language processing to classify ticket data and implement a resolution to an issue associated with a project, the cloud platform reduces utilization of computing resources (e.g., relative to using human intervention to resolve the ticket issue, relative to using conventional processing methods to resolve the ticket issue, etc.). Furthermore, by reducing the utilization of computing resources, and by reducing a time in which the cloud platform resolves an issue, the cloud platform is able to efficiently and effectively allocate resources in a manner that allows the cloud platform to process large amounts of ticket data (e.g., big data).

As indicated above,FIGS. 1A and 1Bare provided merely as an example. Other examples are possible and may differ from what was described with regard toFIGS. 1A and 1B. For example, whileFIGS. 1A and 1Bdescribe a data flow that processes ticket data associated with one ticket, implementations may exist that automatically classify and automatically resolve issues relating to tens of thousands, hundreds of thousands, or even millions of tickets.

FIGS. 2A and 2Bare diagrams of an example environment200in which systems and/or methods, described herein, may be implemented. As shown inFIG. 2A, environment200may include client device210, cloud platform220hosted within cloud computing environment230, network240, project data structure250, and/or ticket data archive260. Devices of environment200may interconnect via wired connections, wireless connections, and/or a combination of wired and wireless connections.

Client device210includes one or more devices capable of receiving, storing, processing, and/or providing information associated with ticket data. For example, client device210may include a communication and/or computing device, such as a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a laptop computer, a desktop computer, a tablet computer, a handheld computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, etc.), or a similar type of device. In some implementations, client device210may provide ticket data to cloud platform220. Additionally, or alternatively, client device210may receive ticket resolution status updates from cloud platform220.

Cloud platform220includes one or more devices capable of receiving, generating, storing, classifying, processing, and/or providing information associated with ticket data, as described elsewhere herein. For example, cloud platform220may include a cloud server or a group of cloud servers. In some implementations, cloud platform220may communicate with project data structure250to obtain project information (e.g., source code relating to a project). Additionally, or alternatively, cloud platform220may communicate with ticket data archive260to obtain historical ticket data, to update ticket data archive260with additional historical ticket data, to provide information indicating an effectiveness of a resolution associated with ticket data, and/or the like.

In some implementations, as shown, cloud platform220may be hosted in cloud computing environment230. Notably, while implementations described herein describe cloud platform220as being hosted in cloud computing environment230, in some implementations, cloud platform220may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based. Although implementations are described herein as classifying and resolving issues relating to a project development environment, cloud platform220may be utilized to classify and resolve issues relating to other environments, such as a corporate environment, a governmental environment, an educational environment, or the like.

Cloud computing environment230includes an environment that hosts cloud platform220. Cloud computing environment230may provide computation, software, data access, storage, and/or other services that do not require end-user knowledge of a physical location and configuration of system(s) and/or device(s) that host cloud platform220. As shown, cloud computing environment230may include a group of computing resources215(referred to collectively as “computing resources215” and individually as “computing resource215”).

In some implementations, cloud computing environment230may include other cloud computing resources, such as R based statistical computing resources (e.g., an R based algorithm to compute a ticket inflow rate of tickets relating to project issues, and perform allocation of computing resources based on ticket inflow rate), Microsoft Azure based computing resources (e.g., an Azure based algorithm to determine service level agreement compliance rates—failing to satisfy a threshold may indicate that a project has an issue, and may cause a ticket to be automatically generated), International Business Machines (IBM) Watson based computing resources (e.g., to provide user interface functionalities), or the like. In some implementations, one or more cloud computing resources may be collocated in cloud computing environment230. Additionally, or alternatively, one or more cloud computing resources may be hosted in another cloud computing environment that may communicate with cloud computing environment230. Integrating multiple tools designed for different project aspects (e.g., R for statistical analysis, Azure for big data computing of millions of data points relating to a project, Watson for natural language interfacing with a user), cloud computing environment230may enable cloud platform220to effectively and automatically manage ticket resolution for a project, thereby improving accuracy of coding, reduction of coding errors, or the like. Such improvements may result in reduction of computing resources expended to complete the project, computing resources utilized when executing software managed or designed during a project, or the like.

Computing resource215includes one or more personal computers, workstation computers, server devices, or another type of computation and/or communication device. In some implementations, computing resource215may host cloud platform220. The cloud resources may include compute instances executing in computing resource215, storage devices provided in computing resource215, data transfer devices provided by computing resource215, etc. In some implementations, computing resource215may communicate with other computing resources215via wired connections, wireless connections, or a combination of wired and wireless connections.

As further shown inFIG. 2A, computing resource215may include a group of cloud resources, such as one or more applications (“APPs”)215-1, one or more virtual machines (“VMs”)215-2, virtualized storage (“VSs”)215-3, one or more hypervisors (“HYPs”)215-4, or the like.

Application215-1includes one or more software applications that may be provided to or accessed by client device210. Application215-1may eliminate a need to install and execute the software applications on client device210. For example, application215-1may include software associated with cloud platform220and/or any other software capable of being provided via cloud computing environment230. In some implementations, one application215-1may transmit/receive information to/from one or more other applications215-1, via virtual machine215-2.

Project data structure250includes one or more devices capable of storing and/or providing information associated with a project. For example, project data structure250may include a data structure storing a set of project metrics regarding a project, requirements documents describing the project, project rules relating to project development, and/or the like. In some implementations, project data structure250may include a data lake type of data structure to store millions or billions of data points relating to ticket data, thereby enabling big data predictions that would be infeasible with other techniques using other types of data structures. Similarly, project data structure250may utilize a data summary type of data structure, a data cube type of data structure, or the like, to enable analysis of millions or billions of points of structured or unstructured data from log files, natural language processing of social media resources, or the like. Additionally, or alternatively, project data structure250may interact with external data structures to obtain additional information associated with ticket data.

Ticket data archive260includes one or more devices capable of storing and/or providing information associated with ticket data. For example, ticket data archive260may include a data structure storing historical ticket data, data indicating resolutions associated with the historical ticket data, data indicating effectiveness levels of the resolutions, and/or the like.

FIG. 2Bis a diagram of example components of cloud platform220. As shown inFIG. 2B, cloud platform220may include an automatic ticket classification module270, a machine learning module272, a resolution identification module274, a resolution selection module276, a backup resolution recommendation module278, a ticket data synchronization module280, a ticket resolution module282, an output module284, a ticket allocation module286, a shift assignment module288, and/or a trend determination module290. In some implementations, one or more modules may be implemented as part of a ticket data model. Portions of cloud platform220may interconnect via wired connections, wireless connections, and/or a combination of wired and wireless connections.

Automatic ticket classification module270operates on one or more computing resources and is associated with automatically classifying ticket data. For example, automatic ticket classification module270may automatically classify ticket data received from client device210by comparing the ticket data and historical ticket data stored by ticket data archive260, and by classifying the ticket data into a ticket type based on the comparison. In some implementations, automatic ticket classification module270may apply a text similarity technique, a natural language processing technique, a sentiment analysis technique, or the like, to automatically classify the ticket data. In some cases, automatic ticket classification module270may obtain a subset of the historical ticket data, and may use the subset of the historical ticket data to automatically classify the ticket data received from client device210.

Machine learning module272operates on one or more computing resources and is associated with analyzing ticket data. For example, machine learning module272may interact with other modules to analyze ticket data. In some implementations, machine learning module272may apply text similarity techniques and/or text classification techniques to analyze ticket data. For example, machine learning module272may analyze ticket data using a tokenization technique, a lexical analysis technique, an occurrence counting technique, a technique to reduce or eliminate stop words (e.g., a word that occurs frequently in text and may waste processing resources to analyze), a stemming technique (e.g., reducing an inflected word to the word stem to conserve processing resources), a lemmatization technique, additive smoothing technique, and/or the like. In some implementations, machine learning module272may analyze ticket data by comparing the ticket data and historical ticket data.

Resolution identification module274operates on one or more computing resources and is associated with identifying and proposing a set of recommended resolutions to an issue indicated by ticket data. For example, resolution identification module274may identify a set of recommended resolutions to an issue indicated by ticket data received from client device210, and resolution identification module274may propose the identified set of recommended resolutions (e.g., by providing a user interface associated with client device210). In some implementations, resolution identification module274may automatically identify and propose a set of recommended resolutions to an issue indicated by the ticket data. Additionally, or alternatively, resolution identification module274may automatically propose a set of recommended resolutions to the issue indicated by the ticket data by applying a machine learning technique to identify a set of recommended resolutions. For example, resolution identification module274may identify historical ticket data with the same classification as the ticket data received by client device210and may analyze the historical ticket data to determine the set of recommended resolutions.

Resolution selection module276operates on one or more computing resources and is associated with selecting a particular resolution, based on a set of selection criteria. For example, resolution selection module276may use a resolution scoring submodule to rank resolutions included in the set of recommended resolutions, and may utilize a resolution analysis submodule to determine whether one or more resolutions associated with the set of recommended resolutions satisfy a threshold. In some implementations, resolution selection module276may interact with output module284to provide a user interface for display via client device210.

Backup resolution recommendation module278operates on one or more computing resources and is associated with analyzing ticket data and historical ticket data. For example, if automatic ticket classification module270is unable to classify ticket data, then backup resolution recommendation module278may use an analysis submodule to analyze a portion of the historical ticket data that is different than the historical ticket data associated with the ticket type. In this case, backup resolution recommendation module278may use a selection submodule to select another resolution that is different than the particular resolution.

Ticket data synchronization module280operates on one or more computing resources and is associated with training machine learning module272. For example, ticket data synchronization module280may obtain historical ticket data stored by one or more data structures associated with one or more external ticket data systems, and ticket data synchronization module280may use the historical ticket data to train machine learning module272. In some implementations, ticket data synchronization module280may communicate with one or more servers to obtain a large quantity of historical ticket data (e.g., big data), and ticket data synchronization module280may synchronize the large quantity of historical ticket data to train machine learning module272. In some cases, ticket data synchronization module280may modify the historical ticket data to ensure that historical ticket data is stored using the same data type (e.g., to allow for efficient big data processing).

Ticket resolution module282operates on one or more computing resources and is associated with implementing a resolution to an issue relating to a project. For example, ticket resolution module282may implement the resolution selected by resolution selection module276by generating code, altering code, removing code, allocating resources, reallocating resources, assigning a developer to the issue, or the like. In some implementations, ticket resolution module282may automatically implement the resolution. In other implementations, ticket resolution module282may obtain approval from a user associated with client device210, prior to implementing the resolution. In some implementations, ticket resolution module282may include information associated with results of identifying a resolution to an issue in ticket data that is to be provided to a developer for manual resolution.

Output module284operates on one or more computing resources and is associated with providing a user interface. For example, output module284may provide a particular resolution via a user interface displayed on client device210. In some implementations, the user interface may display a set of recommended resolutions, and a user may interact with the user interface to select a particular resolution, of the set of recommended resolutions. Additionally, or alternatively, output module284may provide a user interface that displays status updates on a particular resolution that is being implemented by ticket resolution module282.

Ticket allocation module286operates on one or more computing resources and is associated with allocating tickets for resolution by a set of developers. For example, ticket allocation module286may select a developer to whom to assign a ticket for resolution, such as when cloud platform220is not able to automatically resolve the ticket. In some implementations, ticket allocation module286may allocate a ticket based on a set of parameters, such as a ticket priority, a ticket age, a developer availability, a set of skills of a developer, or the like. In some implementations, ticket allocation module286may group a set of similar tickets for assignment to a single developer, such as based on classifying the set of tickets as pertaining to a similar issue, based on a natural language comparison of the tickets, or the like. In some implementations, ticket allocation module286may reassign a ticket to a particular developer. For example, based on a ticket being resubmitted (e.g., after an error recurs), ticket allocation module286may assign the ticket to the particular developer to reduce an effort associated with resolving the ticket relative to assigning the ticket to another developer who had not previously worked on the ticket. In some implementations, ticket allocation module286may perform an intake procedure on a ticket, such as by rejecting a received ticket (e.g., based on determining that the ticket is incomplete, has already been resolved, etc.), providing information associated with the received ticket to another module for classification and/or resolution, etc.

Shift assignment module288operates on one or more computing resources and is associated with assigning work shifts to a set of developers. For example, shift assignment module288may determine a set of shifts for a set of developers. In some implementations, shift assignment module288may determine the set of shifts based on a set of parameters, such as based on past work history (e.g., which shifts developers previously worked), shift preferences, holidays, seniority, skills, predicted ticket inflow, or the like. In some implementations, shift assignment module288may rotate shifts, such as by rotating which developers are assigned to different holidays, which developers are assigned to day shifts after night shifts, etc. In this way, shift assignment module288ensures that there are developers to resolve tickets at period of time when a relatively large inflow of tickets is expected (e.g., after a new release, on a high usage day, etc.), and ensures that excessive developers are not assigned at period of time when a relatively small inflow of tickets is expected (e.g., on a holiday, late at night, etc.).

Trend determination module290operates on one or more computing resources and is associated with determining one or more trends relating to ticket inflow, issues relating to tickets, or the like. For example, trend determination module290may monitor ticket inflow to determine trends relating to quantities of tickets to perform shift assignment, types of tickets to ensure that developers are trained in related skills, or the like. In some implementations, trend determination module290may utilize machine learning based categorizations of tickets to determine trends relating to quantities of tickets in each category of ticket, resolution of tickets in each category of ticket, resolution of tickets by each developer, or the like. In some implementations, trend determination module290may identify a correlation relating to one or more data points, and may proactively generate a ticket for resolution. In this case, trend determination module290may provide the ticket (e.g., to ticket allocation module286to allocate the ticket or ticket classification module270to initiate automatic resolution of the ticket).

The number and arrangement of devices and networks shown inFIGS. 2A and 2Bare provided as an example. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown inFIGS. 2A and 2B. Furthermore, two or more devices shown inFIGS. 2A and 2Bmay be implemented within a single device, or a single device shown inFIGS. 2A and 2Bmay be implemented as multiple, distributed devices. For example, although modules270to284and modules286to290are shown as being operated by a single cloud platform220, modules270to284may be operated by a first cloud platform220(e.g., a ticket resolution platform) and modules286to290may be operated by a second cloud platform220(e.g., a developer management platform) that may communicate via an interface, such as an application programming interface (API), a secure interface, or the like. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment200may perform one or more functions described as being performed by another set of devices of environment200.

FIG. 3is a diagram of example components of a device300. Device300may correspond to client device210, cloud platform220, project data structure250, and/or ticket data archive260. In some implementations, client device210, cloud platform220, project data structure250, and/or ticket data archive260may include one or more devices300and/or one or more components of device300. As shown inFIG. 3, device300may include a bus310, a processor320, a memory330, a storage component340, an input component350, an output component360, and a communication interface370.

FIG. 4is a flow chart of an example process400for applying machine learning and/or natural language processing techniques to automatically resolve ticket issues. In some implementations, one or more process blocks ofFIG. 4may be performed by cloud platform220. In some implementations, one or more process blocks ofFIG. 4may be performed by another device or a group of devices separate from or including cloud platform220, such as client device210, project data structure250, and/or ticket data archive260.

As shown inFIG. 4, process400may include receiving, for automated resolution, ticket data that indicates an issue associated with a project (block410). For example, cloud platform220may receive, from client device210, ticket data that indicates an issue associated with a project. The ticket data, once received by cloud platform220, may represent a request to resolve the issue. In some implementations, the ticket data may include information associated with identifying an entity that is requesting to resolve the issue (e.g., a user, a group of users, a business, etc.). Additionally, the ticket data may include information that indicates the issue associated with the project. For example, the ticket data may include quantitative metrics relating to the issue (e.g., an issue relating to an amount of resources available, an issue relating to an amount of processing delay, etc.), qualitative metrics relating to the issue (e.g., a quality control issue, an issue relating to a hardware device degrading in quality, etc.), and/or the like.

In some implementations, cloud platform220may receive the ticket data based on providing a user interface to client device210. For example, cloud platform220may receive the ticket data by providing the user interface for display on client device210and detecting a user interaction with the user interface to identify the ticket data. Additionally, or alternatively, cloud platform220may automatically populate at least a portion of the ticket data by using predictive analytics. For example, cloud platform220may apply a natural language processing technique to automatically populate the ticket data based on prior entity preferences. As an example, if an entity (e.g., a particular user) interacts with the user interface of client device210, and historical ticket data that is associated with the entity relates to a common industry or field (e.g., ticket inquiries associated with the entity may be in a particular software development field), then cloud platform220may automatically populate the portion of the ticket data that applies to the common industry or field (e.g., the particular software development field). By using predictive analytics to automatically populate at least a portion of the ticket data, cloud platform220conserves network resources by reducing user input error in creating tickets (e.g., a typographical error by a user may cause cloud platform220to spend computing resources on attempting to resolve an issue that does not need to be resolved).

In some implementations, cloud platform220may receive the ticket data based on processing a document (e.g., a design document, a requirements document, etc.). In this case, cloud platform220may apply a natural language processing technique, a machine learning technique, or the like, to process the document. For example, cloud platform220may apply a natural language processing technique to analyze the ticket data to determine that the ticket data is associated with an incident, a work error, a technical issue, or the like. Additionally, or alternatively, cloud platform220may apply machine learning to identify similar projects based on identified similarities in relevant terms, patterns, or the like. In some implementations, cloud platform220may utilize a natural language technique, such as a virtual agent, to communicate with a user using natural language to obtain ticket data, such as to query the user regarding an issue. In some implementations, cloud platform220may monitor one or more channels for natural language communication, such as an instant messaging channel, a social media channel, a self-service communication channel, or the like.

In some implementations, cloud platform220may, independent of receiving ticket data, generate ticket data by using predictive analytics. For example, assume cloud platform220obtains ticket data (e.g., from project data structure250, from ticket data archive260, from a third party, etc.) and generates a data model relating to the issues associated with the ticket data. In this case, cloud platform220may apply a machine learning technique or an artificial intelligence technique to analyze the data model to predict the occurrence of another issue (i.e. an issue that has yet to be reported). Here, cloud platform220may generate additional ticket data to resolve the issue (the additional ticket data being different than the ticket data and/or the historical ticket data).

As an example, assume cloud platform220performs ticket resolution for a parent server and ten child servers. Further assume that over a short time period (e.g., an hour), eight of the ten child servers transmit ticket data to cloud platform220regarding the same issue. In this case, cloud platform220may use predictive analytics to predict that the remaining two child servers may have the same issue. Cloud platform220may generate ticket data for the remaining two child servers, and may generate ticket data for the parent server (e.g., if all ten child servers have the same technical issue, the issue may relate to an issue associated with the parent server). By using predictive analytics to detect and resolve ticket issues prior to the issue being reported, cloud platform220conserves processing resources and improves overall network efficiency by improving a speed at which the issue may be resolved.

In some implementations, prior to receiving ticket data, cloud platform220may generate a ticket data model relating to ticket classification, and cloud platform220may use the ticket data model to classify the ticket data, identify a set of recommended resolutions, and identify a particular resolution, of the set of recommended resolutions, as discussed further herein. For example, cloud platform220may communicate with a server (e.g., ticket data archive260, a third party server, etc.) to obtain historical ticket data, and cloud platform220may process the historical ticket data to generate a data model relating to ticket classification. The historical ticket data may include information indicating an entity (e.g., a user, a group of users, a business, etc.), information indicating an issue associated with the entity (e.g., an issue that a company or a user seeks to resolve, such as an issue relating to a project or an application, etc.), ticket resolution information that identifies one or more ways in which the issue associated with the project was resolved (which may include failed resolution attempts), information indicating a time in which the issue was resolved, whether an issue was resolved manually or automatically, information indicating an amount of resources used to resolve the issue (e.g., computing resources, human resources, such as time spent by a technician or a developer, etc.), and/or the like. In some cases, cloud platform220may generate the ticket data model by separating historical ticket data into groups based on similarities (e.g., different similarities may be associated with different ticket types). In some implementations, a different data model may be generated for each different ticket type.

In some implementations, cloud platform220may obtain historical ticket data based on crawling the web. Additionally, or alternatively, cloud platform220may obtain historical ticket data based on using a set of application programming interfaces (APIs). By generating a ticket data model, cloud platform220is able to process and analyze a large volume of historical ticket data (e.g., big data) in a manner that conserves processing resources relative to processing and analyzing the historical ticket data without use of a ticket data model.

As further shown inFIG. 4, process400may include determining a classification of the ticket data (block420). For example, cloud platform220may use a ticket data model to classify the ticket data into a ticket type. The ticket type may be based on information included in the ticket data. For example, the ticket type may be based on information indicating an entity (e.g., a user, a group of users, a business, etc.), information indicating an issue associated with a project (e.g., an issue that a company or a user seeks to resolve, an issue relating to a project or an application, etc.), or the like. Cloud platform220may use the ticket type to determine a set of recommended resolutions for the ticket data, as discussed further herein.

In some implementations, cloud platform220may use the ticket data model to apply a natural language processing technique to classify the ticket data into a ticket type. For example, cloud platform220may apply a natural language processing technique to parse information included in the ticket data, and may compare the information included in the ticket data and information included in the ticket data model (e.g., the information included in the historical ticket data). In this case, cloud platform220may, based on the comparison, automatically classify the ticket data into the ticket type.

In some implementations, cloud platform220may utilize a cognitive computing engine to classify the ticket data into a ticket type. For example, cloud platform220may utilize a cognitive computing engine to apply a machine learning technique, a natural language processing technique, and/or another big data technique, to ticket data and/or historical ticket data. In this case, cloud platform220may utilize the cognitive computing engine to analyze the ticket data. For example, cloud platform220may analyze data regarding thousands, or even millions of instances of historical ticket data to train the cognitive computing engine, and may utilize the cognitive computing engine to analyze the ticket data after training the cognitive computing engine. In this way, a likelihood of resolving an issue associated with a project is improved relative to attempting to resolve the issue without use of a cognitive computing engine.

In some implementations, cloud platform220may receive input, via a user interface, associated with classifying ticket data, and may utilize the input to train a classification model. In this way, cloud platform220may reduce an amount of time to train the classification model and/or improving an accuracy of the classification model relative to performing classification without user input. Additionally, or alternatively, cloud platform220may provide an initial classification for display via a user interface, and may receive information associated with modifying or altering the initial classification. For example, cloud platform220may receive a ticket identifying an issue, classify the ticket using a machine learning system and based on ticket data (e.g., historical ticket data), provide the classification of the ticket for display via a user interface, detect a user interaction associated with specifying whether to use the classification or another, user-determined classification, may use the classification or the other, user-determined classification, and may store information associated with whether the user interaction indicated to user the classification or the other, user determined-classification. In this way, cloud platform220may improve an accuracy of the classification, and may reduce an amount of time to train a classification model. Moreover, based on providing the initial classification, cloud platform220reduces an amount of computing resources and/or network traffic relative to a user specifying every classification without assistance from cloud platform220.

By classifying the ticket data into a ticket type, cloud platform220may analyze a subset of the historical ticket data to resolve the issue (e.g., a subset with a matching ticket type), thereby reducing utilization of computing resources relative to resolving the issue by analyzing all historical ticket data.

As further shown inFIG. 4, process400may include determining a set of recommended resolutions, for the issue associated with the project, based on the classification of the ticket data (block430). For example, cloud platform220may use the ticket data model to determine a set of recommended resolutions for the ticket data. The recommended resolutions may indicate one or more actions for resolving the issue, and may include automatically generating code, altering code, removing code, allocating computing resources, reallocating computing resources, assigning a developer to resolve an issue associated with a project, and/or the like.

In some implementations, cloud platform220may determine a set of recommended resolutions based on a subset of historical ticket data. For example, assume cloud platform220uses the ticket data model, the cognitive computing engine, or the like, to determine the ticket type of the ticket data. In this case, cloud platform220may process the subset of historical ticket data that is associated with the ticket type to determine the set of recommended resolutions. For example, cloud platform220may process the subset of historical ticket data to determine the particular resolutions associated with the subset of historical ticket data, and cloud platform220may analyze the particular resolutions associated with the subset of historical ticket data to determine the set of recommended resolutions. By determining the set of recommended resolutions based on the subset of historical ticket data, cloud platform220conserves processing resources relative to determining recommended resolutions by processing all historical ticket data.

In some implementations, cloud platform220may determine a set of recommended resolutions based on receiving input regarding a recommended resolution. For example, cloud platform220may receive input identifying a recommended resolution via a user interface, and may store the information identifying the recommended resolution for utilization in generating subsequent recommended resolutions. In this case, a user may use client device210to generate an automated solution to a particular issue, cloud platform220may receive and store information identifying the automated solution, cloud platform220may receive a ticket and classify the ticket (e.g., based on machine learning) as pertaining to the particular issue, cloud platform220may obtain the automated solution from a data structure, and cloud platform220may implement the automated solution. By utilizing human input to assist in training a machine learning model to recommend resolutions and/or providing recommended resolutions for storage by cloud platform220, cloud platform220may train the machine learning model and be utilized to resolve issues in a reduced amount of time and with improved accuracy relative to training the machine learning model to generate recommended resolutions without any human input.

In some implementations, cloud platform220may determine a set of recommended resolutions based on a portion of historical data that is different than the subset of historical ticket data. For example, assume cloud platform220uses the data model, the cognitive computing engine, or the like, but is unable to determine the ticket type of the ticket data. In this case, cloud platform220may obtain and process a portion of the historical ticket data that is different than the subset of historical ticket data (e.g., historical ticket data of a similar ticket type, all historical ticket data, etc.) to determine the set of recommended resolutions.

In some implementations, cloud platform220may determine a set of recommended resolutions based on a set of selection criteria associated with the data model. For example, cloud platform220may analyze historical ticket data (e.g., all historical ticket data, a subset of the historical ticket data, etc.) to obtain one or more values that indicate an effectiveness level of a resolution, for one or more issues associated with the historical ticket data (or the subset of the historical ticket data), and the one or more values that indicate an effectiveness level of a resolution may correspond to the one or more issues associated with the historical ticket data. In this case, cloud platform220may rank the one or more issues, based on the one or more corresponding values indicating an effectiveness level of a resolution, and may use the rankings to determine the set of recommended resolutions.

Additionally, or alternatively, cloud platform220may use the ticket data model to rank the set of recommended resolutions based on an amount of resources required to resolve the issue. For example, cloud platform220may determine a set of values indicating an estimated amount of resources needed to resolve the issue. In this case, a value, in the set of values, may correspond to a recommended resolution, in the set of recommended resolutions. Cloud platform220may rank the set of recommended resolutions based on determining the corresponding set of values indicating the estimated amount of resources needed to resolve the issue. In some cases, cloud platform220may select a particular resolution that corresponds to a value associated with a lowest estimated amount of resources needed to resolve the issue. By ranking resolutions based on an amount of resources (or an estimated amount of resources) needed to resolve the issue, cloud platform220is able to conserve processing resources and/or network resources by selecting the most resource-efficient resolution.

In some implementations, cloud platform220may use the ticket data model to select a particular resolution, from the set of recommended resolutions. For example, cloud platform220may analyze the ticket data and the historical ticket data to determine the set of recommended resolutions for the issue, and may rank the set of recommended resolutions. In this case, cloud platform220may select the particular resolution, from the set of recommended resolutions, based on ranking the set of recommended resolutions.

In some implementations, cloud platform220may use the ticket data model to select a particular resolution that satisfies a threshold (or that satisfies multiple thresholds). The threshold(s) may indicate an effectiveness level of resolving an issue, an amount of resources to resolve an issue, an amount of time to resolve an issue, a percentage chance of resolving the issue, and/or the like. In some cases, such as when multiple resolutions in the set of recommended resolutions satisfy the threshold, cloud platform220may select the particular resolution that satisfies the threshold by the largest margin. For example, if multiple resolutions indicate an 80%+ effectiveness level of resolving an issue, cloud platform220may select the particular resolution with the highest effectiveness level of resolving the issue.

Additionally, or alternatively, cloud platform220may use the ticket data model to select a particular resolution by applying a natural language processing technique. For example, cloud platform220may use a natural language processing technique to select a particular resolution that has the highest effectiveness level of resolving the issue and/or that uses the least amount of resources. As an example, assume a particular resolution involves (or one or more resolutions involve) assigning a developer to resolve an issue associated with the project. In this case, cloud platform220may apply a natural language processing technique to parse data relating to potential developers (e.g., a developer schedule, a list of developer skills, etc.). This may allow cloud platform220to select the particular resolution that has the highest effectiveness level of resolving the issue and/or that uses the least amount of resources, which conserves processing resources.

As further shown inFIG. 4, process400may include implementing a particular resolution, for the issue associated with the project, based on determining the set of recommended resolutions (block440). For example, cloud platform220may implement a particular resolution by performing one or more actions to resolve the issue associated with the project. In some implementations, cloud platform220may automatically implement the particular resolution. For example, cloud platform220may automatically implement the particular resolution for a project that is internal to cloud platform220, may automatically implement the particular resolution for a project that is external to cloud platform220(e.g., by accessing one or more APIs to gain permission to implement the particular resolution to the project that is external to cloud platform220), may automatically provide instructions to another device to implement the particular resolution, or the like.

In some implementations, cloud platform220may obtain approval to implement the particular resolution. For example, cloud platform220may provide the particular resolution for display via a user interface, and may detect a user interface interaction associated with approving the particular resolution. Based on detecting the user interface interaction, cloud platform220may implement the particular resolution. In this way, cloud platform220reduces a likelihood of inadvertent harm to one or more critical systems resulting from implementing the resolution without oversight.

In some implementations, cloud platform220may automatically implement the particular resolution for a project that is internal to cloud platform220. For example, if an issue reported is internal to cloud platform220, cloud platform may automatically implement the resolution (e.g., generate additional code, alter or remove existing code, allocate and/or reallocate computing resources, assign a developer to resolve the issue, etc.).

In some implementations, cloud platform220may automatically implement the particular resolution to a project that is external to cloud platform220. For example, cloud platform220may use one or more APIs to gain permission to implement the particular resolution to the project. In some implementations, cloud platform220may be required to answer one or more security questions prior to gaining permission to access the project. Additionally, or alternatively, cloud platform220may request confirmation, from an entity associated with the project, to access the project via the one or more APIs. By automatically implementing the particular resolution, cloud platform220achieves faster issue resolution, thereby conserving network resources by decreasing a period of time where a network device is using additional resources to complete a task (e.g., a network device may use additional resources to complete a task when malfunctioning).

In some implementations, cloud platform220may automatically communicate with another device to implement the particular resolution to a project. For example, cloud platform220may communicate with another device (e.g., client device210, project data structure250, ticket data archive260, another device external to cloud platform220, etc.). As an example, cloud platform220may communicate with project data structure250to resolve an issue that requires altering code. In this case, project data structure250may store code relating to the project, and cloud platform220may access the code to begin to implement the particular resolution. As another example, cloud platform220may communicate with another device (e.g., client device210) to assign a developer to resolve an issue. In this case, client device210may store information such as a schedule of a developer, and cloud platform220may access the schedule to add a task or schedule a meeting relating to resolving the issue. For example, cloud platform220may determine a set of shifts for a set of developers, identify a developer that is active for an upcoming shift and has availability and/or skills to resolve a ticket (e.g., skills relating to a classification of the ticket), and may communicate with client device210to automatically assign the ticket associated with the issue to the developer. Similarly, based on the developer having previously resolved a similar issue or a similar ticket (e.g., the same ticket that has been submitted multiple times for a recurring issue), cloud platform220may reassign the issue to the developer.

In some implementations, cloud platform220may automatically communicate with another device to allow the other device to implement the particular resolution to the project. For example, cloud platform220may automatically transmit information that indicates the particular resolution to another device (e.g., client device210, a server associated with client device210, etc.), and the other device may implement the particular resolution by applying the particular resolution to code associated with the issue.

In some implementations, cloud platform220may implement a particular resolution that includes modifying code and/or computing resources. For example, cloud platform220may generate code, alter code, remove code, allocate computing resources, and/or reallocate computing resources to resolve the issue. In some cases, cloud platform220may communicate with project data structure250to generate code, alter code, remove code, allocate computing resources, and/or reallocate computing resources. In this case, project data structure250may store information such as code for a project (or provide a sandbox environment for testing code associated with the project), and cloud platform220may implement the particular solution based on accessing the code.

In some implementations, cloud platform220cloud platform220may implement a particular resolution by assigning a developer to resolve the issue. For example, assume cloud platform220generates data that identifies a set of developers capable of resolving the issue, and applies a natural language processing technique to the data to select data that identifies a developer, from the set of developers, to resolve the issue. In this case, cloud platform220may assign the developer to resolve the issue. Additionally, or alternatively, based on failing to classify a particular issue, cloud platform220may perform a determination of a group of other related incidents (e.g., one or more other tickets determined to be similar based on a natural language processing analysis), and may assign the group of other related issues and the particular issue to a particular developer to resolve or to further classify for resolution. In this way, cloud platform220may ensure that tickets that cloud platform220is unable to automatically resolve are resolved, while reducing effort relative to manual resolution of each ticket.

In some implementations, cloud platform220may automatically determine an effectiveness level of implementing the resolution. For example, cloud platform220may automatically determine an effectiveness level of implementing the resolution by testing the resolution in a sandbox environment or by monitoring the project after completion of the particular resolution. As an example, cloud platform220may implement a test script to mirror functionality of the project in a sandbox to determine whether the particular resolution resolved the issue. Additionally, or alternatively, cloud platform220may determine an effectiveness level of implementing the resolution by receiving feedback. For example, cloud platform220may receive feedback from client device210, and the feedback may indicate an effectiveness level of the resolution. In some cases, cloud platform220may use a data structure (e.g., ticket data archive260) to store the information that indicates the effectiveness level of implementing the resolution.

In some implementations, cloud platform220may implement multiple recommendations. In some cases, cloud platform220may iteratively implement a series of recommendations until an issue is successfully resolved. In other cases, cloud platform220may implement multiple recommendations at the same time, which may provide for faster issue resolution relative to implementing one resolution at a time.

Additionally, or alternatively, cloud platform220may generate a user interface associated with identifying the particular resolution for the issue associated with the project. For example, cloud platform220may provide, for display via client device210, a user interface to identify the particular resolution for the issue associated with the project. In some cases, cloud platform220may provide, for display via the user interface associated with client device210, information indicating that the particular resolution was automatically implemented. In other cases, cloud platform220may provide, for display via the user interface associated with client device210, information indicating a set of recommended resolutions. In this case, cloud platform may receive, via an interaction associated with the user interface, a request to implement a particular resolution, of the set of recommended resolutions. Based on receiving the request, cloud platform220may implement the particular resolution for the issue associated with the project.

Additionally, or alternatively, cloud platform220may determine that the particular resolution did not succeed, and may implement another resolution to the issue. For example, cloud platform220may determine that the particular resolution did not succeed by testing an implementation of the particular resolution in a sandbox environment and receiving an indication that the recommendation did not succeed, by implementing the particular resolution on a client device (e.g., client device210, a server associated with client device210, etc.) and receiving an indication that the particular recommendation did not succeed, by receiving an update from client device210that the particular recommendation did not succeed, or the like.

In some implementations, the particular resolution that did not succeed may be associated with cloud platform220analyzing a subset of the historical ticket data, and cloud platform220selecting and implementing the particular resolution based on the subset of the historical ticket data. In this case, cloud platform220may implement another resolution by processing the remainder of the historical ticket data (or at least a portion of the historical ticket data that is different than the subset of the historical ticket data). Here, cloud platform220may generate another set of recommended resolutions, and may select and implement the other resolution in a manner indicated above.

By automatically implementing a particular resolution to the issue, based on consideration of the effectiveness levels of resolutions included in the set of recommended resolutions, cloud platform220intelligently conserves computing resources and/or network resources by achieving faster issue resolution times relative to ticket resolution without automation and without consideration of the effectiveness levels of a set of recommended resolutions.

As further shown inFIG. 4, process400may include providing information identifying the particular resolution to the issue associated with the project (block450). For example, cloud platform220may automatically provide information identifying the particular resolution of the issue associated with the project (ticket resolution information) to client device210and/or ticket data archive260. The ticket resolution information may include a status update of a resolution, an estimated time until the issue is resolved, an effectiveness level of the resolution, or the like.

In some implementations, cloud platform220may automatically provide ticket resolution information to client device210. For example, cloud platform220may automatically provide ticket resolution information after a threshold period of time is satisfied, after a threshold amount of the resolution is completed, or the like. By automatically providing ticket resolution information to client device210, cloud platform220improves customer satisfaction by providing regular feedback on when the resolution is to be completed.

Additionally, or alternatively, cloud platform220may automatically update ticket data archive260. For example, cloud platform220may receive information indicating an effectiveness level of the resolution, and cloud platform220may transmit the information to ticket data archive260. In this way, ticket data archive260maintains updated information regarding the effectiveness levels of resolutions, and cloud platform220may access this information to make subsequent determinations regarding a resolution to implement.

In this way, cloud platform220reduces utilization of computing resources based on automatically classifying the ticket data to reduce processing, reduces utilization of computing resources based on faster resolution of a ticket issue, reduces utilization of computing resources and/or network resources based on decreasing a period of time where a network device is using additional resources to complete a task, or the like. Furthermore, faster resolution of a ticket issue improves user experience and minimizes time that a user may lose due to the ticket issue.