Method and system for managing robotic process automation

By obtaining the operating measurement data of the RPA robot and determining the optimization action based on the strategy, the problem of high RPA maintenance costs and low availability, realizing the self -healing and reliability improvement of the RPA robot.

CN119343687APending Publication Date: 2025-01-21BLUE PRISM LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202380042777.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-06
Filing Date
2023-06-06
Publication Date
2025-01-21

AI Technical Summary

Technical Problem

The existing technology has high operating costs and potentially significant disruptions in maintaining RPA-driven business processes, resulting in reduced return on investment for RPA or intelligent automation solutions.

Method used

Achieve self-healing and reduce maintenance needs of RPA robots by obtaining data associated with the RPA robot's operational metrics during automated workflow execution and determining optimization actions based on policy.

Benefits of technology

It reduces the demand for RPA robotics maintenance, improves the reliability and availability of RPA -drive software robots, thereby reducing operating costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119343687A_ABST
    Figure CN119343687A_ABST
Patent Text Reader

Abstract

A method (100) for managing a robotic process automation (RPA) robot is provided. The method comprises acquiring (S110) data associated with operational metrics of the RPA robot during execution of the automated workflow, and determining (S120) an optimized action based on the policy and the acquired data associated with operational metrics of the RPA robot.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to methods and systems for managing Robotic Process Automation (RPA) robots. Background Art

[0002] Robotic process automation (RPA) is an emerging form of business process automation technology that utilizes software robots or artificial intelligence (AI) workers. In traditional workflow automation tools, software developers use internal application program interfaces to produce action lists to automate tasks. In contrast, RPA systems develop action lists by observing users perform tasks in the graphical user interface of the application, and then perform automation by repeating these tasks directly on the graphical user interface. The RPA robot can then generate appropriate input commands for the GUI to enable a given process to be performed by a computer system. This enables the process to be automated, turning an attended process into an unattended process. The advantages of this approach are numerous, including greater scalability, allowing multiple RPA robots to perform the same task across multiple computer systems, and greater repeatability because the possibility of human error in a given process is reduced or even eliminated.

[0003] Organizations using RPA software, such as software robots (also known as digital workers), must ensure that the software executes correctly when it is run. Errors that occur during execution must be diagnosed and fixed as quickly as possible. To achieve this, organizations typically hire staff to monitor performance and detect and fix problems when they occur, which can add significant operational costs to operating digital workers. According to some industry-wide statistics, for every 20 digital workers, companies need to hire an average of one full-time employee to perform maintenance tasks.

[0004] Not only is manual maintenance costly, but if maintenance is not performed in a timely manner, the availability of RPA-driven business processes may be significantly reduced. Even if diagnosing and fixing certain issues is simple, manually detecting these issues or assigning human workers to identify and fix them can take a lot of time. For example, a 5-minute fix may occur only hours after a human worker becomes available to assess and fix the problem. Summary of the invention

[0005] As described above, there are many problems associated with currently available technologies for maintaining RPA-driven business processes, such as high operating costs and potential for significant disruption. This may mean that a company will significantly reduce the return on investment from an RPA or intelligent automation solution due to the required maintenance costs. This may also mean that a company may limit the use of business automation via software robots to only its less important business processes, which may substantially reduce the number of automatable processes and savings to the client organization. Therefore, the desired goal is to reduce the RPA maintenance work required by the client organization and increase the reliability and availability of RPA-driven software robots.

[0006] Embodiments described herein are directed to methods and systems for managing Robotic Process Automation (RPA) robots. More specifically, embodiments described herein relate to techniques that can perform "self-healing" and reduce the maintenance work required of RPA robots (particularly by customer organizations) and can increase the reliability and / or availability of RPA robots.

[0007] According to one aspect of the present disclosure, a computer-implemented method for managing an RPA robot is provided. The method includes: obtaining data associated with operational metrics of the RPA robot during execution of an automated workflow; and determining an optimization action based on a policy and the obtained data associated with the operational metrics of the RPA robot.

[0008] According to another aspect of the present disclosure, a system for managing the performance of an RPA robot is provided. The system includes: an acquisition unit configured to acquire data associated with an operation metric of the RPA robot during execution of an automated workflow; and a determination unit configured to determine an optimization action based on a policy and the acquired data associated with the operation metric of the RPA robot.

[0009] According to another aspect of the present disclosure, there is provided a computer-readable storage medium comprising instructions, which when executed by a computer cause the computer to perform the steps of the method as described herein.

[0010] Optional features are set out in the attached dependent claims.

[0011] These and other aspects of the present disclosure will be better appreciated and understood when considered in conjunction with the following description and accompanying drawings. The following description, while indicating various embodiments of the present disclosure and many of its specific details, is given by way of illustration and not limitation. Many substitutions, modifications, additions, or rearrangements may be made within the scope of the present disclosure, and the present disclosure includes all such substitutions, modifications, additions, or rearrangements. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Embodiments of the present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 is a flow chart of a computer-implemented method for managing a Robotic Process Automation (RPA) robot according to an embodiment of the present disclosure; Figure 2 is a block diagram of a system for managing the performance of an RPA robot according to an embodiment of the present disclosure; and Figure 3 is a diagram showing a topology for RPA robot management according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0013] In the following description, many specific details are set forth to provide a thorough understanding of the embodiments. However, it is apparent to those of ordinary skill in the art that these specific details do not need to be adopted to implement these embodiments. In other instances, well-known materials or methods are not described in detail to avoid confusing the present disclosure.

[0014] Figure 1 is a flowchart of a computer-implemented method for managing a robotic process automation (RPA) robot according to an embodiment of the present disclosure. The method described herein may be implemented by, for example, Figure 2 In some implementations, the method may be implemented by a system such as the system 200 described herein. In some implementations, this system may be referred to as a process manager. In addition, in some embodiments, the method may be performed by a client computing device, a network, a server, or a combination thereof, such as Figure 3 3. Client computing device 305, network 310, and server 320 are shown in FIG.

[0015] The method 100 begins at step S110, where data associated with operational metrics of an RPA robot during execution of an automated workflow is acquired. In some embodiments, the acquisition may be performed starting from the initiation of a related session during which the automated workflow is executed, and the acquisition may be triggered by the initiation of such a session. In these embodiments, the triggering of the acquisition may not require any prior knowledge of the specific automated workflow to be executed. In other words, the acquisition of data may be triggered by the initiation of any session, regardless of which automated workflow is to be executed during the session.

[0016] Alternatively or additionally, the acquisition may be performed during a particular session (eg, a session indicated by a user).

[0017] In some embodiments, obtaining data associated with the operational metrics of the RPA robot at step S110 can be based on the definition of the automated workflow. For example, the automated workflow can involve a specific external web service or application with which it interacts, in which case the acquisition of data (e.g., response time) can be based on this specific external web service or application. As another example, the policy associated with the workflow can involve specific metrics within the rule, such as central processing unit (CPU) or memory consumption. In this case, the acquisition of data can be based on the specific metrics involved in the policy.

[0018] Data associated with the operational metrics of the RPA robot may include, for example, at least one of the following: data associated with the environment in which the RPA robot executes the automated workflow, data corresponding to a timestamp sequence of internal stages in the automated workflow, and data associated with the state of the current session executed by the RPA robot. The data associated with the environment may include at least one of the following: metrics associated with the RPA robot's use of the central processing unit (CPU), metrics associated with the RPA robot's use of the graphics processing unit (GPU), metrics associated with the RPA robot's use of memory, metrics associated with the number of applications launched by the RPA robot during runtime, metrics associated with the RPA robot's connectivity to applications (e.g., external web services such as web pages or web mail), and metrics associated with another runtime process of the RPA robot on the same runtime resource. These metrics may be historical values ​​and / or current (real-time) values.

[0019] In some embodiments, obtaining data associated with the operational metrics of the RPA robot at step S110 may include at least one of: detecting the operational metrics using a sensor, querying a database (directly or indirectly, for example, via a data gateway), querying an operating system, querying an external data source (for example, an external service that aggregates information about an operating system and / or environment associated with the RPA robot), and receiving an event associated with the operational metrics, the event being triggered when a corresponding condition is met. The queried database may be a database that exists on a machine separate from the RPA robot. The query operation may be performed at corresponding predetermined time intervals.

[0020] return Figure 1, at step S120, an optimization action is determined based on the policy and the acquired data associated with the operational metrics of the RPA robot. In the context of the present disclosure, an optimization action refers to an action that is capable of optimizing the execution of an automated workflow without necessarily affecting or modifying the definition (one or more) of the automated workflow. For example, as will be explained in more detail below, the optimization action may include a message corresponding to the result of the analysis, or more specifically, provide such a message to the user (e.g., via a display). As another example, the optimization action may include management actions, such as stopping the execution of the automated workflow by the RPA robot or changing elements of the environment in which the RPA robot operates. As explained in more detail below, these actions may be automatically performed as part of an "optimization action". It will also be understood that in some embodiments, the optimization action may change the definition of the automated workflow, for example, by updating, adding, or removing stages in the workflow definition.

[0021] By using one or more policies, end users can control the management of RPA robots, and more specifically, the execution of automated workflows by RPA robots. Policies can be rule-based policies that specify corresponding conditions for comparison with operational metrics and actions to be performed based on the comparison between the conditions and the operational metrics. The corresponding conditions can be in the form of thresholds (e.g., a percentage of CPU usage) or binary decisions (e.g., whether a workflow is executed in an infinite loop).

[0022] Alternatively or additionally, policies can specify optimization goals for RPA robots during the execution of automated workflows. Examples of optimization goals include "complete workload within 1 hour", "keep CPU / memory usage within 40% of total available usage", "ensure no blocked workflow execution (i.e., hung sessions)", "complete the process within a one-hour time limit based on a service level agreement", etc.

[0023] In addition, in some embodiments, policies may involve more than one type of metrics and / or data (e.g., a condition is "memory consumption is above 60% and the speed of the executed stages is 3 times that of the baseline"), where this data may be historical sensor data (e.g., a condition is "CPU consumption is >40% over the last three monitoring periods", or "automatically enter an infinite loop - repeatedly traverse the same subset of stages"). In some embodiments, policies may also be used at step S110, so that obtaining data associated with the operational metrics of the RPA robot can be based on policies. For example, a policy may specify sensors for detecting operational metrics of the RPA robot.

[0024] In some embodiments, determining the optimization action at step S120 may include analyzing the acquired data associated with the operation of the RPA robot during the execution of the automated workflow based on the strategy to predict or determine errors, and determining the optimization action based on the strategy and the results of the analysis. In these embodiments, the optimization action may include at least one of the following: a message corresponding to the result of the analysis (e.g., an alarm indicating that a "hanging-bot" is detected, an alarm indicating that a spike in an abnormal error is detected, or an alarm indicating that the execution is behind schedule, etc.), an action recommendation corresponding to the result of the analysis, and an automated action to be performed by the RPA robot corresponding to the result of the analysis. The data acquired by the analysis may be performed using a deterministic algorithm and / or a first machine learning model. The deterministic algorithm may be associated with combinatorial reasoning and / or planning and scheduling. In the context of the present disclosure, a "hanging-bot" refers to a digital worker that cannot proceed to the next step in the workflow.

[0025] In addition, in these embodiments, analyzing the acquired data associated with the operation of the RPA robot during the execution of the automated workflow to predict or determine errors may include predicting or determining at least one of errors in the execution of the automated workflow by the RPA robot and operating parameters to be optimized in the execution of the automated workflow by the RPA robot. In other words, in some embodiments, the analysis may only involve the prediction or detection of errors in the execution of the automated workflow, in some embodiments, the analysis may only involve the prediction or detection of operating parameters to be optimized in the execution of the automated workflow, and in some embodiments, the analysis may involve both. The predicted or detected operating parameters to be optimized may involve improving the execution performance of the RPA robot. For example, the execution of the automated workflow may be predicted or detected before scheduling, in which case the corresponding (to be optimized) operating parameter may be the amount of workload allocated to the RPA robot within a certain time period.

[0026] The predicted or determined error in the execution of the automated workflow by the RPA robot may correspond to abnormal behavior in the execution of the automated workflow. For example, the abnormal behavior may include at least one of: an unexpected pause or termination of the automated workflow execution (e.g., the automated process is blocked), an operational metric of the RPA robot breaching a corresponding threshold (e.g., the CPU usage in the last 2 minutes is higher than 60% of the total available capacity, or at the current rate of increase in memory usage, the automated process will reach a critical threshold within 30 minutes), an execution error of the automated workflow, and an unexpected output generated by the automated workflow.

[0027] As described above, in some embodiments, the optimization action may include an automated action to be performed by the RPA robot, the automated action being an automated action corresponding to a result of the analysis. In these embodiments, the automated actions may include at least one of: restarting execution of an automated workflow by an RPA robot, postponing or stopping execution of an automated workflow by an RPA robot, changing elements of the environment in which the RPA robot operates, changing operating parameters of the RPA robot (e.g., a session variable that specifies a maximum wait time for an application response, or an environment variable that specifies the location of an input file, etc.), changing stages and / or definition parameters (e.g., a subset of element attributes used during the object recognition process) in an automated workflow (where the automated workflow has been designed in terms of its internal logic, stages, etc. to allow for such changes), skipping optional stages in the automated workflow during execution (where the optional stages have been so designed and pre-marked in the workflow automation, and may include any activities that are deemed relevant but not necessary (e.g., by the process owner), such as, for example, optionally sending an email to a client after execution of a task, or generating a PDF version of a report, etc.), requesting a different allocation of central processing unit (CPU) resources, requesting a different allocation of memory resources, requesting additional workload to be performed by the RPA robot, and storing storage information associated with the results of the analysis. For example, as described above, analysis of the acquired data may involve predicting or detecting that the amount of workload allocated to the RPA robot can be optimized, and in this example, the optimization action may include requesting additional workload to be performed by the RPA robot. As another example, changing a definition parameter of an automated workflow may include externally controlling an element of decision logic or wait times in the automated workflow.

[0028] As described above, in some embodiments, a first machine learning model may be used to perform analysis of the acquired data. The first machine learning model may be trained using at least one of the following: operational metrics of the RPA robot, possible errors in the RPA robot executing automated workflows, and possible modifications to operational parameters used for the RPA robot to execute automated workflows. The first machine learning model may include at least one of the following: a classical machine learning model (e.g., a model based on linear / logistic regression, a kernel-based model, a decision tree and random forest-based model, etc.) and a deep learning model (e.g., a recurrent neural network, a long short-term memory model, a convolutional neural network, a model using a transformer architecture, etc.).

[0029] Although Figure 1, but in some embodiments, method 100 may also include storing information including at least one of: acquired data associated with operational metrics of the RPA robot, predicted or determined errors in the execution of the automated workflow, predicted or determined operational parameters to be optimized in the execution of the automated workflow, and determined optimization actions. After storing this information, the method may also include training a first machine learning model based on the stored information.

[0030] Alternatively or additionally, although not in Figure 1 , but in some embodiments, method 100 may further include detecting the execution of an automated workflow by an RPA robot. In these embodiments, the step of obtaining data associated with the operational metrics of the RPA robot during the execution of the automated workflow at S110 may be performed after the execution of the automated workflow is detected, or when the execution of the automated workflow is detected. In addition, in these embodiments, the method may further include obtaining a policy after detecting the execution of the automated workflow by the RPA robot, wherein the policy corresponds to the RPA robot and / or the automated workflow.

[0031] Alternatively or additionally, although Figure 1 , but in some embodiments, method 100 may also include receiving at least one of the following: user input to enable or disable automatic execution of the determined optimization action, user input to approve or deny the determined optimization action, user input to agree or disagree with the predicted or determined error and / or operating parameter to be optimized, user input to provide an alternative to the predicted or determined error and / or operating parameter to be optimized, user input to agree or disagree with the determined optimization action, user input to provide an alternative to the determined optimization action, and user input indicating user feedback after execution of the optimization action (e.g., a response to “was the problem accurately diagnosed?” and / or “was the problem satisfactorily resolved?”). Method 100 may also include executing the optimization action, and in some embodiments, this may be performed only when user input to enable automatic execution of the determined optimization action and / or user input to approve the determined optimization action is received, and / or user input to agree with the predicted or determined error and / or operating parameter to be optimized is received, and / or user input to agree with the determined optimization action is received.

[0032] Method 100 may also include storing user input approving or rejecting the determined optimization action, and / or user input for agreeing or disagreeing with the predicted or determined error and / or operating parameters to be optimized, and / or user input providing alternatives to the predicted or determined error and / or operating parameters to be optimized, and / or user input agreeing or disagreeing with the determined optimization action, and / or user input providing alternatives to the determined optimization action, and / or user feedback after the optimization action is performed, and training the first machine learning model based on the stored user input and / or user feedback.

[0033] In some embodiments, method 100 may further include determining an effectiveness score for the determined optimization action using the first machine learning model. The effectiveness score may be determined based on at least one of a binary result (i.e., whether the optimization action addressed or resolved the predicted or determined error, such as whether the software robot was able to resume execution), a numerical performance metric (e.g., a metric indicating the extent to which the predicted or determined error has been resolved, such as the difference between the current CPU usage and the target level after the optimization action has been executed, or the difference between the new expected completion time and the target service level agreement (SLA) completion time), or a subjective user rating (e.g., a user indicating how satisfied they are with the optimization action, such as on a scale of 1 to 10).

[0034] As described above, in some embodiments, the strategy (which is used in step S120 for determining the optimization action) can specify the optimization goal for the RPA robot during the execution of the automated workflow. In these embodiments, determining the optimization action at step S120 can also be based on at least one of a deterministic algorithm and a second trained machine learning model. The second trained machine learning model can be trained with at least one of the following: an operational metric of the RPA robot, an operational parameter in the execution of the automated workflow by the RPA robot, and a deterministic algorithm associated with at least one of the following: rule execution, combinatorial optimization, and artificial intelligence (AI) planning and scheduling. In more detail, in some embodiments, the second trained machine learning model can be trained based on data associated with the quality of the results of the previously executed optimization actions, for example, whether the executed optimization action solves the detected error. The second machine learning model may include at least one of the following: a classical machine learning (ML) model (e.g., a model based on linear / logistic regression, a kernel-based model, a model based on a decision tree and a random forest, etc.) and a deep learning model (e.g., a recursive neural network, a long short-term memory (LSTM) model, a convolutional neural network, a model using a transformer architecture, etc.).

[0035] In some embodiments, the step of acquiring data associated with the operational metrics of the RPA robot during the execution of the automated workflow at step S110 may include acquiring first data associated with a first session under a runtime resource corresponding to the automated workflow. In these embodiments, method 100 may also include acquiring second data associated with the operational metrics of the RPA robot during the execution of a second automated workflow, the second data being associated with a second session under the runtime resource, and determining an optimization action based on a second strategy and the acquired second data. In addition, in these embodiments, acquiring the second data may be triggered by the second session being initiated. The first and second strategies may be the same strategy, or they may be different strategies. It will be understood that the triggering of the acquisition of the second data may not require any prior knowledge of the specific automated workflow to be executed during the second session.

[0036] Figure 2 is a block diagram of a system for managing the performance of an RPA robot according to an embodiment of the present disclosure. In some embodiments, Figure 2 The system 200 shown in FIG. 1 may be implemented as a process manager, for example, on a server (e.g., as described below with reference to Figure 3 The process manager implemented in the server 320 described in the embodiment of the present invention. Figure 2 As shown, a system 200 including an acquisition unit 210 and a determination unit 220 is provided.

[0037] The acquisition unit 210 is configured to acquire data associated with the operational metrics of the RPA robot during the execution of the automated workflow. The acquisition unit 210 can be configured to acquire data when a (new) session is started and to execute the automated workflow during the (new) session. The acquisition unit 210 can be configured to acquire data during a specific session (e.g., as indicated by a user). In some embodiments, the acquisition unit 210 can be configured to acquire data associated with the operational metrics of the RPA robot based on the definition of the automated workflow. For example, the automated workflow may involve a specific external web service or application with which it interacts. In this case, the acquisition of data (e.g., response time) can be based on this specific external web service or application. As another example, a policy associated with a workflow may involve a specific metric within a rule, such as CPU or memory consumption. In this case, the acquisition of data can be based on this specific metric involved by the policy.

[0038] Data associated with the operational metrics of the RPA robot may include, for example, at least one of the following: data related to the environment in which the RPA robot executes the automated workflow, data corresponding to a timestamp sequence of internal stages in the automated workflow, and data associated with the state of the current session executed by the RPA robot. The data related to the environment may include at least one of the following: metrics associated with the CPU usage of the RPA robot, metrics associated with the GPU usage of the RPA robot, metrics associated with the memory usage of the RPA robot, metrics associated with the number of applications launched by the RPA robot during runtime, metrics associated with the connectivity of the RPA robot to an application (e.g., an external web service such as a web page or web mail), and metrics associated with another runtime process on the same runtime resource as the RPA robot. These metrics may be historical values ​​and / or current (real-time) values.

[0039] In some embodiments, the acquisition unit 210 may be configured to acquire data associated with the operation metrics of the RPA robot by performing at least one of the following: detecting the operation metrics using a sensor, querying a database (directly or indirectly, for example, via a data gateway), querying an operating system, querying an external data source (for example, an external service that aggregates information about the operating system and / or environment associated with the RPA robot), and receiving an event associated with the operation metrics, the event being triggered when a corresponding condition is met. The queried database may be a database that exists on a machine separate from the RPA robot. The query operation may be performed at corresponding predetermined time intervals.

[0040] The determination unit 220 is configured to determine an optimization action based on the strategy and the acquired data associated with the operation metrics of the RPA robot. Figure 1 As mentioned, in the context of the present disclosure, an optimization action refers to an action that can optimize the execution of an automated workflow without necessarily affecting or modifying the definition of the automated workflow. However, in some embodiments, an optimization action can change the definition of an automated workflow, for example, by updating, adding, or removing stages in the workflow definition.

[0041] By using one or more policies, the end user can control the management of the RPA robot, more specifically, the execution of the automated workflow by the RPA robot. The policy can be a rule-based policy that specifies the corresponding conditions for comparison with the operational metrics and the actions to be performed based on the comparison results between the conditions and the operational metrics. Alternatively or additionally, the policy can specify the optimization goals for the RPA robot during the execution of the automated workflow. The corresponding conditions can be in the form of thresholds (e.g., the percentage of CPU usage to the total available usage) or binary decisions (e.g., whether the workflow is executed in an infinite loop). In addition, in some embodiments, the policy can involve more than one type of metrics and / or data, where this data can be historical sensor data. In some embodiments, the policy can also be used by the acquisition unit 210, so that the acquisition unit 210 is configured to acquire data associated with the operational metrics of the RPA robot based on the policy. For example, the policy can specify a sensor for detecting the operational metrics of the RPA robot.

[0042] In some embodiments, the determination unit 220 may be configured to determine the optimization action by analyzing the data associated with the operation of the RPA robot during the execution of the automated workflow based on the strategy to predict or determine errors, and determining the optimization action based on the strategy and the results of the analysis. In these embodiments, the optimization action may include at least one of the following: a message corresponding to the result of the analysis (e.g., an alarm indicating that a "hang-up robot" is detected, an alarm indicating that a spike in an abnormal error is detected, or an alarm indicating that the execution is behind schedule, etc.), an action recommendation corresponding to the result of the analysis, and an automated action to be performed by the RPA robot corresponding to the result of the analysis. The determination unit 220 may be configured to analyze the acquired data using a deterministic algorithm and / or a first machine learning model. The deterministic algorithm may involve combined reasoning and / or planning and scheduling.

[0043] In these embodiments, the determination unit 220 may be configured to analyze the acquired data associated with the operation of the RPA robot during the execution of the automated workflow to predict or determine at least one of the following: errors in the execution of the automated workflow by the RPA robot and operating parameters to be optimized in the execution of the automated workflow by the RPA robot. In other words, in some embodiments, the analysis may only involve the prediction or detection of errors in the execution of the automated workflow, in some embodiments, the analysis may only involve the prediction or detection of operating parameters to be optimized in the execution of the automated workflow, and in some embodiments, the analysis may involve both. The predicted or detected operating parameters to be optimized may involve improving the execution performance of the RPA robot. For example, the execution of the automated workflow may be predicted or detected before scheduling, in which case the corresponding (to be optimized) operating parameter may be the amount of workload allocated to the RPA robot within a specific time period.

[0044] The predicted or determined error in the execution of the automated workflow by the RPA robot may correspond to abnormal behavior in the execution of the automated workflow. For example, the abnormal behavior may include at least one of: an unexpected pause or termination of the automated workflow execution, an operational metric of the RPA robot exceeding a corresponding threshold, an execution error of the automated workflow, and an unexpected output generated by the automated workflow.

[0045] As described above, in some embodiments, the optimization action may include an automated action to be performed by the RPA robot, the automated action being an automated action corresponding to the result of the analysis. In these embodiments, the automated action may include at least one of the following: restarting the execution of the automated workflow by the RPA robot, postponing or stopping the execution of the automated workflow by the RPA robot, changing the elements of the environment in which the RPA robot operates, changing the operating parameters of the RPA robot, changing the definition parameters and / or stages in the automated workflow (where the automated workflow has been designed to allow such changes according to its internal logic, stages, etc.), skipping the optional stages in the automated workflow during execution (where the optional stages have been designed in the automated workflow and are pre-marked as such), requesting a different allocation of CPU resources, requesting a different allocation of memory resources, requesting additional workloads to be performed by the RPA robot, and storing information associated with the results of the analysis. For example, as described above, the analysis of the acquired data by the determination unit 220 may involve predicting or detecting that the amount of workload allocated to the RPA robot can be optimized, and in this example, the optimization action may include requesting additional workloads to be performed by the RPA robot. As another example, changing the definition parameters of an automated workflow may include externally controlling elements of decision logic or wait times in the automated workflow.

[0046] As described above, the determination unit 220 can be configured to analyze the acquired data using a first machine learning model. The first machine learning model can be trained using at least one of the following: operational metrics of the RPA robot, possible errors in the RPA robot executing automated workflows, and possible modifications to operational parameters used for the RPA robot to execute automated workflows. The first machine learning model may include at least one of the following: a classical machine learning model (e.g., a model based on linear / logistic regression, a kernel-based model, a decision tree and random forest-based model, etc.) and a deep learning model (e.g., a recurrent neural network, a long short-term memory model, a model using a transformer architecture, etc.).

[0047] In some embodiments, the system 200 may further include a storage unit configured to store information including at least one of the following: acquired data associated with the operational metrics of the RPA robot, predicted or determined errors in the execution of the automated workflow, predicted or determined operational parameters to be optimized in the execution of the automated workflow, and determined optimization actions. In addition, in these embodiments, the system 200 may further include a training unit configured to (after the storage unit stores the information) train the first machine learning model based on the stored information.

[0048] In some embodiments, the system 200 may further include a detection unit configured to detect the execution of the automated workflow by the RPA robot. In these embodiments, the acquisition unit 210 may be configured to acquire data associated with the operational metrics of the RPA robot during the execution of the automated workflow only after the detection unit detects the execution of the automated workflow or when the detection unit detects the execution of the automated workflow. In addition, in these embodiments, the acquisition unit 210 may be configured to acquire a policy after the detection unit detects the execution of the automated workflow by the RPA robot, wherein the policy corresponds to the RPA robot and / or the automated workflow.

[0049] Alternatively or additionally, although Figure 2, but in some embodiments, the system 200 may further include a receiving unit configured to receive at least one of the following: user input to enable or disable automatic execution of the determined optimization action, user input to approve or reject the determined optimization action, user input to agree or disagree with the predicted or determined error and / or the operating parameter to be optimized, user input to provide an alternative to the predicted or determined error and / or the operating parameter to be optimized, user input to agree or disagree with the determined optimization action, user input to provide an alternative to the determined optimization action, and user input indicating user feedback after the optimization action is executed. The system 200 may also include an execution unit configured to execute the optimization action, and in some embodiments, the execution is performed by the execution unit only when a user input to enable automatic execution of the determined optimization action and / or a user input to approve the determined optimization action is received, and / or a user input to agree with the predicted or determined error and / or the operating parameter to be optimized is received, and / or a user input to agree with the determined optimization action is received.

[0050] In some embodiments, the system 200 may further include a storage unit configured to store user input for approving or rejecting the determined optimization action, and / or user input for agreeing or disagreeing with the predicted or determined error and / or operating parameters to be optimized, and / or providing an alternative user input for the predicted or determined error and / or operating parameters to be optimized, and / or user input for agreeing or disagreeing with the determined optimization action, and / or providing an alternative user input for the determined optimization action, and / or user feedback after the execution of the optimization action. In these embodiments, the system 200 may further include a training unit configured to train the first machine learning model based on the stored user input and / or user feedback. The storage unit and / or training unit in these embodiments may be the same storage unit and / or training unit as mentioned in the above embodiments.

[0051] In some embodiments, the determination unit 220 may also be configured to determine an effectiveness score for the determined optimization action using the first machine learning model. The effectiveness score may be determined based on at least one of a binary result (i.e., whether the optimization action handles or resolves the predicted or determined error, such as whether the software robot is able to resume execution), a numerical performance metric (e.g., a metric indicating the extent to which the predicted or determined error has been resolved, such as the difference between the current CPU usage and the target level after the optimization action has been executed, or the difference between the new expected completion time and the target service level agreement (SLA) completion time), or a subjective user evaluation (e.g., a user indicating how satisfied they are with the optimization action, such as on a scale of 1 to 10).

[0052] As described above, in some embodiments, the strategy (which is used by the determination unit 220 for determining the optimization action) can specify the optimization goal for the RPA robot during the execution of the automated workflow. In these embodiments, the determination unit 220 can be configured to further determine the optimization action based on a deterministic algorithm and at least one of the second trained machine learning models. The second trained machine learning model can be trained with at least one of the following: the operation metrics of the RPA robot, the operation parameters in the execution of the automated workflow by the RPA robot, and the deterministic algorithm associated with at least one of the following: rule execution, combinatorial optimization, AI planning and scheduling. In more detail, in some embodiments, the second trained machine learning model can be trained based on data associated with the quality of the results of the previously executed optimization actions, for example, whether the executed optimization action solves the detected error. The second machine learning model may include at least one of the following: a classical machine learning model (e.g., a model based on linear / logistic regression, a kernel-based model, a model based on decision trees and decision trees and random forests, etc.) and a deep learning model (e.g., a recursive neural network, a long short-term memory (LSTM) model, a convolutional neural network, a model using a transformer architecture, etc.).

[0053] In some embodiments, the acquisition unit 210 may be configured to acquire data associated with the operational metrics of the RPA robot during the execution of the automated workflow by acquiring first data associated with a first session under a runtime resource corresponding to the automated workflow. In these embodiments, the acquisition unit 210 may also be configured to acquire second data associated with the operational metrics of the RPA robot during the execution of the second automated workflow, the second data being associated with a second session under the runtime resource. In addition, in these embodiments, the determination unit 220 may be configured to determine a new optimization action based on the second strategy and the acquired second data. The acquisition unit 210 may be configured to acquire the second data when triggered by the second session being initiated. The first and second strategies may be the same strategy, or they may be different strategies.

[0054] In some embodiments, the system 200 may be available as an external component to the automation workflow. Thus, at least in these embodiments, the system 200 is not intrusive and does not require internal changes to the RPA robots and / or automated workflows in order to monitor and / or control them. The system 200 may utilize already available interfaces (e.g., sensors and / or actuators) to acquire relevant data (i.e., data associated with operational metrics of the RPA robots during execution of the automated workflows) and / or influence the execution of the automation (i.e., by performing optimization actions). Furthermore, in this way, the system 200 can be configured to allow organizations that run multiple processes (e.g., business-related automated workflows) across different runtime resources utilizing different RPA robots to dictate whether to apply the functionality of the system 200 on a given runtime resource.

[0055] Figure 3 300 is a diagram showing a topology for RPA robot management according to an embodiment of the present disclosure. The topology 300 may include a client computing device 305 and a server 320 configured to be communicatively coupled via a network 310.

[0056] The network 310 can be a wired or wireless network, such as the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a near field communication (NFC) network, Bluetooth, infrared, radio frequency, a cellular network, or another type of network. It will be understood that the network 310 can be a combination of multiple different types of wired or wireless networks.

[0057] Each client computing device 305 may be a smartphone, tablet computer, laptop computer, desktop computer, personal data assistant, or any other type of mobile device having a hardware processor configured to process instructions and connected to one or more portions of network 310. Each client computing device 305 may have a graphical user interface configured to allow a user to interact with the processor of the client computing device 305.

[0058] Server 320 may include a physical computing device located at a specific location, or may be deployed in a cloud computing network environment. In the present disclosure, "cloud computing" may be 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, applications, and services) that can be quickly provisioned via virtualization and released with minimal management effort or service provider interaction, and then scaled accordingly. The cloud model may consist of various features (e.g., on-demand self-service, broad network access, resource pools, rapid elasticity, measured 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.). Server 320 may include any combination of one or more computer-usable or computer-readable media. In some embodiments, server 320 may be configured to manage RPA robots. For example, server 320 may perform the operations described above with reference to Figure 1 At least a portion of method 100 is described.

[0059] It should be understood that the description is by way of example only; variations and modifications may be made to the described embodiments without departing from the scope of the present disclosure as defined in the claims.

[0060] Although the present technology has been described in detail for purposes of illustration based on what are presently considered to be the most practical and preferred implementations, it should be understood that such detail is solely for that purpose and that the present technology is not limited to the disclosed implementations, but rather is intended to cover modifications and equivalent arrangements within the scope of the appended claims. For example, it should be understood that the present technology contemplates that, to the extent possible, one or more features of any embodiment may be combined with one or more features of any other embodiment.

[0061] Throughout the specification, references to "one embodiment," "an embodiment," or "an example," or "an example" mean that a particular feature, structure, or characteristic described in conjunction with the embodiment or example is included in at least one embodiment of the present disclosure. Therefore, the phrases "in one embodiment," "in an embodiment," "an example," or "an example" appearing throughout this specification do not necessarily all refer to the same embodiment or example. In addition, in one or more embodiments or examples, the particular features, structures, or characteristics may be combined in any suitable combination and / or sub-combination. In addition, it should be understood that the figures provided herein are for the purpose of explanation to persons of ordinary skill in the art, and that the figures are not necessarily drawn to scale.

[0062] The embodiments of the present disclosure may be implemented as a device, a method or a computer program product. For example, in some embodiments, a computer program product including instructions may be provided, and when the program is executed by a processor, the instructions cause the processor to perform the following operations: Figure 1 As another example, in some embodiments, a computer-readable storage medium may be provided that includes instructions that, when executed by a computer, cause the computer to perform Figure 1 Thus, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, which may be collectively referred to herein as a "module" or "system." In addition, embodiments of the present disclosure may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.

[0063] Although described in conjunction with an exemplary computing system environment, embodiments of the present disclosure may be used in numerous other general or special computing system environments or configurations. Examples of known computing systems, environments, and / or configurations that may be applicable to aspects of the present disclosure include, but are not limited to, mobile computing devices, personal computers (e.g., desktop computers), server computers, handheld or laptop devices, multiprocessor systems, game consoles, microprocessor-based systems, set-top boxes, programmable consumer electronics, mobile phones, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.

[0064] Any combination of one or more computer-usable or computer-readable media may be utilized. For example, a computer-readable medium may include one or more of a portable computer disk, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or flash memory) device, a portable compact disk read-only memory (CDROM), an optical storage device, and a magnetic storage device. The computer program code for performing the operations of the embodiments of the present disclosure may be written in any combination of one or more programming languages.

[0065] Flowcharts and block diagrams illustrate possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure, functions, and operations. In this regard, each box in a flow chart or block diagram may represent a module, segment, or portion of a code, which includes one or more executable instructions for implementing a specified logical function. It will also be noted that each box in a block diagram and / or flow chart and a combination of boxes in a block diagram and / or flow chart may be implemented by a combination of a dedicated hardware-based system or dedicated hardware and computer instructions that performs a specified function or action. These computer program instructions may also be stored in a computer-readable medium, which may guide a computer or other programmable data processing device to work in a particular manner, so that the instructions stored in the computer-readable medium produce an article of manufacture including an instruction device that implements the function / action specified in the flow chart and / or block diagram. The following is a list of embodiments of the present disclosure: 1. A computer-implemented method for managing a Robotic Process Automation (RPA) robot, the method comprising: Acquiring data associated with operational metrics of the RPA robot during execution of the automated workflow; and An optimization action is determined based on a policy and the acquired data associated with the operational metrics of the RPA robot. 2. The method of embodiment 1, wherein determining the optimization action comprises: analyzing the acquired data associated with the operation of the RPA robot during execution of the automated workflow based on the policy to predict or determine an error; and The optimization action is determined based on the strategy and the results of the analysis. 3. A method according to Example 2, wherein analyzing the acquired data associated with the operation of the RPA robot during the execution of the automated workflow to predict or determine errors includes predicting or determining at least one of: errors in the execution of the automated workflow by the RPA robot and operational parameters to be optimized in the execution of the automated workflow by the RPA robot. 4. The method of embodiment 3, wherein the predicted or determined error in the execution of the automated workflow by the RPA robot corresponds to abnormal behavior in the execution of the automated workflow. 5. The method of embodiment 4, wherein the abnormal behavior comprises at least one of the following: - unexpected pause or termination of automated workflow execution, -The operation metric of the RPA robot exceeds the corresponding threshold, - errors in the execution of said automated workflow, and - Unexpected outputs produced by the automated workflow. 6. A method according to any one of embodiments 2 to 5, wherein the optimization action includes at least one of the following: a message corresponding to the result of the analysis, an action recommendation corresponding to the result of the analysis, and an automated action to be performed by the RPA robot corresponding to the result of the analysis. 7. A method according to Example 6, wherein the automated action includes at least one of the following: restarting the execution of the automated workflow by the RPA robot, postponing or stopping the execution of the automated workflow by the RPA robot, changing elements of the environment in which the RPA robot operates, changing operating parameters of the RPA robot, changing defined parameters and / or stages in the automated workflow, skipping optional stages in the automated workflow during execution, requesting a different allocation of central processing unit CPU resources, requesting a different allocation of memory resources, requesting additional workload to be performed by the RPA robot, and storing information associated with the results of the analysis. 8. A method according to any one of embodiments 2 to 7, wherein analyzing the acquired data includes using at least one of a deterministic algorithm and a first machine learning model to analyze the acquired data. 9. A method according to Example 8, wherein the first machine learning model is pre-trained using at least one of the following: operational metrics of the RPA robot, possible errors in the RPA robot's execution of automated workflows, and possible modifications to operational parameters used for the RPA robot to execute automated workflows. 10. The method of embodiment 8 or embodiment 9 further comprises storing information including at least one of the following: The acquired data associated with the operational metrics of the RPA robot, the predicted or determined error in the execution of the automated workflow, the predicted or determined operating parameters to be optimized in the execution of the automated workflow, and the determined optimization actions; and The first machine learning model is trained based on the stored information. 11. The method according to any one of the preceding embodiments further includes detecting the execution of the automated workflow by the RPA robot, wherein the step of obtaining data associated with the operational metrics of the RPA robot during the execution of the automated workflow is performed after the detection of the execution of the automated workflow. 12. The method according to embodiment 11 further includes obtaining the policy after detecting the execution of the automated workflow by the RPA robot, wherein the policy corresponds to the RPA robot and / or the automated workflow. 13. A method according to any of the preceding embodiments, wherein obtaining data associated with the operational metrics of the RPA robot is based on the policy. 14. The method according to any one of the preceding embodiments further includes receiving at least one of the following: user input to enable or disable automatic execution of the determined optimization action, user input to approve or reject the determined optimization action, user input to agree or disagree with the predicted or determined error and / or the operating parameters to be optimized, user input to provide an alternative to the predicted or determined error and / or the operating parameters to be optimized, user input to agree or disagree with the determined optimization action, user input to provide an alternative to the determined optimization action, and user input to indicate user feedback after execution of the optimization action. 15. The method according to any one of the preceding embodiments, wherein the method further comprises performing the optimization action. 16. A method according to embodiment 15 when subordinate to embodiment 14, wherein the optimization action is performed only when user input is received to enable automatic execution of the determined optimization action and / or user input is received to approve the determined optimization action, and / or user input is received to agree with the predicted or determined error and / or the operating parameter to be optimized, and / or user input is received to agree with the determined optimization action. 17. The method according to any one of embodiments 14 to 16 when dependent on any one of embodiments 8 to 10, further comprising: storing the user input approving or rejecting the determined optimization action, and / or the user input agreeing or disagreeing with the predicted or determined error and / or the operating parameter to be optimized, and / or the user input providing an alternative to the predicted or determined error and / or the operating parameter to be optimized, and / or the user input agreeing or disagreeing with the determined optimization action, and / or the user input providing an alternative to the determined optimization action, and / or the user feedback after the execution of the optimization action; and The first machine learning is trained based on stored user input and / or user feedback. 18. The method of any one of embodiments 8 to 10 or any one of embodiments 14 to 17 when subordinate to any one of embodiments 8 to 10, further comprising using the first machine learning model to determine an effectiveness score of the determined optimization action. 19. A method according to any of the preceding embodiments, wherein the policy is a rule-based policy that specifies corresponding conditions for comparison with the operational metrics and actions to be performed based on the comparison results between the conditions and the operational metrics. 20. A method according to any one of the preceding embodiments, wherein the policy specifies optimization goals for the RPA robot during execution of the automated workflow, and wherein determining the optimization action is also based on at least one of a deterministic algorithm and a second trained machine learning model. 21. A method according to embodiment 20, wherein the second trained machine learning model is trained using at least one of the following: operational metrics of the RPA robot, operational parameters in the execution of the automated workflow by the RPA robot, and a deterministic algorithm associated with at least one of the following: rule execution, combinatorial optimization, artificial intelligence, planning, and scheduling. 22. The method according to any one of the preceding embodiments, wherein obtaining data associated with the operation metrics of the RPA robot comprises at least one of the following: using a sensor to detect the operational metric, Query the database, Query the operating system. query external data sources, and An event associated with the operational metric is received, the event being triggered when a corresponding condition is met. 23. The method of embodiment 22, wherein the policy specifies the sensor for detecting the operational metrics of the RPA robot, and wherein obtaining data associated with the operational metrics is based on the policy. 24. A method according to any of the preceding embodiments, wherein obtaining the data associated with the operational metrics of the RPA robot is based on the definition of the automated workflow. 25. A method according to any one of the preceding embodiments, wherein the data associated with the operational metrics of the RPA robot includes at least one of the following: data related to the environment in which the RPA robot executes the automated workflow, data corresponding to a timestamp sequence of internal stages in the automated workflow, and data associated with the state of the current session executed by the RPA robot. 26. The method of embodiment 25, wherein the data related to the environment includes at least one of the following: Metrics associated with the central processing unit CPU usage of the RPA robot, Metrics associated with the Graphics Processing Unit (GPU) usage of the RPA robot, Metrics associated with the memory usage of the RPA robot, a metric associated with the number of applications launched by the RPA robot during runtime, Metrics associated with the RPA robot’s connectivity to the application, and Metrics associated with another runtime process on the same runtime resource as the RPA robot. 27. The method according to any one of the preceding embodiments, wherein obtaining data associated with operational metrics of an RPA robot during execution of an automated workflow comprises obtaining first data associated with a first session under a runtime resource corresponding to the automated workflow, and wherein the method further comprises: Obtaining second data associated with operational metrics of the RPA robot during execution of a second automated workflow, wherein the second data is associated with a second session under the runtime resource; and An optimization action is determined based on the second strategy and the acquired second data. 28. The method according to embodiment 27, wherein obtaining the second data is triggered by the second session being started. 29. A system for managing the performance of a Robotic Process Automation (RPA) robot, the system comprising: an acquisition unit configured to acquire data associated with operation metrics of the RPA robot during execution of the automated workflow; and A determination unit is configured to determine an optimization action based on a policy and the acquired data associated with the operation metric of the RPA robot. 29. The system of embodiment 29, wherein the system is provided to the automated workflow as an external component. 31. A computer-readable storage medium comprising instructions, which when executed by a computer cause the computer to perform the steps of the method of any one of embodiments 1 to 28.

Claims

1. A computer-implemented method (100) for managing a Robotic Process Automation (RPA) robot, the method comprising: Acquiring ( S110 ) data associated with operational metrics of the RPA robot during execution of the automated workflow; as well as An optimization action is determined ( S120 ) based on a policy and the acquired data associated with the operation metrics of the RPA robot.

2. The method according to claim 1, wherein determining (S120) the optimization action comprises: analyzing the acquired data associated with the operation of the RPA robot during execution of the automated workflow based on the policy to predict or determine an error; as well as The optimization action is determined based on the strategy and the results of the analysis.

3. A method according to claim 2, wherein analyzing the acquired data associated with the operation of the RPA robot during the execution of the automated workflow to predict or determine errors includes predicting or determining at least one of: errors in the execution of the automated workflow by the RPA robot and operational parameters to be optimized in the execution of the automated workflow by the RPA robot.

4. The method of claim 3, wherein the predicted or determined error in the execution of the automated workflow by the RPA robot corresponds to abnormal behavior in the execution of the automated workflow.

5. A method according to any one of claims 2 to 4, wherein the optimization action comprises at least one of: a message corresponding to the result of the analysis, an action recommendation corresponding to the result of the analysis, and an automated action to be performed by the RPA robot corresponding to the result of the analysis.

6. A method according to claim 5, wherein the automated action includes at least one of the following: restarting the execution of the automated workflow by the RPA robot, postponing or stopping the execution of the automated workflow by the RPA robot, changing elements of the environment in which the RPA robot operates, changing operating parameters of the RPA robot, changing defined parameters and / or stages in the automated workflow, skipping optional stages in the automated workflow during execution, requesting a different allocation of central processing unit CPU resources, requesting a different allocation of memory resources, requesting additional workload to be performed by the RPA robot, and storing information associated with the results of the analysis.

7. The method of any one of claims 2 to 6, wherein analyzing the acquired data comprises analyzing the acquired data using at least one of a deterministic algorithm and a first machine learning model.

8. The method according to any of the preceding claims further includes receiving at least one of the following: user input to enable or disable automatic execution of the determined optimization action, user input to approve or reject the determined optimization action, user input to agree or disagree with the predicted or determined error and / or the operating parameters to be optimized, user input to provide an alternative to the predicted or determined error and / or the operating parameters to be optimized, user input to agree or disagree with the determined optimization action, user input to provide an alternative to the determined optimization action, and user input to indicate user feedback after execution of the optimization action.

9. The method according to any of the preceding claims, wherein the method further comprises performing the optimization action.

10. The method of any of the preceding claims, wherein the policy is a rule-based policy that specifies corresponding conditions for comparison with the operational metrics and actions to be performed based on the comparison between the conditions and the operational metrics.

11. The method according to any of the preceding claims, wherein the policy specifies optimization goals for the RPA robot during execution of the automated workflow, and wherein, Determining the optimization action is also based on at least one of a deterministic algorithm and a second trained machine learning model.

12. The method according to any of the preceding claims, wherein obtaining (S110) data associated with operational metrics of an RPA robot during execution of an automated workflow comprises obtaining first data associated with a first session under a runtime resource corresponding to the automated workflow, and wherein, The method further comprises: Obtaining second data associated with operational metrics of the RPA robot during execution of a second automated workflow, wherein the second data is associated with a second session under the runtime resource; and An optimization action is determined based on the second strategy and the acquired second data.

13. A system (200) for managing the performance of a Robotic Process Automation (RPA) robot, the system comprising: An acquisition unit (210) configured to acquire data associated with operational metrics of the RPA robot during execution of the automated workflow; as well as A determination unit (220) is configured to determine an optimization action based on a policy and the acquired data associated with the operation metric of the RPA robot.

14. The system of claim 13, wherein the system (200) is available as an external component to the automated workflow.

15. A computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to perform the steps of the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • System and computer-implemented method for analyzing a robotic process automation (RPA) workflow

    US20210191367A1

  • System and computer-implemented method for analyzing test automation workflow of robotic process automation (RPA)

    US20210191843A1

  • Intelligent engines to orchestrate automatic production of robotic process automation bots based on artificial intelligence feedback

    US20220121982A1