IP Library Granted Patent US 12,373,512
Granted Patent B2
US 12,373,512 · App. 16/452,849 · Granted Jul 29, 2025

Method and system for automating web processes utilizing an abstractable underlying platform layer

Inventors: Scott Nielsen Weinert, Jr. (Spokane, WA); Sean Michael Hill (Mesa, AZ); Kris Golez Doromal (Pflugerville, TX)
Assignee: Q2 SOFTWARE, INC.
G06F16/986G06F16/951G06F16/953G06F16/9577
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,373,512
App. No.
16/452,849
Granted
Jul 29, 2025
Kind
B2
Abstract

Embodiments as disclosed provide improved RPA systems and methods that utilize a set of reusable modules. These modules may include an associated set of configurable parameters and be associated with instructions for a browser automation platform. An RPA application to accomplish a task at a target website is built using these modules. The RPA application may be executed at the RPA system using an instance of a browser. The RPA application can be executed by evaluating an identified module of the RPA application based on the configuration parameters to determine instructions for a browser automation platform for the identified module. These browser automation platform instructions can then be provided to the browser automation platform to execute against the browser instance.

Claims (113)

1. A system for robotic process administration (RPA), the system comprising:

a processor;

a data store storing a set of reusable modules each module comprising computer executable code for generating browser automation instructions for performing a task at a website using a browser automation platform and a configuration parameter;

a non-transitory computer readable medium, storing instructions for:

a designer interface adapted to allow a user to define a first RPA application for a first website and to define a second RPA application for a second website that is different from the first website, the user defining the first RPA application by:

selecting a module from the set of reusable modules, and

configuring the selected module according to the first website for which the task is to be automated by:

defining a first value for the first website for the configuration parameter, wherein the first RPA application includes a first module definition for the selected module, the first module definition including an identifier for the selected module and the first value is defined for the configuration parameter for the selected module; and

an execution engine for executing the first RPA application by:

creating a first job execution instance for the first RPA application, the first job execution instance including a first instance of a browser, a first browser automation platform, and a first state, wherein the first instance of the browser, the first browser automation platform, and the first state are specific to the first job execution instance, and

wherein, executing the first job execution instance comprises, in the first job execution instance:

accessing the first RPA application to determine the first module definition;

accessing the selected module based on the identifier for the selected module as included in the first module definition of the first RPA application to obtain the computer executable code of the selected module;

generating first browser automation instructions for the first browser automation platform by evaluating the computer executable code of the selected module against the first value for the configuration parameter of the first module definition of the first RPA application to generate the first browser automation instructions;

providing the generated first browser automation instructions to the first browser automation platform of the first job execution instance for execution against the first website in the first browser instance specific to the first job execution instance in the execution engine; and

updating the first state specific to the first job execution instance based on the execution of the first browser automation instructions against the first website in the first browser instance specific to the first job execution instance in the execution engine;

creating a second job execution instance for the first RPA application, the second job instance including a second instance of the browser, a second browser automation platform, and a second state, wherein the second instance of the browser, the second browser automation platform, and the second state are specific to the second job execution instance, and

wherein, executing the second job execution instance comprises, in the second job execution instance:

accessing the first RPA application to determine the first module definition;

accessing the selected module based on the identifier for the selected module as included in the first module definition of the first RPA application to obtain the computer executable code of the module;

generating second browser automation instructions for the second browser automation platform by evaluating the computer executable code of the selected module against the first value for the configuration parameter of the first module definition of the first RPA application to generate the second browser automation instructions; and

providing the generated second browser automation instructions to the second browser automation platform of the second job execution instance for execution against the first website in the second browser instance specific to the second job execution instance in the execution engine; and

updating the second state specific to the second job execution instance based on the execution of the second browser automation instructions against the first website in the second browser instance specific to the second job execution instance in the execution engine.

2. The system of claim 1 , wherein

the designer interface is adapted to allow the user to define the second RPA application for the second website by:

selecting the module from the set of modules, and

configuring the selected module according to the second website for which the task is to be automated by:

defining a second value for the second website for the configuration parameter, wherein the second RPA application includes a second module definition for the module, the second module definition including the identifier for the selected module and the second value defined for the configuration parameter for the selected module; and

the execution engine further for executing the second RPA application by:

creating a second job execution instance for the second RPA application, the second job instance including a second instance of the browser and a second state;

accessing the second RPA application to determine the module definition;

accessing the module based on the identifier for the selected module as included in the second module definition of the second RPA application to obtain the computer executable code of the module;

generating second browser automation instructions for the browser automation platform by evaluating the computer executable code of the module against the second value for configuration parameter of the second module definition of the second RPA application to generate the second browser automation instructions, and

providing the generated second browser automation instructions to the browser automation platform for execution against the second website in the second browser instance associated with the second job instance in the execution engine.

3. The system of claim 2 , wherein the first value for the configuration parameter for the first website is a variable and the execution engine is adapted to determine the first value specific to a first user based on a first context of the first job instance.

4. The system of claim 3 , wherein the second value for the configuration parameter for the second website is the variable and the execution engine is adapted to determine the second value specific to a second user based on a second context of the second job instance.

5. The system of claim 1 , wherein the module definition comprises a JSON object including the identifier for the module and the first value for the configuration parameter.

6. The system of claim 5 , wherein the first value for the configuration parameter is associated with the document object model (DOM) of the first website.

7. The system of claim 1 , wherein the set of modules includes a handler module, a generator module, and a hook module.

8. A method for robotic process administration (RPA), the method comprising:

providing a set of reusable modules, each module comprising computer executable code for generating browser automation instructions for performing a task at a website using a browser automation platform and a configuration parameter;

providing a designer interface adapted to allow a user to define a first RPA application for a first website and to define a second RPA application for a second website that is different from the first website, the user defining the first RPA application by:

selecting a module from the set of reusable modules, and

configuring the selected module according to the first website for which the task is to be automated by:

defining a first value for the first website for the configuration parameter, wherein the first RPA application includes a first module definition for the selected module, the first module definition including an identifier for the selected module and the first value is defined for the configuration parameter for the selected module; and

an execution engine for executing the first RPA application by:

creating a first job execution instance for the first RPA application, the first job execution instance including a first instance of a browser, a first browser automation platform, and a first state, wherein the first instance of the browser, the first browser automation platform, and the first state are specific to the first job execution instance, and

wherein, executing the first job execution instance comprises, in the first job execution instance:

accessing the first RPA application to determine the first module definition;

accessing the selected module based on the identifier for the selected module as included in the first module definition of the first RPA application to obtain the computer executable code of the selected module;

generating first browser automation instructions for the first browser automation platform by evaluating the computer executable code of the selected module against the first value for the configuration parameter of the first module definition of the first RPA application to generate the first browser automation instructions;

providing the generated first browser automation instructions to the first browser automation platform of the first job execution instance for execution against the first website in the first browser instance specific to the first job execution instance in the execution engine; and

updating the first state specific to the first job execution instance based on the execution of the first browser automation instructions against the first website in the first browser instance specific to the first job execution instance in the execution engine;

creating a second job execution instance for the first RPA application, the second job instance including a second instance of the browser, a second browser automation platform, and a second state, wherein the second instance of the browser, the second browser automation platform, and the second state are specific to the second job execution instance, and

wherein, executing the second job execution instance comprises, in the second job execution instance:

accessing the first RPA application to determine the first module definition;

accessing the selected module based on the identifier for the selected module as included in the first module definition of the first RPA application to obtain the computer executable code of the module;

generating second browser automation instructions for the second browser automation platform by evaluating the computer executable code of the selected module against the first value for the configuration parameter of the first module definition of the first RPA application to generate the second browser automation instructions; and

providing the generated second browser automation instructions to the second browser automation platform of the second job execution instance for execution against the first website in the second browser instance specific to the second job execution instance in the execution engine; and

updating the second state specific to the second job execution instance based on the execution of the second browser automation instructions against the first website in the second browser instance specific to the second job execution instance in the execution engine.

9. The method of claim 8 , wherein

the designer interface is adapted to allow the user to define the second RPA application for the second website by:

selecting the module from the set of modules, and

configuring the selected module according to the second website for which the task is to be automated by:

defining a second value for the second website for the configuration parameter, wherein the second RPA application includes a second module definition for the module, the second module definition including the identifier for the selected module and the second value defined for the configuration parameter for the selected module; and

the second RPA application is executed by:

creating a second job execution instance for the second RPA application, the second job instance including a second instance of the browser and a second state;

accessing the second RPA application to determine the module definition;

accessing the module based on the identifier for the selected module as included in the second module definition of the second RPA application to obtain the computer executable code of the module;

generating second browser automation instructions for the browser automation platform by evaluating the computer executable code of the module against the second value for configuration parameter of the second module definition of the second RPA application to generate the second browser automation instructions, and

providing the generated second browser automation instructions to the browser automation platform for execution against the second website in the second browser instance associated with the second job instance in the execution engine.

10. The method of claim 9 , wherein the first value for the configuration parameter for the first website is a variable and the execution engine is adapted to determine the first value specific to a first user based on a first context of the first job instance.

11. The method of claim 10 , wherein the second value for the configuration parameter for the second website is the variable and the execution is engine is adapted to determine the second value specific to a second user based on a second context of the second job instance.

12. The method of claim 8 , wherein the module definition comprises a JSON object including the identifier for the module and the first value for the configuration parameter.

13. The method of claim 12 , wherein the first value for the configuration parameter is associated with the document object model (DOM) of the first website.

14. The method of claim 8 , wherein the set of modules includes a handler module, a generator module, and a hook module.

15. A non-transitory computer readable medium storing instructions for:

providing a set of reusable modules, each module comprising computer executable code for generating browser automation instructions for performing a task at a website using a browser automation platform and a configuration parameter;

providing a designer interface adapted to allow a user to define a first RPA application for a first website and to define a second RPA application for a second website that is different from the first website, the user defining the first RPA application by:

selecting a module from the set of reusable modules, and

configuring the selected module according to the first website for which the task is to be automated by:

defining a first value for the first website for the configuration parameter, wherein the first RPA application includes a first module definition for the selected module, the first module definition including an identifier for the selected module and the first value is defined for the configuration parameter for the selected module; and

an execution engine for executing the first RPA application by:

creating a first job execution instance for the first RPA application, the first job execution instance including a first instance of a browser, a first browser automation platform, and a first state, wherein the first instance of the browser, the first browser automation platform, and the first state are specific to the first job execution instance, and

wherein, executing the first job execution instance comprises, in the first job execution instance:

accessing the first RPA application to determine the first module definition;

accessing the selected module based on the identifier for the selected module as included in the first module definition of the first RPA application to obtain the computer executable code of the selected module;

generating first browser automation instructions for the first browser automation platform by evaluating the computer executable code of the selected module against the first value for the configuration parameter of the first module definition of the first RPA application to generate the first browser automation instructions;

providing the generated first browser automation instructions to the first browser automation platform of the first job execution instance for execution against the first website in the first browser instance specific to the first job execution instance in the execution engine; and

updating the first state specific to the first job execution instance based on the execution of the first browser automation instructions against the first website in the first browser instance specific to the first job execution instance in the execution engine;

creating a second job execution instance for the first RPA application, the second job instance including a second instance of the browser, a second browser automation platform, and a second state, wherein the second instance of the browser, the second browser automation platform, and the second state are specific to the second job execution instance, and

wherein, executing the second job execution instance comprises, in the second job execution instance:

accessing the first RPA application to determine the first module definition;

accessing the selected module based on the identifier for the selected module as included in the first module definition of the first RPA application to obtain the computer executable code of the module;

generating second browser automation instructions for the second browser automation platform by evaluating the computer executable code of the selected module against the first value for the configuration parameter of the first module definition of the first RPA application to generate the second browser automation instructions; and

providing the generated second browser automation instructions to the second browser automation platform of the second job execution instance for execution against the first website in the second browser instance specific to the second job execution instance in the execution engine; and

updating the second state specific to the second job execution instance based on the execution of the second browser automation instructions against the first website in the second browser instance specific to the second job execution instance in the execution engine.

16. The non-transitory computer readable medium of claim 15 , wherein

the designer interface is adapted to allow the user to define the second RPA application for the second website by:

selecting the module from the set of modules, and

configuring the selected module according to the second website for which the task is to be automated by:

defining a second value for the second website for the configuration parameter, wherein the second RPA application includes a second module definition for the module, the second module definition including an identifier for the selected module and the second value defined for the configuration parameter for the selected module; and

the second RPA application is executed by:

creating a second job execution instance for the second RPA application, the second job instance including a second instance of the browser and a second state;

accessing the second RPA application to determine the module definition;

accessing the module based on the identifier for the selected module as included in the second module definition of the second RPA application to obtain the computer executable code of the module;

generating second browser automation instructions for the browser automation platform by evaluating the computer executable code of the module against the second value for configuration parameter of the second module definition of the second RPA application to generate the second browser automation instructions, and

providing the generated second browser automation instructions to the browser automation platform for execution against the second website in the second browser instance associated with the second job instance in the execution engine.

17. The non-transitory computer readable medium of claim 16 , wherein the first value for the configuration parameter for the first website is a variable and the execution engine is adapted to determine the first value specific to a first user based on a first context of the first job instance.

18. The non-transitory computer readable medium claim 17 , wherein the second value for the configuration parameter for the second website is the variable and the execution is engine is adapted to determine the second value specific to a second user based on a second context of the second job instance.

19. The non-transitory computer readable medium of claim 15 , wherein the module definition comprises a JSON object including the identifier for the module and the first value for the configuration parameter.

20. The non-transitory computer readable medium of claim 19 , wherein the first value for the configuration parameter is associated with the document object model (DOM) of the first website.

21. The non-transitory computer readable medium of claim 15 , wherein the set of modules includes a handler module, a generator module, and a hook module.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2019
From: WEINERT, SCOTT NIELSEN, JR.; HILL, SEAN MICHAEL; DOROMAL, KRIS GOLEZ
To: Q2 SOFTWARE, INC.
Reel/Frame 049592/0755 →
Continuity (2)
Provisional Application 62690541 · Jun 27, 2018
Related Publication 20200004798A1 · Jan 2, 2020
References Cited (10)
US 20100241990A1 · Gabriel · 2010 [cited by applicant]
US 20150381703A1 · Mahamuni · 2015 [cited by examiner]
US 20170017528A1 · Hua et al. · 2017 [cited by applicant]
US 20170052824A1 · Sharma · 2017 [cited by examiner]
US 20190095999A1 · Li · 2019 [cited by examiner]
US 20190129827A1 · Ramasamy · 2019 [cited by examiner]
AU 2005201433B2 · 2005 [cited by applicant]
Cherkashin, Aleksandr, Productivity and time management improvement using a web application, 2017, Bachelor Thesis, Haaga-Helia University Degree Programme in Business (Year: 2017). [cited by examiner]
International Preliminary Report on Patentability (IPRP) issued for PCT Application No. PCT/US2019/039235, mailed Jan. 7, 2021, 9 pages. [cited by applicant]
International Search Report and Written Opinion of the International Searching Authority for International Patent Application No. PCT/US2019/039235, mailed Sep. 19, 2019, 10 pgs. [cited by applicant]