Support for Robotic Process Automation (RPA) - Robotic Task Automation

AI/ML models in RPA robots address inefficiencies in UI automation by analyzing user interactions and generating workflows, enhancing productivity and efficiency in workplace communications.

JP7757396B2Active Publication Date: 2025-10-21UIPATH INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023518990
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-14
Filing Date
2021-10-05
Publication Date
2025-10-21
Estimated Expiration
2041-10-05

AI Technical Summary

Technical Problem

Current UI automation technologies fail to efficiently automate repetitive workplace communications, leading to reduced employee productivity and delayed actions.

Method used

Implementing AI/ML models in RPA robots to monitor user interactions, analyze patterns, and automatically generate and deploy workflows for initiating and responding tasks across multiple computing systems.

Benefits of technology

Enhances productivity by automating routine communications, reducing delays, and improving workflow efficiency through intelligent task automation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007757396000001
    Figure 0007757396000001
  • Figure 0007757396000002
    Figure 0007757396000002
  • Figure 0007757396000003
    Figure 0007757396000003
Patent Text Reader

Abstract

This paper discloses task automation using support robots for robotic process automation (RPA). The RPA robots can be located on and / or remotely from two or more users' computing systems. The RPA robots can use artificial intelligence (AI) / machine learning (ML) models trained to use computer vision (CV) to recognize tasks each user is performing on the computing system. The RPA robots can then determine that each user is regularly performing a particular task and automate the respective task in response to a specific action, such as receiving a request via email or other application, determining that a particular task has been completed, or indicating that a certain period of time has passed.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This is an international application claiming the benefit of and priority to U.S. Patent Application No. 17 / 070,206, filed October 14, 2020. The subject matter of this previously filed application is incorporated herein by reference in its entirety.

[0002] The present invention relates generally to user interface (UI) automation, and more particularly to supporting robotic task automation for robotic process automation (RPA). [Background technology]

[0003] Various communications and approvals are common in the workplace. For example, an employee may need supervisor approval before taking certain actions, status reports may be sent periodically and / or after completing certain tasks, emails with specific content may be sent periodically, etc. Such communications may reduce employee productivity and / or delay certain actions. Therefore, an improved approach may be beneficial. Summary of the Invention

[0004] Certain embodiments of the present invention may provide solutions to problems and needs in the field that have not yet been fully identified, appreciated, or solved by current UI automation technology. For example, some embodiments of the present invention relate to supporting robotic task automation for RPA.

[0005] In an embodiment, the system includes a first user computing system including a server and a first listener RPA robot. The first listener RPA robot is configured to monitor a first user's interactions with the first computing system and provide data regarding the first user's interactions to the server. The system also includes a second user computing system including a second listener RPA robot. The second listener RPA robot is configured to monitor a second user's interactions with the second computing system and provide data regarding the second user's interactions to the server. The server is configured to use an AI / ML model to determine, based on the data regarding the first user and second user's interactions, that the first user will perform an initiating task and the second user will perform a responding task. The server is also configured to generate and deploy respective automations that automate the initiating task on the first computing system and the responding task on the second computing system.

[0006] In another embodiment, a computer-implemented method includes invoking, by a supervisory RPA robot, an AI / ML model configured to analyze data including interactions of users of a plurality of user computing systems and communications between at least a subset of the plurality of user computing systems. The computer-implemented method also includes determining, by the supervisory RPA robot based on the analysis by the AI / ML model, that when the initiating task is performed by one or more computing systems of the plurality of user computing systems, one or more response tasks are to be performed by one or more other user computing systems of the plurality of user computing systems. The computer-implemented method further includes generating, by the supervisory RPA robot, respective RPA robots that implement the initiating task and the one or more response tasks and deploying them to the respective user computing systems.

[0007] In yet another embodiment, a non-transitory computer-readable medium stores a computer program. The computer program is configured to cause at least one processor to execute a supervisory RPA robot that invokes an AI / ML model configured to analyze data including interactions of users of a plurality of user computing systems and communications between at least a subset of the plurality of user computing systems. The computer program is also configured to cause the supervisory RPA robot to determine, based on analysis by the AI / ML model, that when an initiating task is performed by one or more computing systems of the plurality of user computing systems, one or more response tasks are to be performed by one or more other user computing systems of the plurality of user computing systems. The computer program is further configured to cause the at least one processor to generate respective RPA workflows that implement the initiating task, the one or more response tasks, or both. Each RPA workflow includes an activity that implements a user interaction associated with the respective task. [Brief explanation of the drawings]

[0008] So that the advantages of particular embodiments of this invention may be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments which are illustrated in the accompanying drawings. It is to be understood that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope, but the invention will be described and explained with additional specificity and detail through the use of the following accompanying drawings, in which:

[0009] [Figure 1] FIG. 1 is an architectural diagram illustrating a robotic process automation (RPA) system, according to an embodiment of the present invention.

[0010] [Figure 2] FIG. 1 is an architectural diagram illustrating a deployed RPA system according to an embodiment of the present invention.

[0011] [Figure 3] FIG. 2 is an architecture diagram illustrating the relationships between designers, activities, and drivers according to an embodiment of the present invention.

[0012] [Figure 4] FIG. 1 is an architectural diagram illustrating an RPA system according to an embodiment of the present invention.

[0013] [Figure 5] FIG. 1 is an architectural diagram illustrating a computing system configured to perform assistive robotic task automation for RPA, according to an embodiment of the present invention.

[0014] [Figure 6] FIG. 1 is an architecture diagram illustrating a system configured to perform task automation by an assistive robot for RPA, according to an embodiment of the present invention.

[0015] [Figure 7] FIG. 1 is an architectural diagram illustrating a system configured to monitor communications between computing systems and perform task automation with RPA robots, according to an embodiment of the present invention.

[0016] [Figure 8] 1 is a flowchart illustrating a process for performing task automation by a support robot for RPA, according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0017] Unless otherwise noted, like reference characters denote corresponding features consistently throughout the accompanying drawings.

[0018] Detailed Description of the Embodiments Some embodiments relate to task automation using support robots for RPA. The RPA support robots may be located on the computing systems of two or more users and / or at remote locations (e.g., on a server). For example, an RPA robot may be located on a manager's computing system and another RPA robot may be located on the computing system of an employee who reports to the manager. The RPA robot may use an artificial intelligence (AI) / machine learning (ML) model trained to use computer vision (CV) to recognize tasks that users are performing on the computing system. The RPA robot may then determine that a user is performing a particular task periodically in response to a particular action, such as receiving a request via email or other application, determining that a particular task has been completed, or indicating that a certain period of time has passed.

[0019] After a task is recognized, the RPA robot can suggest automation to the user, or automation can be implemented automatically. For example, the RPA robot may display a pop-up window informing the user that the RPA robot noticed that the user would send an approval request to their manager after receiving an invoice over a certain amount containing specific content. If the user agrees that this automation would be beneficial, the robot may suggest a suggested action to the user, such as sending an email containing content that is likely to appear in the user's approval request email. The robot may then enter a training phase, in which content to be sent is first suggested to the user. If the content is incorrect, the user may mark the incorrect content and instructions for the correct content. The AI / ML model may be retrained when a correction is provided, after a certain number of corrections have been provided, after a certain period of time has passed, etc., or an alternative AI / ML model may be trained. Once a certain level of confidence is gained, the RPA robot may automatically execute the action without user interaction.

[0020] In some embodiments, an RPA robot may monitor communications between two computing systems. For example, an RPA robot may be located on a mail server system and analyze emails sent back and forth between two employees. This may occur with or without supplemental content from the user computing system, such as analysis of the user's screen and what was occurring on each computing system when the email was sent or received. The server-side RPA robot may determine context not available to any RPA robot on the user computing system alone and suggest actions to each robot to make the process more efficient. For example, the server-side RPA robot may notice that certain content is routinely requested by a manager, intercept the email, and notify the RPA robot on the sender system that the information is missing and needs to be supplied.

[0021] In some embodiments, an RPA robot or other listener / recorder process may monitor user interactions with its respective computing system. The listener / recorder process may determine recurring user actions and content. In some embodiments, the reasons for the user actions may also be determined. The recorder / listener process then suggests automations to the user or automatically creates automations (e.g., by creating an RPA workflow with activities associated with the actions, generating an RPA robot that implements the workflow, and deploying the RPA robot to the user's computing system).

[0022] In some embodiments, there may be a training phase in which the recorder / listener process prompts the user before automating their actions and receives labeled training data to further train the AI / ML model. Alternatively, the automatically generated RPA robot may be initially rolled out to a subset of users, potentially further training the AI / ML model during this phase. Then, if the automation is successful / beneficial, the RPA robot may be rolled out to a broader group of user computing systems.

[0023] Consider the case where an AI / ML model initially learns to turn on lights at a certain time. However, as the days get longer or shorter, the lights may turn on too early or too late, and a user may manually turn the lights on or off to correct the error. The AI / ML model may learn to correct its actions and search other available information to try to find the reason. For example, based on information from a website with a sunrise / sunset table, the AI / ML model may determine that the times a user wants the lights on and off roughly correspond to dusk and dawn, respectively, at that location on that given date.

[0024] In some embodiments, a previously successful AI / ML model may be determined to have experienced such data and / or model drift. An RPA robot or other process may then return the AI / ML model to the training phase and retrain the model. Once accurate again, full automation may once again be possible.

[0025] In some embodiments, an RPA robot may be deployed on the server side in addition to or instead of an RPA robot deployed on an end-user computing system. The server-side RPA robot may have visibility into communications between multiple computing systems, such as noticing that when an email is sent from a first user to a second user, another related email was also sent from the second user to a third user. This may provide more context than a robot deployed on an end-user computing system alone can provide.

[0026] Certain embodiments may be employed in robotic process automation (RPA). FIG. 1 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 enables developers to design and implement workflows. The designer 110 provides solutions for application integration and automates third-party applications, management 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. Simply put, 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 order of execution and relationships between custom sets of steps developed in workflows, defined herein as "activities." One commercial example of an embodiment of the designer 110 is UiPath Studio™. Each activity may include an action such as clicking a button, reading a file, or writing to a log panel. In some embodiments, workflows may be nested or embedded.

[0028] Workflow types may include, but are not limited to, sequences, flowcharts, FSMs, and / or global exception handlers. Sequences may be particularly well-suited for linear processes, allowing the flow of one activity from another without cluttering the workflow. Flowcharts may be particularly well-suited for more complex business logic, allowing for the integration of decisions and the connection of activities in more diverse ways through multiple branching logic operators. FSMs may be particularly well-suited for large workflows. FSMs may use a finite number of states during their execution that are triggered by conditions (i.e., transitions) or activities. Global exception handlers may be particularly well-suited for determining workflow behavior when an execution error is encountered or for debugging the process.

[0029] Once a workflow is developed in Designer 110, the execution of the business process is orchestrated by Conductor 120, which coordinates one or more Robots 130 that execute the workflow developed in Designer 110. One commercial example of an embodiment of Conductor 120 is UiPath Orchestrator™. Conductor 120 facilitates the management of the creation, monitoring, and deployment of resources in an environment. Conductor 120 may act as, or one of, an integration point with third-party solutions and applications.

[0030] The conductor 120 may manage all robots 130, connecting and executing them from a centralized point. Types of robots 130 that may be managed include, but are not limited to, attended robots 132, unattended robots 134, development robots (similar to unattended robots 134 but used for development and testing purposes), and non-production robots (similar to attended robots 132 but used for development and testing purposes). Attended robots 132 are triggered by user events and operate side by side with humans on the same computing system. Attended robots 132 may be used with the conductor 120 for centralized process deployment and logging media. Attended robots 132 may assist human users in accomplishing various tasks and may be triggered by user events. In some embodiments, processes cannot be initiated from the conductor 120 on this type of robot, and / or they cannot be run under a locked screen. In certain embodiments, the attended robot 132 can only be launched from the robot tray or from a command prompt. The attended robot 132 preferably operates under human supervision in some embodiments.

[0031] Unattended robots 134 operate unattended in virtual environments and can automate many processes. Unattended robots 134 can be responsible for providing remote execution, monitoring, scheduling, and work queue support. Debugging for all robot types can be performed in designer 110 in some embodiments. Both attended and unattended robots can automate a variety of systems and applications, including, but not limited to, mainframes, web applications, VMs, enterprise applications (e.g., those produced by SAP®, Salesforce®, Oracle®, etc.), and computing system applications (e.g., desktop and laptop applications, mobile device applications, wearable computer applications, etc.).

[0032] The conductor 120 may have various capabilities, including, but not limited to, provisioning, deployment, versioning, configuration, queuing, monitoring, logging, and / or providing interconnectivity. Provisioning may include creating and maintaining connections between robots 130 and the conductor 120 (e.g., web applications). Deployment may include ensuring the correct delivery of package versions to robots 130 assigned to perform. Versioning, in some embodiments, may include managing unique instances of some processes or configurations. Configuration may include maintaining and delivering robot environments and process configurations. Queuing may include providing management of queues and queue items. Monitoring may include tracking robot-specific data and maintaining user permissions. Logging may include storing and indexing logs in a database (e.g., an SQL database) and / or another storage mechanism (e.g., ElasticSearch®, which stores large data sets and provides the ability to quickly query them). The conductor 120 may provide interconnectivity by operating as a centralized point of communication for third-party solutions and / or applications.

[0033] Robots 130 are execution agents that execute workflows built by designer 110. One commercial example of some embodiments of robot(s) 130 is UiPath Robots™. In some embodiments, robots 130 install the Microsoft Windows Service Control Manager (SCM) management service by default. As a result, such robots 130 can open interactive Windows sessions under the local system account and may have Windows service rights.

[0034] In some embodiments, a robot 130 can be installed in user mode, meaning that for such a robot 130, the robot has the same rights as the user to whom it is installed. This feature can also be used for high-density (HD) robots, ensuring maximum utilization of each machine. In some embodiments, either type of robot 130 can be configured in an HD environment.

[0035] In some embodiments, the robot 130 is divided into multiple components, each specialized for a specific automation task. In some embodiments, the robot components include, but are not limited to, an SCM-managed robot service, a user-mode robot service, an executor, an agent, and a command line. The SCM-managed robot service manages and monitors Windows sessions and acts as a proxy between the conductor 120 and the execution host (i.e., the computing system on which the robot 130 executes). These services are responsible for managing credentials for the robot 130. A console application is launched by the SCM under Local System.

[0036] The user-mode robot service in some embodiments manages and monitors Windows sessions and acts as a proxy between the conductor 120 and the execution host. The user-mode robot service may be delegated and manage credentials for the robot 130. If the SCM management robot service is not installed, a Windows application may be launched automatically.

[0037] An Executor may execute a given job under a Windows session (i.e., execute a workflow). An Executor may be aware of dots per inch (DPI) settings per monitor. An Agent may be a Windows Presentation Foundation (WPF) application that displays available jobs in a system tray window. An Agent may be a client of a service. An Agent may ask to start or stop a job or change settings. A Command Line is a client of a service. A Command Line is a console application that can request the start of a job and wait for its output.

[0038] As described above, the separation of the robot 130 components helps developers, support users, and computing systems more easily implement, identify, and track what each component is doing. In this way, special behaviors can be configured for each component, such as setting different firewall rules for executors and services. Executors may always be aware of per-monitor DPI settings in some embodiments. As a result, workflows may execute at any DPI regardless of the configuration of the computing system on which the workflow was created. Also, in some embodiments, projects from the designer 110 may be made independent of the browser zoom level. For applications that are not DPI-aware or are intentionally marked as not-aware, some embodiments may disable DPI.

[0039] FIG. 2 is an architecture diagram illustrating a deployed RPA system 200 according to an embodiment of the present invention. In some embodiments, the RPA system 200 may be or be part of the RPA system 100 of FIG. 1. It should be noted that the client side, the server side, or both may include any desired number of computing systems without departing from the scope of the present 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 be running on the computing system 210. The executor 212 executes processes. As shown in FIG. 2, multiple business projects may be running simultaneously. The agent 214 (e.g., a Windows service) is the single connection point for all executors 212 in this embodiment. All messages in this embodiment are logged to the conductor 230, which further processes them via the database server 240, the indexer server 250, or both. As described above with respect to FIG. 1, the executor 212 may be a robotic component.

[0040] In some embodiments, a Robot represents an association between a machine name and a username. A Robot may manage multiple executors simultaneously. In computing systems that support multiple interactive sessions running simultaneously (such as Windows Server 2012), multiple Robots may run simultaneously, each running in a separate Windows session using a unique username. This is referred to as an HD Robot above.

[0041] The agent 214 is also responsible for transmitting the robot's status (e.g., periodically sending "heartbeat" messages to indicate that the robot is still functioning) and downloading required versions of packages to be fulfilled. Communication between the agent 214 and the conductor 230 is, in some embodiments, always initiated by the agent 214. In notification scenarios, the agent 214 may open a WebSocket channel that is later used by the conductor 230 to send commands (e.g., start, stop, etc.) to the robot.

[0042] The server side includes a presentation layer (web application 232, Open Data Protocol (OData) Representational State Transfer (REST) ​​Application Programming Interface (API) endpoint 234, notification and monitoring 236), a service layer (API implementation / business logic 238), and a persistence layer (database server 240, indexer server 250). Conductor 230 includes web application 232, OData REST API endpoint 234, notification and monitoring 236, and API implementation / business logic 238. In some embodiments, most actions a user performs in the conductor 230 interface (e.g., via browser 220) are performed by calling various APIs. Such actions may include, but are not limited to, launching jobs on a robot, adding / removing data from a queue, scheduling jobs to run unattended, etc., without departing from the scope of the present invention. Web application 232 is the visual layer of the server platform. In this embodiment, 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 present invention. A user interacts with web pages from web application 232, in this embodiment via browser 220, to perform various operations to control conductor 230. For example, a user may create robot groups, assign packages to robots, analyze per-robot and / or per-process logs, start and stop robots, etc.

[0043] In addition to the web application 232, the conductor 230 also includes a services layer that exposes an OData REST API endpoint 234. However, other endpoints may be included without departing from the scope of the present invention. The REST API is consumed by both the web application 232 and the agent 214, which in this embodiment is a supervisor of one or more robots on a client computer.

[0044] The REST API of this embodiment covers configuration, logging, monitoring, and queuing functionality. The configuration endpoint, in some embodiments, may be used to define and configure users, permissions, robots, assets, releases, and environments for an application. The logging REST endpoint may be used to log various information, such as errors, explicit messages sent by robots, and other environment-specific information. The deployment REST endpoint may be used by robots to query the version of the package that should be executed when a start job command is used in conductor 230. The queuing REST endpoint may be responsible for managing queues and queue items, such as adding data to a queue, retrieving transactions from a queue, and setting the status of transactions.

[0045] Monitoring REST endpoints may monitor the web application 232 and the agents 214. The notification and monitoring API 236 may be a REST endpoint used to register the agents 214, deliver configuration settings to the agents 214, and send and receive notifications from the server and the agents 214. The notification and monitoring API 236 may use WebSocket communication in some embodiments.

[0046] The persistence layer, in this embodiment, includes a pair of servers—a database server 240 (e.g., SQL Server) and an indexer server 250. The database server 240 in this embodiment stores configurations for robots, robot groups, associated processes, users, roles, schedules, etc. This information is managed, in some embodiments, via a web application 232. The database server 240 may also manage queues and queue items. In some embodiments, the database server 240 may also store messages logged by robots (in addition to or instead of the indexer server 250).

[0047] Optionally in some embodiments, indexer server 250 stores and indexes information logged by the robots. In particular embodiments, indexer server 250 may be disabled via a configuration setting. In some embodiments, indexer server 250 uses ElasticSearch®, a full-text search engine from an open source project. Messages logged by the robots (e.g., using activities such as log messages or line writes) may be sent via logging REST endpoint(s) to indexer server 250, where they are indexed for future use.

[0048] FIG. 3 is an architecture diagram illustrating the relationships 300 between a designer 310, activities 320, 330, a driver 340, and an AI / ML model 350, according to an embodiment of the present invention. As can be seen, a developer uses the designer 310 to develop a workflow to be performed by the robot. The workflow may include user-defined activities 320 and UI automation activities 330. The user-defined activities 320 and / or UI automation activities 330, in some embodiments, may be located locally and / or remotely relative to the computing system on which the robot is operating and may invoke one or more AI / ML models 350. In some embodiments, non-text visual components in an image may be identified, referred to herein as computer vision (CV). Some CV activities associated with such components may include, but are not limited to, click, type, get text, hover, detect presence or absence of element, update scope, highlight, etc. In some embodiments, clicking identifies an element and clicks on it, for example, using CV, optical character recognition (OCR), fuzzy text matching, and multi-anchor. Type may identify an element using the above and types within elements. Get text may locate specific text and scan it using OCR. Hover may identify an element and hover over it. Detect element presence may verify whether an element is present on the screen using the techniques described above. In some embodiments, there may be hundreds or thousands of activities that can be implemented in designer 310. However, any number and / or types of activities may be utilized without departing from the scope of the present invention.

[0049] UI automation activities 330 are a subset of specialized low-level activities written in low-level code (e.g., CV activities) that facilitate interactions with a screen. UI automation activities 330 facilitate these interactions through drivers 340 and / or AI / ML models 350 that enable the robot to interact with desired software. For example, drivers 340 may include OS drivers 342, browser drivers 344, VM ​​drivers 346, enterprise application drivers 348, etc. One or more AI / ML models 350 may be used by UI automation activities 330 to determine the execution of interactions with the computing system. In some embodiments, AI / ML models 350 may augment or completely replace drivers 340. Indeed, in certain embodiments, drivers 340 are not included.

[0050] Drivers 340 may interact with the OS at a low level, such as by looking for hooks, monitoring keys, etc. They may facilitate integration with Chrome®, IE®, Citrix®, SAP®, etc. For example, a "click" activity plays the same role in these different applications via drivers 340.

[0051] FIG. 4 is an architecture diagram illustrating an RPA system 400, according to an embodiment of the present invention. In some embodiments, the RPA system 400 may be or include the RPA systems 100 and / or 200 of FIGS. 1 and / or 2. The RPA system 400 includes multiple client computing systems 410 that execute robots. The computing systems 410 can communicate with a conductor computing system 420 via web applications running thereon. The conductor computing system 420 can, in turn, communicate with a database server 430 and an optional indexer server 440.

[0052] 1 and 3, it should be noted that although web applications are used in these embodiments, any suitable client / server software may be used without departing from the scope of the present invention. For example, a conductor may run a server-side application on a client computing system that communicates with a non-web-based client software application.

[0053] FIG. 5 is an architectural diagram illustrating a computing system 500 configured to perform support robotic task automation for RPA, according to an embodiment of the present invention. In some embodiments, computing system 500 may be one or more of the computing systems depicted and / or described herein. Computing system 500 includes a bus 505 or other communication mechanism for communicating information and processor(s) 510 coupled to bus 505 for processing information. Processor(s) 510 may be any type of general or application-specific 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. Processor(s) 510 may also have multiple processing cores, at least some of which may be configured to perform specific functions. In some embodiments, multiple parallel processing may be used. In certain embodiments, at least one processor(s) 510 may be a neuromorphic circuit including processing elements that mimic biological neurons. In some embodiments, neuromorphic circuits may not require typical components of a von Neumann computing architecture.

[0054] The computing system 500 further includes memory 515 for storing information and instructions executed by the processor(s) 510. The memory 515 may be comprised of random access memory (RAM), read-only memory (ROM), flash memory, cache, static storage such as a magnetic or optical disk, or other types of non-transitory computer-readable media, or any combination thereof. The non-transitory computer-readable media may be any available media that can be accessed by the processor(s) 510 and may include volatile media, non-volatile media, or both. Also, the media may 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 wireless and / or wired connections. In some embodiments, the communications device 520 may support any of the following radio technologies: 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 (GSM) communications, 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 (HSUPA), High-Speed ​​Packet Access (HSPA), Long Term Evolution (LTE), LTE Advanced (LTE-A), LTE-Advanced (LTE-B), LTE-Advanced (LTE-C), LTE-Advanced (LTE-B), LTE-Advanced (LTE-C), LTE-Advanced (LTE-C), LTE-Advanced (LTE-C), LTE-Advanced (LTE-C), LTE-Advanced (LTE-C), LTE-Advanced (LTE-C), LTE-Advanced (LTE-C), LTE-Advanced (LTE-C), LTE-Advanced (LTE-A), LTE-Advanced (LTE-C ... Advanced), 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 Communications (NFC), 5th Generation (5G), New Radio (NR), any combination thereof, and / or any other currently existing or future-implemented communication standard and / or protocol without departing from the scope of the present invention.In some embodiments, the communications device 520 may include one or more antennas that are a single antenna, an array of antennas, a phased antenna, a switched antenna, a beamforming antenna, a beamsteering antenna, a combination thereof, and / or any other antenna configuration without departing from the scope of the present invention.

[0056] The processor(s) 510 are further coupled via bus 505 to a display 525, such as a plasma display, a liquid crystal display (LCD), a light-emitting diode (LED) display, a field emission display (FED), an organic light-emitting diode (OLED) display, a flexible OLED display, a flexible substrate display, a projection display, a 4K display, a high-definition display, a Retina® display, an in-plane switching (IPS) display, or any other suitable display for displaying information to a user. The display 525 may be configured as a touch (haptic) display, a three-dimensional (3D) touch display, a multi-input touch display, a multi-touch display, or the like, using resistive, capacitive, surface acoustic wave (SAW) capacitive, infrared, optical imaging, dispersive signaling, acoustic pulse recognition, frustrated total internal reflection, or the like. Any suitable display device and haptic I / O may be used without departing from the scope of the invention.

[0057] A keyboard 530 and cursor control device 535, such as a computer mouse, touchpad, etc., are further coupled to bus 505 to allow a user to interface with computing system 500. However, in certain embodiments, a physical keyboard and mouse may not be present, and the user may interact with the device solely through display 525 and / or a touchpad (not shown). Any type and combination of input devices may be used as a matter of design choice. In certain embodiments, no physical input devices and / or displays are present. For example, a user may interact with computing system 500 remotely through another computing system in communication with it, or computing system 500 may operate autonomously.

[0058] The memory 515 stores software modules that, when executed by the processor(s) 510, provide functionality. The modules include an operating system 540 for the computing system 500. The modules further include a task automation module 545 configured to perform all or a portion of the processes described herein, or derivatives thereof. The computing system 500 may include one or more additional functional modules 550 that include additional functionality.

[0059] Those skilled in the art will appreciate that a "system" may be embodied as a server, embedded computing system, personal computer, console, personal digital assistant (PDA), mobile phone, tablet computing device, quantum computing system, or any other suitable computing device or combination of devices without departing from the scope of the present invention. Presenting the above-described functions as being performed by a "system" is not intended to limit the scope of the present invention in any way, but rather to provide an example of many embodiments of the present invention. Indeed, the methods, systems, and apparatuses disclosed herein may be implemented in localized and distributed forms consistent with computing techniques, including cloud computing systems. The computing system may be part of or otherwise accessible through a local area network (LAN), a mobile communications network, a satellite communications network, the Internet, a public or private cloud, a hybrid cloud, a server farm, any combination thereof, or the like. Any local or distributed architecture may be used without departing from the scope of the present invention.

[0060] It should be noted that some of the system features described herein are presented as modules to further emphasize implementation independence. For example, a module may be implemented as a hardware circuit comprising custom very large scale integrated (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may 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 may also be implemented at least partially in software for execution by various types of processors. For example, an identified unit of executable code may include one or more physical or logical blocks of computer instructions, which may be organized, for example, as an object, a procedure, or a function. Nevertheless, executable identified modules need not be physically located together; they may include separate instructions stored in different locations that, when logically combined, comprise a module to achieve the purpose stated for the module. Furthermore, modules may be stored on non-transitory computer-readable media, such as, for example, a hard disk drive, a flash device, RAM, tape, and / or any other non-transitory computer-readable medium used to store data without departing from the scope of the present invention.

[0062] Indeed, a module of executable code may be a single instruction, many instructions, or even distributed across several different code segments, different programs, and multiple memory devices. Similarly, operational data may be identified and depicted herein within a module, and may be embodied and organized in any suitable form within any suitable type of data structure. Operational data may be collected as a single data set, or may be distributed in different locations across different storage devices, or may exist, at least in part, simply as electronic signals on a system or network.

[0063] FIG. 6 is an architecture diagram illustrating a system 600 configured to perform support robotic task automation for RPA, according to an embodiment of the present invention. System 600 includes user computing systems such as desktop computers 602, 603, a tablet 604, and a smartphone 606. However, any desired computing system, including, but not limited to, a smartwatch, a laptop computer, and the like, may be used without departing from the scope of the present invention. Also, while three user computing systems are shown in FIG. 6, any suitable number of computing systems may be used without departing from the scope of the present invention. For example, in some embodiments, tens, hundreds, thousands, or millions of computing systems may be used.

[0064] Each computing system 602, 604, 606 has an AI / ML-enabled RPA robot 610 that monitors users' interactions with the computing system to determine commonly repeated tasks, their triggers, and their content. The RPA robot 610 may use AI / ML models trained to use CV to recognize what users are doing on their respective computing systems. The RPA robot may then determine that users are regularly performing certain tasks in response to certain actions, such as receiving a request via email or other application, determining that a particular task has been completed, or noting that a certain period of time has passed.

[0065] Computing systems 602, 604, 606 transmit information to server 630 and then to each other via network 620 (e.g., a local area network (LAN), a cellular network, a satellite network, the Internet, any combination thereof, etc.). In some embodiments, server 630 may be part of a public cloud architecture, a private cloud architecture, a hybrid cloud architecture, etc. In particular embodiments, server 630 may host multiple software-based servers on a single computing system. Server 630 includes, in this embodiment, an AI-enabled RPA robot 632 that uses AI / ML models to analyze communications between computing systems 602, 604, 606 via server 630 and provides information that the local RPA robot 610 could not determine alone.

[0066] Consider the board of directors example: one director communicates with another director, who in turn communicates with yet another director. An RPA robot (e.g., RPA robot 610) or other process deployed on end-user computing systems 602, 604, 606 would not be able to see this pattern. Meanwhile, server-side RPA robot 632 could see that one user sends an email, six other users respond to that email, and so on. Server-side RPA robot 632 could then learn to automate the entire process of sending an email from the first user, followed by subsequent emails to the other six users.

[0067] Some such embodiments may be useful for governance / privacy purposes. Because the RPA robot 632 resides on a server, data does not need to be shared with end users who should not receive it. From the end user's perspective, they may not know why the system would start suggesting what to do or why it would automate something automatically.

[0068] After a given task is recognized by the RPA robot 610, the RPA robot 610, in some embodiments, makes automation suggestions to the users of the respective computing systems. For example, the RPA robot 610 may display a pop-up window suggesting the automation to the users. If the respective users agree that the automation would be beneficial, the RPA robot 610 may suggest the proposed action to the users. The RPA robot 610 may then enter a training phase in which content to be sent is first suggested to the users. If the content is incorrect, the users may mark the incorrect content and provide instructions for the correct content. This information may be sent to the server 630 and stored in the database 640 for review by the application 652 of the training computing system 650, which may be controlled to retrain the respective AI / ML models using the training data. After a certain level of reliability is achieved, the RPA robot 610 may automatically perform actions without user interaction using the trained AI / ML models. However, in certain embodiments, the automation may be automatically deployed to the user computing systems 602, 604, 606, potentially without the users' knowledge.

[0069] In some embodiments, the AI / ML model invoked by the server-side RPA robot 632 and / or the client-side RPA robot 610 may have multiple layers performing various functions, such as statistical modeling (e.g., Hidden Markov Models (HMMs)), and may utilize deep learning techniques (e.g., Long Short-Term Memory (LSTM) deep learning, encoding of prior hidden states, etc.) to identify sequences of user interactions.

[0070] AI layer

[0071] In some embodiments, multiple AI layers may be used. Each AI layer is an algorithm (or model) that runs on data, and the AI ​​model itself may be a deep learning neural network (DLNN) of artificial "neurons" trained on training data. Layers may run in serial, parallel, or a combination thereof.

[0072] AI layers may include, but are not limited to, a sequence extraction layer, a clustering detection layer, a visual component detection layer, a text recognition layer (e.g., OCR), a speech-to-text translation layer, or any combination thereof. However, any desired number and type(s) of layers may be used without departing from the scope of the present invention. Using multiple layers allows the system to develop a global picture of what is happening on the screen. For example, one AI layer may perform OCR, another may detect buttons, another may compare sequences, etc. Patterns may be determined individually by one AI layer or collectively by multiple AI layers.

[0073] FIG. 7 is an architecture diagram illustrating a system 700 configured to monitor communications between computing systems 710 and perform task automation with RPA robots 712, according to embodiments of the present invention. In some embodiments, system 700 may be or be implemented in system 600 of FIG. 6. System 700 includes a user computing system 710 on which one or more RPA robots 712 are executing. In some embodiments, computing system 710 may be or include computing system 500 of FIG. 5. RPA robots 712 may include AI / ML-enabled RPA robots that invoke one or more AI / ML models, robots deployed to perform process automation, listener robots that monitor user interactions with their respective computing systems 710, and / or any other type(s) of robots without departing from the scope of the present invention. Additionally, any number of robots 712 of the same type or types may execute on a computing system 710 without departing from the scope of the present invention.

[0074] Computing system 710 transmits information to server 730 or other computing systems within network 720, and then to each other, via network 720 (e.g., a local area network (LAN), a cellular network, a satellite network, the Internet, any combination thereof, etc.). In some embodiments, server 730 may be part of a public cloud architecture, a private cloud architecture, a hybrid cloud architecture, etc. Indeed, server 730 may, in some embodiments, be implemented partially or entirely in software and may represent multiple software and / or hardware systems. In particular embodiments, server 730 may host multiple software-based servers on a single computing system.

[0075] The server 730 includes an AI-enabled RPA robot 732, in this embodiment, that uses AI / ML models 734 to analyze communications between computing systems 710 and provide information that the local RPA robot 712 and / or computing system 710 alone could not determine. In some embodiments, one or more of the AI / ML models 734 may be located on and invoked from different servers or other computing systems. The AI-enabled RPA robot 732 may determine patterns in communications, such as when a user sends an email with specific content, submits a specific web form, enters data, or submits a request in a specific application, one or more other users take corresponding actions, such as providing approval or sending a request to another user. The AI-enabled RPA robot 732 may then suggest automations for each user's respective tasks, or automatically generate one or more RPA workflows that include activities corresponding to the user's interactions with each computing system 710 related to the actions, generate each RPA robot 712, and then deploy the RPA robot 712 to the appropriate computing systems 710. The entire series of tasks performed by the users may then be automated. It may also address privacy concerns by not requiring a given user to provide information that they should not have access to. For example, a user may not be aware that another RPA robot is being deployed on another user's computing system that receives the user's annual review and then facilitates the comments and performance review process by the user's manager.

[0076] In some embodiments, a deployed RPA robot 712, deployed, deployed, or otherwise facilitated by an AI-enabled RPA robot 732, first enters a training phase in which actions to be taken by the RPA robot 712 are first suggested to a user. If the content is incorrect, the user may, via an application on the respective user computing system 710, mark the incorrect portion of the content and provide instructions for the correct content. This information may be transmitted to server 730 or some other server and stored in a database (e.g., similar to database 640 of FIG. 6) for subsequent review and training of AI / ML models.

[0077] FIG. 8 is a flowchart illustrating a process 800 for performing task automation by a support robot for RPA, according to an embodiment of the present invention. The process begins at 805 by monitoring interactions between users and their computing systems. In some embodiments, the monitoring may be performed by a listener RPA robot, which may generate data including user interactions. An AI / ML model is used to analyze the data including the user interactions and determine at 810 the tasks the users will perform. For example, the AI / ML model may determine that when one user performs an initiating task, another user will perform a responding task. In some embodiments, the AI / ML model or the calling RPA robot may determine that the computing system performing the responding task communicates with another computing system other than the one that performed the initiating task and uses this information to perform the responding task. In certain embodiments, data regarding user interactions is not shared with other users' computing systems.

[0078] In some embodiments, a user of each computing system is asked at 815 whether automation of the respective task is desired. However, in particular embodiments, this step may not be employed. If the user indicates that automation is desired at 815, or potentially automatically without user input, RPA workflow(s) implementing the respective task(s) (e.g., initiating and responding tasks) are generated at 820. The RPA workflow(s) may include activities that implement user interactions associated with the respective tasks. The RPA workflow(s) are then used to generate RPA robot(s) at 825, and the RPA robot(s) are deployed at 830.

[0079] In some embodiments, the deployed RPA robot(s) enter a training phase after initial deployment. However, in certain embodiments, this training phase may be skipped or otherwise unused. In some embodiments, a user of the respective computing system may be prompted by the deployed RPA robot at 835 as to whether to automatically perform a task, and suggested action(s) may be provided to the user. If the RPA robot does not perform a task correctly, the user may mark the inaccurate portion of the content and provide one or more instructions for the correct content as labeled training data at 840. At some point after receiving this training data (e.g., after some time has passed, after receiving a certain amount of training data, etc.), the AI / ML model invoked by the RPA robot is retrained at 845, and / or the RPA robot itself is modified or replaced and a replacement RPA robot is deployed. After certain criteria are met (e.g., after some time has passed without receiving any modifications, if the amount of modifications within a certain period of time is less than a threshold, etc.), the training phase may end at 850, and the RPA robot(s) may be automatically used to perform their respective tasks.

[0080] The process steps performed in FIG. 8 may be performed by a computer program encoding instructions to a processor(s) to perform at least a portion of the process(es) described in FIG. 8 according to an embodiment of the present invention. The computer program may be stored on a non-transitory computer-readable medium. The computer-readable medium may be, but is not limited to, a hard disk drive, a flash device, RAM, tape, and / or any other such medium or combination of media used to store data. The computer program may include coded instructions for controlling a processor(s) of a computing system (e.g., processor(s) 510 of computing system 500 of FIG. 5) to implement all or a portion of the process steps described in FIG. 8, which may also be stored on a computer-readable medium.

[0081] The computer program may be implemented in hardware, software, or a hybrid implementation. The computer program may be composed of modules in operable communication with each other and designed to send information or instructions to a display. The computer program may be configured to run on a general-purpose computer, an ASIC, or any other suitable device.

[0082] It will be readily understood that the components of the various embodiments of the present invention, as generally described and illustrated herein, may be arranged and designed in a wide variety of different configurations. Thus, the detailed description of the embodiments of the present invention, as represented in the accompanying figures, is not intended to limit the scope of the invention as claimed, but is merely representative of selected embodiments of the invention.

[0083] The features, structures, or characteristics of the invention described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, references throughout this specification to "certain embodiments," "some embodiments," or similar language mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the invention. Thus, the appearances of "certain embodiments," "some embodiments," "other embodiments," or similar language throughout this specification do not necessarily refer to the same group of all embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0084] It should be noted that references to features, advantages, or similar language throughout this specification do not imply that all of the features and advantages that may be realized in the present invention are to be found in any single embodiment of the present invention, or in any embodiment of the present invention. Rather, language referring to features and advantages is understood to mean that the particular feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of features and advantages throughout this specification, and similar language, may, but do not necessarily, refer to the same embodiment.

[0085] Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. Those skilled in the relevant art will recognize that the invention may be practiced without a particular feature or advantage of one or more particular embodiments. In other instances, additional features and advantages may be recognized in particular embodiments, although they may not be present in all embodiments of the invention.

[0086] Those of ordinary skill in the art will readily appreciate that the invention as described above can be implemented using steps in a different order and / or with hardware elements in different configurations than those disclosed. Thus, while the invention has been described in terms of these preferred embodiments, it will be apparent to those skilled in the art that certain modifications, variations, and alternative configurations will become apparent while remaining within the spirit and scope of the invention. Accordingly, reference should be made to the appended claims to determine the scope of the invention.

Claims

1. The server and a first user computing system including a first listener robotic process automation (RPA) robot, the first listener RPA robot configured to monitor a first user's interaction with the first user computing system and provide data regarding the first user's interaction to the server; a second user computing system including a second listener RPA robot, the second listener RPA robot configured to monitor a second user's interaction with the second user computing system and provide data regarding the second user's interaction to the server; The server using an artificial intelligence (AI) / machine learning (ML) model to determine, based on the data regarding the interaction of the first user and the second user, that the first user will perform an initiating task and the second user will perform a responding task; A system configured to generate and deploy respective automations that automate the initiating task on the first user computing system and the responding task on the second user computing system.

2. the automation of the initiation task of the first user on the first user computing system, the automation of the response task of the second user on the second user computing system, or both the automation of the initiation task of the first user on the first user computing system and the automation of the response task of the second user on the second user computing system, generating, by the server, respective RPA workflows including activities that implement user interactions associated with the initiating task and the responding task; generating, by the server, respective RPA robots that implement the respective RPA workflows; The system of claim 1 , further comprising deploying, by the server, the generated RPA robots to each of the user computing systems.

3. 10. The system of claim 1, wherein prior to generating and deploying each of the automations that automate the initiation task on the first user computing system and the response task on the second user computing system, each of the computing systems is configured to propose each of the automations to each of the users.

4. 4. The system of claim 3, wherein, once each of the users approves each of the automations, each of the automations enters a training phase in which tasks to be performed by each of the automations are proposed to each of the users before executing each of the automations.

5. If each of the automated suggested content is inaccurate, each of the user computing systems: receiving one or more marked inaccurate portions of the content and one or more indications of correct content; sending data to the server including the one or more received marked incorrect portions of the content and the one or more indications of the correct content; The system of claim 3 , configured by the server to retrain the AI / ML model.

6. 6. The system of claim 5, wherein after a period of time has passed without modification by each of the users, the AI / ML model gains a level of confidence and each of the deployed automations is configured to perform the initiating and responding tasks without input from each of the users.

7. The system of claim 1 , wherein the server uses the AI / ML model via a server-side RPA robot.

8. 8. The system of claim 7, wherein the server-side RPA robot is configured to monitor communications between the first user computing system and the second user computing system.

9. 9. The system of claim 8, wherein the server-side RPA robot is configured to determine that the second user computing system communicates with a third computing system as part of the response task and to use information from the third computing system to perform the response task.

10. 2. The system of claim 1, wherein the server does not share the data regarding the second user's interactions with the first user computing system, the server does not share the data regarding the first user's interactions with the second user computing system, or both the server does not share the data regarding the second user's interactions with the first user computing system and the server does not share the data regarding the first user's interactions with the second user computing system.

11. 2. The system of claim 1, wherein each of the automations automating the initiating task on the first user computing system and the responding task on the second user computing system is deployed without notifying the user of each of the first user computing system and the second user computing system.

12. invoking, by a supervisory robotic process automation (RPA) robot, an artificial intelligence (AI) / machine learning (ML) model configured to analyze data including interactions of users of a plurality of user computing systems and communications between at least a subset of the plurality of user computing systems; determining, by the supervisory RPA robot, based on analysis by the AI / ML model, that when an initiating task is performed by one or more computing systems of the plurality of user computing systems, one or more response tasks will be performed by one or more other user computing systems of the plurality of user computing systems; generating, by the monitor RPA robot, respective RPA robots that implement the initiating task and the one or more response tasks and deploying them to respective user computing systems.

13. The generation of the respective RPA robots that perform the initiating task and the one or more response tasks includes:

13. The computer-implemented method of claim 12, comprising generating, by the supervisory RPA robot, respective RPA workflows including activities that implement user interactions associated with the initiating task and the responding task.

14. 13. The computer-implemented method of claim 12, wherein the supervisory RPA robot is configured to require approval by a respective user of a respective computing system before generating and deploying each of the automations that automate the initiating task and the one or more response tasks.

15. 15. The computer-implemented method of claim 14, wherein once each of the users approves each of the automations, each of the automations is deployed by the supervising RPA robot in a training phase in which tasks to be performed by each of the automations are proposed to each of the users before executing each of the automations.

16. The computer-implemented method of claim 15, wherein if each said automated suggested content is inaccurate, the computer-implemented method further comprises: A computer-implemented method comprising: using, by the supervising RPA robot, data from one or more of the plurality of user computing systems, the data including marked inaccurate portions of content and indications of correct content, to retrain or cause the AI / ML model to be retrained.

17. 17. The computer-implemented method of claim 16, wherein each deployed automation is configured to perform the initiation task and the response task without input from the respective user after a period of time has passed without receiving a correction, after the AI / ML model has achieved a certain level of confidence, or both after a period of time has passed without receiving a correction and after the AI / ML model has achieved a certain level of confidence.

18. 13. The computer-implemented method of claim 12, wherein the data regarding user interactions is not shared by the supervisory RPA robot with the plurality of user computing systems.

19. A non-transitory computer-readable medium having stored thereon a computer program, the computer program causing at least one processor to: performing a supervisory robotic process automation (RPA) robot that invokes an artificial intelligence (AI) / machine learning (ML) model configured to analyze data including interactions of users of a plurality of user computing systems and communications between at least a subset of the plurality of user computing systems; determining, by the supervisory RPA robot based on analysis by the AI / ML model, that when an initiating task is performed by one or more computing systems of the plurality of user computing systems, one or more response tasks will be performed by one or more other user computing systems of the plurality of user computing systems; configured to generate respective RPA workflows that implement the initiating task, the one or more response tasks, or both the initiating task and the one or more response tasks; A non-transitory computer-readable medium, wherein each of the RPA workflows includes activities that implement user interactions associated with the initiating task and the responding task.

20. 20. The non-transitory computer-readable medium of claim 19, wherein the computer program is configured to not share the data regarding user interactions with the plurality of user computing systems.

Citation Information

Patent Citations

  • Robotics process automation platform

    US20180197123A1

  • Context-based recommendations for robotic process automation design

    WO2020061697A1