Process evolution and workflow micro-optimization for robotic process automation
By receiving planning and analyzing business data through a computing system, generating and deploying RPA workflows, and optimizing the RPA process using artificial intelligence and machine learning, the problem of suboptimal RPA automation in existing technologies has been solved, achieving consistency between RPA operations and strategic business outcomes and improving efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-08-19
- Publication Date
- 2026-03-17
AI Technical Summary
Existing RPA automation implementations are often fragmented and suboptimal; robots may not always be optimal, and there is a lack of systematic process optimization and workflow micro-optimization.
The computing system receives plans, analyzes business data, generates and deploys RPA workflows, optimizes workflows, utilizes artificial intelligence and machine learning technologies to plan and improve automated processes, uses listeners to record user operation data, and generates and deploys robots to achieve optimal workflows.
It achieved consistency between RPA operations and strategic business outcomes, improved the effectiveness and efficiency of RPA, optimized workflows, and increased ROI.
Smart Images

Figure CN114556244B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims the benefit of U.S. non-provisional patent application No. 16 / 708,132, filed December 9, 2019, and U.S. provisional patent application No. 62 / 915,442, filed October 15, 2019. The subject matter of these earlier applications is incorporated herein by reference in its entirety. Technical Field
[0003] This invention relates generally to Robotic Process Automation (RPA), and more specifically to the process evolution of RPA and / or the micro-optimization of RPA workflows. Background Technology
[0004] The implementation of RPA automation is often done piecemeal, with individual implementations planned and executed. However, this disjointed process is not optimal. Furthermore, the robot itself may not always be optimal. Therefore, improving the process can be beneficial. Summary of the Invention
[0005] Some embodiments of the present invention can provide solutions to problems and needs in the prior art where current RPA technology has not been fully identified, understood, or resolved. For example, some embodiments of the present invention relate to the process evolution of RPA and / or the micro-optimization of RPA workflows.
[0006] In one embodiment, a computer-implemented method includes: receiving a plan for implementing Robotic Process Automation (RPA) by a computing system. The plan includes business data. The computer-implemented method further includes: analyzing the business data associated with the plan by the computing system to measure, report RPA operations, and align the RPA operations with strategic business outcomes. The computer-implemented method also includes: generating one or more RPA workflows for automation by the computing system based on the analysis; and generating and deploying one or more RPA workflows by the computing system via an RPA robot.
[0007] In another embodiment, a computer-implemented method includes: performing analysis by a computing system on business data associated with a plan for implementing Robotic Process Automation (RPA) to measure, report, and align RPA operations with strategic business outcomes. The computer-implemented method further includes: generating one or more RPA workflows for automation by the computing system based on the analysis; and generating and deploying one or more RPA workflows via an RPA robot by the computing system.
[0008] In another embodiment, a computer-implemented method includes: analyzing and prioritizing each activity in a Robotic Process Automation (RPA) workflow based on performance criteria by a computing system. The computer-implemented method further includes: adding or deleting activities from the RPA workflow by the computing system to create a modified RPA workflow; and generating and running an RPA robot that implements the modified RPA workflow by the computing system. The computer-implemented method also includes: testing the generated RPA robot by the computing system to determine whether the RPA robot meets the objectives and achieves improvements in the performance criteria. Attached Figure Description
[0009] To facilitate understanding of the advantages of certain embodiments of the present invention, the invention briefly described above will be described in more detail with reference to the specific embodiments shown in the accompanying drawings. While it should be understood that these drawings depict only typical embodiments of the invention and are therefore not intended to limit its scope, the invention will be described and explained using additional features and details illustrated in the drawings, in which:
[0010] Figure 1 This is an architectural diagram of an RPA system according to an embodiment of the present invention.
[0011] Figure 2 This is an architectural diagram of a deployed RPA system according to an embodiment of the present invention.
[0012] Figure 3 This is an architecture diagram illustrating the relationship between the designer, activity, and driver according to an embodiment of the present invention.
[0013] Figure 4 This is an architectural diagram of an RPA system according to an embodiment of the present invention.
[0014] Figure 5 This is an architectural diagram illustrating a computing system configured to perform process evolution for RPA according to an embodiment of the present invention.
[0015] Figure 6 This is an architectural diagram illustrating a system configured to implement process evolution for RPA and / or perform RPA workflow micro-optimization according to an embodiment of the present invention.
[0016] Figure 7 This is a flowchart illustrating a process configured to implement process evolution for RPA according to an embodiment of the present invention.
[0017] Figure 8 This is a flowchart illustrating a process configured to perform RPA workflow micro-optimization according to an embodiment of the present invention. Detailed Implementation
[0018] Some embodiments involve the process evolution of RPA and / or the micro-optimization of RPA workflows. Typically, when considering automation, an integrated system should be considered. This integrated system can bring together multiple components such as planning, measurement, and implementation components.
[0019] Initially, RPA implementations can be scientifically planned using artificial intelligence (AI). Embedded analytics can be used to measure, report on, and align RPA operations with strategic business outcomes. RPA can then be implemented through an AI architecture that deploys AI skills (e.g., in the form of machine learning (ML) models), seamlessly applying, scaling, and managing AI for RPA workflows used by robots. This cycle of planning, measuring, and reporting can be repeated and guided by increasing amounts of AI to iteratively improve the effectiveness of RPA for business use. RPA implementations can also be identified and implemented based on their estimated return on investment (ROI).
[0020] In some embodiments, a Subject Matter Expert (SME) can display and log how specific processes are performed. The SME can then generate bots based on these processes. In some embodiments, listeners (e.g., bots that mine data about user actions) can be deployed on the user's computing system to determine what paths the user is taking, which applications the user is using, how the user is using those applications, and so on.
[0021] In some embodiments, different methods exist for discovering and documenting the process. For example, users of a computing system can submit automation ideas. In another example, users can collaboratively build or collaboratively construct an automation library for an enterprise based on the concept of automation. The developed robot can be added to a profile that other users can access and use. In some embodiments, a robot can access the profiles of other robots.
[0022] In some embodiments, if the user knows which process he or she wants to automate, the user can record the process (e.g., by recording video of the user using his or her computing system). The video can then be analyzed to determine whether automation is feasible. In some embodiments, the user can use a supervisory documentation tool capable of recording to define use cases.
[0023] Some implementations offer fine-tuning of the process. For example, consider a scenario where a user has built a 20-step workflow for an RPA bot, but two of those steps are actually unnecessary. The system can remove one or more steps and generate a bot that implements the modified workflow, then check if the workflow is interrupted. If it is not interrupted, the modified workflow can be used to generate a new version of the bot, which can then be deployed to replace the previous version.
[0024] In some embodiments, certain steps can be targeted relative to other steps. For example, the system can determine how long each step takes to execute and delete steps, and test the modified workflow in order from longest to shortest completion time. Therefore, the system can identify steps that can be removed and that also have a significant impact on the overall workflow execution time.
[0025] In some embodiments, the system can add and / or remove steps to examine whether the achieved ROI has improved based on a reward function (e.g., a reward function for reinforcement learning). This can be determined by an increase in revenue generated, a reduction in processing time, an increase in employee productivity, etc. If adding and / or removing one or more steps results in an improvement, a robot implementing the modified workflow can be generated and deployed.
[0026] Figure 1 This is an architectural diagram illustrating an RPA system 100 according to an embodiment of the present invention. The RPA system 100 includes a designer 110 that allows developers to design and implement workflows. The designer 110 can provide solutions for application integration and automation of third-party applications, management of information technology (IT) tasks, and business IT processes. The designer 110 can facilitate the development of automation projects, which are graphical representations of business processes. In short, the designer 110 facilitates the development and deployment of workflows and robots.
[0027] Automation projects enable rule-based process automation by giving developers control over the execution sequence and the relationships between custom sets of steps developed within a workflow; in this document, workflow is defined as an "activity." A commercial example of an embodiment of Designer 110 is UiPath Studio. TM Each activity can include actions such as clicking a button, reading a file, or writing to a record panel. In some embodiments, workflows can be nested or embedded.
[0028] Workflow types can include, but are not limited to, sequences, flowcharts, finite state machines (FSMs), and / or global exception handlers. Sequences are particularly well-suited for linear processes, enabling flow from one activity to another without making the workflow chaotic. Flowcharts are particularly well-suited for more complex business logic, enabling the integration of decisions and the connection of activities in more diverse ways through multiple branching logic operators. FSMs are particularly well-suited for large workflows. FSMs can use a finite number of states in their execution, triggered by conditions (i.e., transitions) or activities. Global exception handlers are particularly well-suited for determining workflow behavior when execution errors are encountered and for debugging the process.
[0029] Once the workflow is developed in designer 110, commander 120 coordinates the execution of the business process. Commander 120 coordinates one or more robots 130 to execute the workflow developed in designer 110. A commercial example of a commander 120 implementation is the UiPath Orchestrator. TM Commander120 facilitates the creation, monitoring, and deployment of resources within the management environment. Commander120 can also serve as an integration point for third-party solutions and applications.
[0030] Commander 120 can manage the formation of robots 130, connect to and execute robots 130 from a central point. The types of robots 130 that can be managed include, but are not limited to: manned robots 132, unmanned robots 134, development robots (similar to unmanned robots 134, but used for development and testing purposes), and non-production robots (similar to manned robots 132, but used for development and testing purposes). Manned robots 132 are triggered by user events and work alongside humans on the same computing system. Manned robots 132 can be used with commander 120 for centralized process deployment and recording media. Manned robots 132 can assist human users in performing various tasks and can be triggered by user events. In some embodiments, processes cannot be initiated from commander 120 on this type of robot, and / or they cannot run under a locked screen. In some embodiments, manned robots 132 can only be initiated from a robot tray or from a command prompt. In some embodiments, manned robots 132 should operate under human supervision.
[0031] Unattended robot 134 operates unattended in a virtual environment and can automate several processes. Unattended robot 134 can be responsible for remote execution, monitoring, scheduling, and providing support for work queues. In some embodiments, debugging for all robot types can be performed in designer 110. Both manned and unattended robots can automate various systems and applications, including but not limited to mainframes, web applications, VMs, and enterprise applications (e.g., by...). Applications for production, and applications for computing systems (e.g., desktop and laptop applications, mobile device applications, wearable computing applications, etc.).
[0032] Commander 120 may have various functions, including but not limited to provisioning, deployment, configuration, queuing, monitoring, logging, and / or providing interconnectivity. Provisioning may include: creating and maintaining connections between robot 130 and commander 120 (e.g., a web application). Deployment may include: ensuring that data packet versions are correctly delivered to the designated robot 130 for execution. Configuration may include the maintenance and delivery of robot environment and process configurations. Queuing may include: providing management of queues and queue items. Monitoring may include: tracking robot identification data and maintaining user licenses. Logging may include: storing and indexing records to a database (e.g., an SQL database) and / or another storage mechanism (e.g., providing the ability to store and quickly query large datasets). Commander 120 can provide interconnectivity by acting as a centralized communication point for third-party solutions and / or applications.
[0033] Robot 130 is the execution agent that runs the workflow built into Designer 110. A commercial example of some embodiments of (multiple) robots 130 is UiPath Robots. TM In some embodiments, Robot 130 has Microsoft installed by default. Services managed by the Service Control Manager (SCM). Therefore, this type of robot 130 can open interactive windows under the local system account. Conversation, and has Service permissions.
[0034] In some embodiments, robots 130 can be installed in user mode. For such robots 130, this means they have the same rights as a user of a given robot 130 that has already been installed. This functionality can also be used for high-density (HD) robots, ensuring that the maximum potential of each robot in the system is fully utilized. In some embodiments, any type of robot 130 can be configured in an HD environment.
[0035] In some embodiments, the robot 130 is divided into multiple components, each dedicated to a specific automation task. The robot components in some embodiments include, but are not limited to, SCM-managed robot services, user-mode robot services, executors, agents, and command lines. The SCM-managed robot services... The session is managed and monitored, and acts as an intermediary between the command provider 120 and the execution host (i.e., the computing system on which robot 130 executes). These services can be delegated and manage credentials for robot 130. The SCM launch console application is located on the local system.
[0036] In some embodiments, user-mode robot service management and monitoring The session acts as a proxy between the command party 120 and the execution host. The user-mode robot service can be delegated and manage credentials for robot 130. If an SCM-managed robot service is not installed, then... The application can start automatically.
[0037] The executor can A given job runs within a session (i.e., they can execute workflows). The executor can know the dots per inch (DPI) setting for each monitor. The agent can display available jobs in a system tray window. Presents the underlying (WPF) application. A proxy can be a client of a service. A proxy can request to start or stop a job and change settings. The command line is a client of the service. The command line is a console application that can request to start a job and wait for its output.
[0038] Separating the components of robot 130 as described above helps developers, support users, and computing systems more easily run, identify, and track what each component is performing. Special behaviors can be configured for each component in this way, such as setting different firewall rules for the executor and the service. In some embodiments, the executor can always know the DPI setting of each monitor. Therefore, workflows can be executed at any DPI, regardless of the configuration of the computing system that created the workflow. In some embodiments, projects from designer 110 can also be independent of browser scaling levels. For applications that do not know the DPI or are intentionally marked as not knowing it, DPI can be disabled in some embodiments.
[0039] Figure 2 This is an architectural diagram illustrating a deployed RPA system 200 according to an embodiment of the present invention. In some embodiments, the RPA system 200 may be... Figure 1 The RPA system 100, or a portion thereof, is used. It should be noted that the client side, server side, or both can include any desired number of computing systems without departing from the scope of the invention. On the client side, the robot application 210 includes an executor 212, an agent 214, and a designer 216. However, in some embodiments, the designer 216 may not run on the computing system 210. The executor 212 is running a process. Multiple business processes can run simultaneously, such as... Figure 2 As shown. In this embodiment, agent 214 (e.g., The service is a single point of contact for all executors 212. All messages in this embodiment are recorded in the commanding party 230, which further processes them via a database server 240, an indexer server 250, or both. (See above regarding...) Figure 1 The executor 212 may be a robot component.
[0040] In some embodiments, a robot represents an association between a machine name and a username. A robot can manage multiple actors simultaneously. In computing systems that support multiple concurrently running interactive sessions (e.g., On a server (2012), multiple bots can run simultaneously, each using a unique username on a separate server. Running in a session. This is the HD robot mentioned above.
[0041] Agent 214 is also responsible for sending the robot's status (e.g., periodically sending "heartbeat" messages indicating that the robot is still running) and downloading the required version of the data package to be executed. In some embodiments, communication between agent 214 and the controller 230 is always initiated by agent 214. In a notification scenario, agent 214 may open a WebSocket channel that the controller 230 subsequently uses to send commands (e.g., start, stop, etc.) to the robot.
[0042] On the server side, there are a presentation layer (web application 232, Open Data Protocol (OData) REST Application Programming Interface (API) endpoint 234, and notification and monitoring 236), a service layer (API implementation / business logic 238), and a persistence layer (database server 240 and indexer server 250). The command center 230 includes the web application 232, the OData REST API endpoint 234, the notification and monitoring 236, and the API implementation / business logic 238. In some embodiments, most actions performed by the user in the interface of the command center 230 (e.g., via browser 220) are performed by calling various APIs. Such actions may include, but are not limited to, starting a job on a robot, adding / removing data from a queue, scheduling a job for unattended operation, etc., without departing from the scope of the invention. The web application 232 is the visual layer of the server platform. In this embodiment, the web application 232 uses Hypertext Markup Language (HTML) and JavaScript (JS). However, any desired markup language, scripting language, or any other format may be used without departing from the scope of the invention. In this embodiment, the user interacts with a webpage from web application 232 via browser 220 to perform various actions to control the command unit 230. For example, the user can create robot groups, assign data packets to robots, analyze the records of each robot and / or each process, start and stop robots, etc.
[0043] In addition to web application 232, the controller 230 also includes a service layer that exposes an OData REST API endpoint 234. However, other endpoints may be included without departing from the scope of the invention. The REST API is consumed by both web application 232 and agent 214. In this embodiment, agent 214 is the controller of one or more robots on the client computer.
[0044] The REST API in this embodiment covers configuration, logging, monitoring, and queuing functions. In some embodiments, the configuration endpoint can be used to define and configure application users, licenses, bots, assets, publications, and environments. The logging REST endpoint can be used to log various information, such as errors, explicit messages sent by the bot, and other environment-specific information. If a start job command is used in the command center 230, the bot can use the deployment REST endpoint to query the version of the data packet that should be executed. The queuing REST endpoint can be responsible for queue and queue item management, such as adding data to the queue, retrieving transactions from the queue, and setting the status of transactions.
[0045] The monitoring REST endpoint can monitor web application 232 and agent 214. The notification and monitoring API 236 can be a REST endpoint used to register agent 214, deliver configuration settings to agent 214, and send / receive notifications from the server and agent 214. In some embodiments, the notification and monitoring API 236 can also use WebSocket communication.
[0046] In this embodiment, the persistence layer includes a server pair—a database server 240 (e.g., an SQL server) and an indexer server 250. In this embodiment, the database server 240 stores configurations for robots, robot groups, related processes, users, roles, schedules, etc. In some embodiments, this information is managed via a web application 232. The database server 240 can manage queues and queue items. In some embodiments, the database server 240 can store messages recorded by the robots (attached to or replacing the indexer server 250).
[0047] Indexer server 250 (which is optional in some embodiments) stores and indexes the information recorded by the robot. In some embodiments, indexer server 250 can be disabled by configuration settings. In some embodiments, indexer server 250 uses... (It is an open-source full-text search engine project). Messages recorded by the robot (e.g., activities such as using record messages or writing lines) can be sent to indexer server 250 via (multiple) record REST endpoints, where they are indexed for future use.
[0048] Figure 3 This is an architectural diagram illustrating the relationship 300 between designer 310, activities 320, 330, and driver 340 according to an embodiment of the present invention. As described above, the developer uses designer 310 to develop workflows executed by a robot. The workflow may include user-defined activities 320 and UI automation activities 330. Some embodiments are capable of identifying non-textual visual components in an image, referred to herein as computer vision (CV). Some CV activities associated with these components may include, but are not limited to, clicking, typing, text retrieval, hovering, element presence, refreshing range, highlighting, etc. In some embodiments, clicking identifies an element using, for example, CV, optical character recognition (OCR), fuzzy text matching, and multi-anchor points, and the element is clicked. Typing identifies an element using the types described above and elements. Retrieving text identifies the location of specific text and scans it using OCR. Hovering identifies an element and hovers over it. Element presence checks the presence of an element on the screen using the techniques described above. In some embodiments, there may be hundreds or even thousands of activities that can be implemented in designer 310. However, any number and / or type of activities are available without departing from the scope of the invention.
[0049] UI automation activity 330 is a subset of specific low-level activities written in low-level code (e.g., CV activities) and facilitates interaction with the screen. UI automation activity 330 facilitates these interactions via driver 340, which allows the robot to interact with desired software. For example, driver 340 may include OS driver 342, browser driver 344, VM driver 346, enterprise application driver 348, etc.
[0050] Driver 340 can interact with the OS at a lower level, searching for hooks, monitoring keys, etc. They can facilitate... Integration of technologies such as "click" and "click" functions. For example, the "click" activity performs the same role in these different applications via driver 340.
[0051] Figure 4 This is an architectural diagram illustrating an RPA system 400 according to an embodiment of the present invention. In some embodiments, the RPA system 400 may be or may include... Figure 1 and / or Figure 2 The RPA system 100 and / or 200. The RPA system 400 includes multiple client computing systems 410 that operate the robot. The computing systems 410 are able to communicate with the command computing system 420 via a web application running on them. The command computing system 420, in turn, is able to communicate with a database server 430 and an optional indexer server 440.
[0052] about Figure 1 and Figure 3 It should be noted that while web applications are used in these embodiments, any suitable client / server software can be used without departing from the scope of the invention. For example, the commanding party can run a server-side application that communicates with a non-web-based client software application on a client computing system.
[0053] Figure 5 This is an architectural diagram illustrating a computing system 500 configured to perform process evolution for RPA according to an embodiment of the present invention. In some embodiments, the computing system 500 may be one or more computing systems depicted and / or described herein. The computing system 500 includes a bus 505 or other communication mechanism for transmitting information, and multiple processors 510 coupled to the bus 505 for processing information. The multiple processors 510 may be any type of general-purpose or special-purpose processor, including a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a graphics processing unit (GPU), multiple instances thereof, and / or any combination thereof. The multiple processors 510 may also have multiple processing cores, and at least some of these cores may be configured to perform specific functions. In some embodiments, multi-parallel processing may be used. In some embodiments, at least one of the multiple processors 510 may be a neuromorphic circuit including processing elements that simulate biological neurons. In some embodiments, the neuromorphic circuit may not require typical components of a von Neumann computing architecture.
[0054] The computing system 500 also includes a memory 515 for storing information and instructions to be executed by the processor(s) 510. The memory 515 may consist of random access memory (RAM), read-only memory (ROM), flash memory, cache, static storage such as a disk or optical disk, or any other type of non-transitory computer-readable medium or any combination thereof. The non-transitory computer-readable medium may be any available medium accessible by the processor(s) 510 and may include volatile media, non-volatile media, or both. The medium may also be removable, non-removable, or both.
[0055] Additionally, the computing system 500 includes a communication device 520, such as a transceiver, to provide access to a communication network via a wireless and / or wired connection. In some embodiments, the communication device 520 may be configured to use Frequency Division Multiple Access (FDMA), Single Carrier FDMA (SC-FDMA), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiplexing (OFDM), Orthogonal Frequency Division Multiple Access (OFDMA), Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), CDMA2000, Wideband CDMA (W-CDMA), High-Speed Downlink Packet Access (HSDPA), High-Speed Uplink Packet Access (HSDPA), etc. This invention may include, without departing from the scope of the invention, High-Speed Packet Access (HSUPA), High-Speed Packet Access (HSPA), LTE-A Advanced (LTE-A), 802.11x, Wi-Fi, Zigbee, Ultra Wideband (UWB), 802.16x, 802.15, Home Node B (HnB), Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Near Field Communication (NFC), 5G, New Radio (NR), any combination thereof, and / or any other existing or future communication standard and / or protocol. In some embodiments, the communication device 520 may include one or more antennas, which may be single, arrayed, phased, switched, beamformed, beamcontrolled, combinations thereof, and / or any other antenna configuration, without departing from the scope of the invention.
[0056] Multiple processors 510 are also coupled via bus 505 to a display 525, such as a plasma display, liquid crystal display (LCD), light-emitting diode (LED) display, field emission display (FED), organic light-emitting diode (OLED) display, flexible OLED display, flexible substrate display, projection display, 4K display, high-definition display, etc. The display 525 can be a touch (haptic) display, an in-plane switching (IPS) display, or any other display suitable for displaying information to a user. The display 525 can be configured as a touch (haptic) display, a three-dimensional (3D) touch display, a multi-input touch display, a multi-touch display, etc. It can utilize resistors, capacitors, surface acoustic wave (SAW) capacitors, infrared, optical imaging, dispersive signal technology, acoustic impulse marking, suppressed total internal reflection, etc. Any suitable display device and haptic I / O can be used without departing from the scope of this invention.
[0057] Keyboard 530 and cursor control device 535 (such as a computer mouse, touchpad, etc.) are also coupled to bus 505 to enable user interaction with the computing system. However, in some embodiments, a physical keyboard and mouse may be absent, and the user may interact with the device solely through display 525 and / or touchpad (not shown). Any type and combination of input devices can be used, depending on design choice. In some embodiments, no physical input device and / or display is present. For example, a user may interact remotely with computing system 500 via another computing system communicating with computing system 500, or computing system 500 may operate autonomously.
[0058] Memory 515 stores software modules that provide functionality when executed by processor(s) 510. These modules include an operating system 540 for computing system 500. These modules also include process evolution modules 545 configured to perform all or part of the processes described herein or their derivatives. Computing system 500 may include one or more additional function modules 550 that include additional functionality.
[0059] Those skilled in the art will understand that "system" can be embodied as a server, embedded computing system, personal computer, console, personal digital assistant (PDA), cellular phone, tablet computing device, quantum computing system, or any other suitable computing device or combination of devices without departing from the scope of the invention. The foregoing description of functions as performed by the "system" is not intended to limit the scope of the invention in any way, but rather to provide one example of several embodiments of the invention. In fact, the methods, systems, and devices disclosed herein can be implemented in a localized and distributed manner consistent with computing technologies, including cloud computing systems.
[0060] It should be noted that some system features described in this specification have been represented as modules to more specifically emphasize their implementation independence. For example, modules can be implemented as hardware circuits, including custom-designed very large-scale integrated circuits (VLSI) or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. Modules can also be implemented in programmable hardware devices, such as field-programmable gate arrays, programmable array logic, programmable logic devices, graphics processing units, etc.
[0061] Modules can also be implemented at least partially in software for execution by various types of processors. Identified units of executable code can, for example, comprise one or more physical or logical blocks of computer instructions, which can be organized, for example, as objects, programs, or functions. However, the executable files of identified modules do not need to be physically located together, but can include different instructions stored in different locations that, when logically combined, constitute the module and achieve the described purpose for that module. Furthermore, modules can be stored on computer-readable media, which can be, for example, hard disk drives, flash memory devices, RAM, magnetic tape, and / or any other such non-transitory computer-readable media for storing data, without departing from the scope of the invention.
[0062] In practice, an executable code module can be a single instruction or multiple instructions, and can even be distributed across multiple different code segments, different programs, and multiple storage devices. Similarly, operational data can be identified and represented within the module, and can be materialized in any suitable form and organized within any suitable type of data structure. Operational data can be collected as a single dataset, or it can be distributed across different locations, including different storage devices, and can exist at least in part as electronic signals on a system or network.
[0063] Figure 6 This is an architectural diagram illustrating a system 600 configured to implement process evolution for RPA and / or perform RPA workflow micro-optimization according to an embodiment of the present invention. System 600 includes user computing systems such as a desktop computer 602, a tablet computer 604, and a smartphone 606. However, any desired computing system can be used, including but not limited to smartwatches, laptop computers, Internet of Things (IoT) devices, vehicle computing systems, etc., without departing from the scope of the present invention.
[0064] Each computing system 602, 604, 606 is equipped with a listener 610. The listener 610 may be a robot generated via an RPA designer application, a part of an operating system, a downloadable application for a personal computer (PC) or smartphone, or any other software and / or hardware, without departing from the scope of the invention. In fact, in some embodiments, the logic of one or more listeners 610 is partially or entirely implemented through physical hardware.
[0065] Listener 610 generates logs of user interactions with corresponding computing systems 602, 604, 606, and / or log data related to the operation of robots running on them. Listener 610 then sends the log data to server 630 via network 620 (e.g., local area network (LAN), mobile communication network, satellite communication network, the Internet, any combination thereof, etc.). The recorded data may include, but is not limited to, which buttons were clicked, where the mouse was moved, text entered in fields, whether a window was minimized and another was opened, the application associated with the window, etc. In some embodiments, server 630 may run a command application, and data may be sent periodically as part of a heartbeat message. In some embodiments, log data may be sent to server 630 once a predetermined amount of log data has been collected, after a predetermined time period has elapsed, or in both cases. Server 630 stores the log data received from listener 610 in database 640.
[0066] When instructed by a human user (e.g., an RPA engineer or data scientist), when a predetermined amount of log data has been collected, when a predetermined amount of time has elapsed since the last analysis, etc., server 630 accesses log data collected from various users by listener 610 from database 640 and processes the log data through multiple AI layers 632. AI layers 632 process the log data and identify one or more potential processes where ROI is improved, identify improvements to existing processes, or both. AI layers 632 can perform statistical modeling (e.g., Hidden Markov Models (HMMs)) and utilize deep learning techniques (e.g., Long Short-Term Memory (LSTM) deep learning, encoding of previously hidden states, etc.) and perform case identification to identify atomic instances of processes. For example, for invoice processing, completing an invoice can be a case. Therefore, the system determines where a case ends and where the next case begins. For example, opening an email can be the start of a case, and patterns in cases can be analyzed to identify variations and commonalities.
[0067] If a similar process already exists, server 630 can identify the similarity and know that the identified process should replace the existing process for similar automation that is not performing well. For example, the similarity between processes can be determined by common start and end points and some statistical commonalities in the steps taken in between. Commonalities can be determined by entropy, minimization of a process detection objective function, etc. In some embodiments, an objective function threshold can be automatically set, and this can be modified during training if a process previously identified as dissimilar by the system is indicated as similar by the user. Server 630 can then automatically generate a workflow including the identified process, generate a robot (or alternative robot) to implement the workflow, and push the generated robot to user computing systems 602, 604, 606 for execution.
[0068] Alternatively, in some embodiments, a designer application 652 on computing system 650 can present the suggested process from AI layer 632 to the RPA engineer. The RPA engineer can then review the workflow, make any desired changes, and then deploy the workflow to computing systems 602, 604, 606 via a bot, or have the bot deployed. For example, deployment can occur via a command-line application running on server 630 or another server, which can push the bot implementing the process to user computing systems 602, 604, 606. In some embodiments, this workflow deployment can be achieved via an automation manager function in the designer application, and the RPA engineer can implement the process in the bot simply by clicking a button.
[0069] Listener
[0070] To extract data related to actions taken by users on computing systems 602, 604, and 606, data can be extracted at the driver level on the client side (e.g., Figure 3 The driver 340 employs a listener 610 to extract data from whitelisted applications. For example, the listener 610 may record where a user clicked on the screen and in which application, keystrokes, which buttons were clicked, instances of user switching between applications, focus changes, emails sent, and the nature of those emails. Additionally or alternatively, the listener 610 may collect data related to robots running on computing systems 602, 604, 606. In some embodiments, robots performing various tasks to implement workflows may act as listeners for their own operations. This data can be used to generate high-fidelity logs of user interactions with computing systems 602, 604, 606 and / or the operations of the robots(s) running thereon.
[0071] In addition to or instead of generating log data for process extraction, some embodiments can provide insights into what a user is actually doing. For example, listener 610 can determine which applications a user is actually using, the percentage of time a user is using a given application, which features within an application a user is using, and which features they are not using. This information can be provided to administrators to make informed decisions about whether to update application licenses, whether not to update feature licenses or downgrade to cheaper versions with missing features, whether a user is not using applications that tend to make other employees more efficient so that the user can be properly trained, whether a user is spending significant time on non-work activities (e.g., checking personal emails or surfing the internet) or away from his or her desk (e.g., not interacting with the computing system), etc.
[0072] In some embodiments, detection updates can be pushed to listeners to improve their driver-level user interaction and / or robot operation detection and capture processes. In some embodiments, listener 610 may employ AI in its detection. In some embodiments, robots implementing processes from automated workflows can be automatically pushed to computing systems 602, 604, 606 via the respective listener 610.
[0073] Figure 7 This is a flowchart illustrating a process 700 configured to implement process evolution for RPA according to an embodiment of the present invention. The process begins at 710, receiving a plan for RPA implementation. The plan includes business data, which may include, but is not limited to, employee interactions with the computing system, financial information, time spent performing robot operations and / or workflow steps, etc. In some embodiments, the plan can be derived from processes automatically identified based on data collected by the robot using AI. Analysis is then performed on the business data at 720 to measure, report RPA operations, and align RPA operations with strategic business outcomes. For example, analysis may be used to determine revenue generated by employees and / or robots, time spent by robots performing workflow operations, time spent by employees completing business processes, etc.
[0074] Then, at point 730, an RPA workflow to achieve the desired automation is generated, and at point 740, the RPA workflow is deployed as an RPA bot. In some embodiments, the RPA bot can access AI skills through an AI architecture. After implementation, at point 750, data is collected from and analyzed from the business computing system, and at point 760, new processes with potential for automation are automatically identified and suggested via ML models. The process can then be iteratively repeated to improve the effectiveness of RPA across the enterprise.
[0075] Figure 8This is a flowchart illustrating a process 800 configured to perform micro-optimizations for an RPA workflow according to an embodiment of the present invention. The process begins (or starts from) Figure 7 (Continuing) At 810, each activity in the RPA workflow is analyzed and prioritized based on performance criteria. Performance criteria may include, but are not limited to, processing speed, revenue generated, employee productivity (e.g., speed), etc. At 820, activities are added to or removed from the RPA workflow to create a modified RPA workflow. In some embodiments, the activities to be added can be selected from a pool of activities categorized by the type of goal the workflow wants to accomplish (e.g., invoice processing, assisting in lead generation, automating actions taken by employees in other ways, etc.). Then at 830, an RPA robot implementing the modified RPA workflow is generated and run.
[0076] The generated RPA robot is then tested at step 840 to check if it has met the objectives and achieved the performance standard improvements. At step 850, if the RPA robot has not met the objectives, has not achieved the performance standard improvements, or has not achieved both, the system reverts to the original RPA workflow before the modification and returns to step 820 to add or remove another activity. However, if the RPA robot has met the objectives and achieved the performance standard improvements at step 850, the RPA robot is deployed at step 870, replacing the earlier version of the RPA robot.
[0077] Figure 7 and Figure 8 The processing steps in the process can be executed by a computer program, which encodes instructions for the processor to perform the task. Figure 7 and Figure 8 At least a portion of the processes(s) described herein. (Refer to...) Figure 7 According to embodiments of the present invention, a computer program may be embodied on a non-transitory computer-readable medium. The computer-readable medium may be, but is not limited to, hard disk drives, flash memory devices, RAM, magnetic tape, and / or any other such medium or combination of media for storing data. The computer program may include a processor for controlling a computing system (e.g., a...). Figure 5 The computing system 500 (processor 510) is used to achieve Figure 7 and Figure 8 The coded instructions for all or part of the processing steps described herein may also be stored on a computer-readable medium.
[0078] Computer programs can be implemented in hardware, software, or a hybrid approach. A computer program can consist of modules that are operable to communicate with each other and is designed to transmit information or instructions for display. A computer program can be configured to run on a general-purpose computer, an ASIC, or any other suitable device.
[0079] It is readily understood that the components of the various embodiments of the present invention, as generally described and illustrated in the accompanying drawings, can be arranged and designed in various different configurations. Therefore, as shown in the drawings, the detailed description of the embodiments of the present invention is not intended to limit the scope of the claimed invention, but is merely representative of selected embodiments of the invention.
[0080] The features, structures, or characteristics of the invention described herein can be combined in any suitable manner in one or more embodiments. For example, throughout the specification, references to "certain embodiments," "some embodiments," or similar language mean that a particular feature, structure, or characteristic described in connection with this embodiment is included in at least one embodiment of the invention. Therefore, the phrases "in some embodiments," "in some embodiments," "in other embodiments," or similar language appearing throughout the specification do not necessarily refer to the same set of embodiments, and the described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
[0081] It should be noted that the use of features, advantages, or similar language throughout this specification does not imply that all features and advantages achievable by the invention should be present in any single embodiment of the invention. Rather, language regarding features and advantages is to be understood as meaning that a particular feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the invention. Therefore, the discussion of features and advantages throughout this specification, as well as similar language, may refer to, but are not necessarily, the same embodiment.
[0082] Furthermore, the features, advantages, and characteristics described in this invention can be combined in any suitable manner in one or more embodiments. Those skilled in the art will recognize that this invention can be practiced without one or more specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
[0083] It will be readily understood by those skilled in the art that the present invention described above can be practiced using steps in a different order and / or using hardware elements with different configurations than those disclosed. Therefore, although the invention has been described based on these preferred embodiments, certain modifications, variations, and alternative structures will be apparent to those skilled in the art while remaining within the spirit and scope of the invention. Therefore, reference should be made to the appended claims to determine the limits and boundaries of the invention.
Claims
1. A computer-implemented method comprising: receiving, by a computing system, a plan for robotic process automation (RPA) implementation, the plan including business data; performing, by the computing system, an analysis on the business data associated with the plan to measure, report, and align RPA operations with strategic business outcomes; generating, by the computing system, one or more RPA workflows implementing automation based on the analysis, the one or more RPA workflows including a set of activities that define an order of execution and relationships of the set of activities to provide automation of one or more rule-based processes; generating and deploying, by the computing system, the one or more RPA workflows via one or more RPA robots as automation performed by the one or more RPA robots, wherein the deployed RPA workflows are configured to cause the one or more RPA robots to control and interact with respective computing systems using one or more drivers; and analyzing and prioritizing, by the computing system, each activity in the RPA workflows based on performance criteria.
2. The computer-implemented method of claim 1, wherein the business data includes employee interactions with computing systems, financial information, time spent performing robotic operations and / or workflow steps, or any combination thereof.
3. The computer-implemented method of claim 1, wherein the plan is derived from a process that is automatically identified from data collected by robots using artificial intelligence (AI).
4. The computer-implemented method of claim 1, wherein the analysis determines revenue generated by employees and / or robots, time spent performing workflow operations by robots, time spent completing business processes by employees, or any combination thereof.
5. The computer-implemented method of claim 1, further comprising: collecting and analyzing, by the computing system, data from business computing systems; and automatically identifying and suggesting, via one or more machine learning (ML) models, one or more new processes for potential automation.
6. The computer-implemented method of claim 5, further comprising: iteratively repeating the processes of performing an analysis on the business data associated with the plan, generating RPA workflows implementing automation based on the analysis, generating and deploying the generated workflows via RPA robots, collecting and analyzing data from business computing systems, and automatically identifying and suggesting one or more new processes for potential automation to increase effectiveness of RPA.
7. The computer-implemented method of claim 1, further comprising: adding or removing, by the computing system, activities to or from the RPA workflows to create modified RPA workflows; generating and running, by the computing system, RPA robots implementing the modified RPA workflows; and testing, by the computing system, the RPA robot generated to determine whether the RPA robot achieves the goal and realizes the improvement in the performance criteria.
8. The computer-implemented method of claim 7, wherein the determination of whether the RPA robot achieves the goal and realizes the improvement in the performance criteria is based on a reward function.
9. The computer-implemented method of claim 7, wherein when the RPA robot does not achieve the goal, does not realize the improvement in the performance criteria, or both, the method further comprises: reverting to the RPA workflow before the modification; and adding another activity to the RPA workflow or deleting another activity from the RPA workflow by the computing system, generating an RPA robot that realizes the modification to the RPA workflow, and testing the RPA robot generated.
10. The computer-implemented method of claim 7, wherein when the RPA robot achieves the goal and realizes the improvement in the performance criteria, the method further comprises: deploying, by the computing system, the RPA robot.
11. A computer-implemented method comprising: performing, by a computing system, an analysis on business data associated with a plan for a robotic process automation (RPA) implementation to measure, report, and align RPA operations with strategic business outcomes; generating, by the computing system, one or more RPA workflows that implement automation based on the analysis, the one or more RPA workflows comprising a set of activities that define an order of execution and relationships of the set of activities to provide automation of one or more rules-based processes; and generating and deploying, by the computing system, the one or more RPA workflows via one or more RPA robots as automation performed by the one or more RPA robots, wherein the deployed RPA workflows are configured to cause the one or more RPA robots to control and interact with respective computing systems using one or more drivers; and analyzing and prioritizing, by the computing system, each activity in the RPA workflows based on performance criteria.
12. The computer-implemented method of claim 11, wherein the business data comprises employee interactions with computing systems, financial information, time spent performing robotic operations and / or workflow steps, or any combination thereof.
13. The computer-implemented method of claim 11, wherein the plan is derived from processes that are automatically identified from data collected by robots using artificial intelligence (AI).
14. The computer-implemented method of claim 11, wherein the analysis determines revenue generated by employees and / or robots, time spent performing workflow operations by robots, time spent completing business processes by employees, or any combination thereof.
15. The computer-implemented method of claim 11, further comprising: collecting and analyzing, by the computing system, data from business computing systems; and automatically identifying and suggesting one or more new processes for potential automation via one or more machine learning (ML) models.
16. The computer-implemented method of claim 15, further comprising: iteratively repeating the process of performing analysis on the business data associated with the plan, generating an RPA workflow that implements automation based on the analysis, generating and deploying the generated workflow via an RPA robot, collecting and analyzing data from business computing systems, and automatically identifying and suggesting one or more new processes for potential automation, thereby increasing the effectiveness of RPA.
17. A computer-implemented method comprising: analyzing and prioritizing, by a computing system, each activity in a robotic process automation (RPA) workflow based on performance criteria associated with each activity in the RPA workflow, the RPA workflow comprising a set of activities that define an order of execution and relationships of the set of activities to provide automation of one or more rule-based processes; adding or removing, by the computing system, an activity to or from the RPA workflow to create a modified RPA workflow; generating and running, by the computing system, an RPA robot that implements the modified RPA workflow as automation performed by the RPA robot; and testing, by the computing system, the generated RPA robot to determine whether the RPA robot achieves a goal and implements an improvement in the performance criteria, wherein the deployed RPA workflow is configured to cause the RPA robot to control and interact with a computing system using one or more drivers.
18. The computer-implemented method of claim 17, wherein when the RPA robot does not achieve the goal, does not implement the improvement in the performance criteria, or both, the method further comprises: reverting to the RPA workflow prior to the modification; and adding or removing, by the computing system, another activity to or from the RPA workflow, generating an RPA robot that implements the modified RPA workflow, and testing the generated RPA robot.
19. The computer-implemented method of claim 17, wherein when the RPA robot achieves the goal and implements the improvement in the performance criteria, the method further comprises: deploying, by the computing system, the RPA robot.
Citation Information
Patent Citations
Robotic operations control system for blended workforce
CN109426543A
System and mechanism to create autonomic business process solutions
US20050108022A1
Healthcare workflow system
US20170372442A1