IP Library Granted Patent US 11,966,774
Granted Patent B2
US 11,966,774 · App. 17/078,394 · Granted Apr 23, 2024

Workflow generation using multiple interfaces

Inventors: Richard Gardner (Leesburg, VA); Clayton Myers (Oak Hill, VA); Andrew Smith (Oakton, VA)
Assignee: MicroStrategy Incorporated
G06F9/4881G06F8/63G06F9/451G06F9/541
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 11,966,774
App. No.
17/078,394
Granted
Apr 23, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer-readable media, for workflow generation using multiple interfaces. In some implementations, an interface for defining a workflow having one or more operations for a computer system to perform is provided. The interface can provide options that are selectable to cause an operation from a predetermined set of operations to be added to the workflow. Data indicating user selection of an option of the interface corresponding to a first operation in the predetermined set of operations is received. Code that specifies one or more custom operations is received. The workflow is defined to include (i) the first operation based on the data indicating the user selection and (ii) a second operation specified by the code.

Claims (69)

1. A method performed by one or more computers, the method comprising:

providing, by the one or more computers, an interface for defining a workflow, wherein the interface provides first interface elements that are selectable to cause an operation from a predetermined set of operations to be added to the workflow, wherein the interface provides second interface elements that are selectable to cause a monitoring operation to be added to the workflow, and wherein the interface provides third interface elements that are selectable to make the operations in the workflow performed selectively based on occurrence of an event or condition in which a result of the monitoring operation satisfies one or more criteria, wherein the one or more criteria include one or more predetermined sets of criteria;

receiving first data indicating a user selection, from among the first interface elements, of an interface element corresponding to a first operation in the predetermined set of operations;

receiving second data indicating a second user selection, from among the second interface elements, of a second interface element corresponding to a second operation of monitoring a status of a computer system;

receiving third data indicating user interaction with one or more of the third interface elements, wherein the user interaction specifies that at least a portion of the workflow including the first operation is to be performed based on the occurrence of a particular event or condition in which the status of the computer system determined by the second operation satisfies a predetermined set of the one or more criteria;

defining the workflow to include the first operation based on the first data indicating the user selection and to include the second operation based on the second data indicating the second user selection; and

configuring the workflow based on the third data such that executing the workflow includes (i) monitoring a status of a particular computer system, (ii) determining, based on the monitored status of the particular computer system, whether the particular event or condition has occurred, and (iii) selectively performing the first operation based on the determination whether the particular event or condition has occurred.

2. The method of claim 1 , wherein the interface for defining the workflow is a graphical user interface, an application programming interface, or a voice user interface.

3. The method of claim 1 ,

wherein the first data indicates at least one of a mouse click event, a mouse double click event, a drag-and-drop event, a touch event, a touch gesture event, a voice command event, or one or more keyboard key events.

4. The method of claim 1 , wherein the first and second interface elements are interactive to change a sequence in which operations in the workflow are performed; and

wherein the method comprises:

receiving additional data indicating a user interaction with one or more of the first and second interface elements; and

setting or changing a sequence in which the operations of the workflow are performed based on the additional data indicating the user interaction.

5. The method of claim 1 , wherein providing the interface for defining the workflow comprises providing a graphical user interface having multiple areas, wherein the multiple areas include a workflow display area configured to indicate the series of operations in the workflow.

6. The method of claim 5 , comprising:

in response to receiving the third data indicating user interaction with the one or more the third interface elements:

generating a new interface element representing the event or condition corresponding to the one or more the third interface elements; and

placing the new interface element in the workflow display area to indicate the event or condition and the effect of checking the event or condition on execution of the workflow.

7. The method of claim 5 , comprising:

providing, as one of the multiple areas, a development environment area configured to receive programming code to specify one or more operations to be included in the workflow;

receiving fourth data indicating user-specified programming code entered into the development environment area;

adding, to the workflow display area, an element representing the operations of the user-specified programming code; and

configuring the workflow to execute the operations of the user-specified programming code when the workflow is executed.

8. The method of claim 7 , comprising:

in response to receiving the fourth data indicating user-specified programming code, generating an interface element representing the programming code entered into the development environment area; and

placing the interface element representing the user-specified programming code in the workflow display area to indicate the inclusion of the programming code in the workflow.

9. The method of claim 5 , comprising providing, as one of the multiple areas, a recording area of the multiple areas comprising controls to begin and end recording of user-initiated actions, the interface being configured to add recorded user-initiated actions as operations of the workflow.

10. The method of claim 9 , comprising:

receiving data indicating a first user interaction with an interface element for initiating recording of user-initiated actions;

in response to receiving the data indicating the first user interaction, detecting a series of user interactions with the one or more computers;

receiving, through the interface, data indicating a second user interaction with an interface element for stopping the initiated recording of user-initiated actions; and

in response to receiving the data indicating the second user interaction:

generating one or more new interface elements representing the recorded user-initiated interactions; and

placing the one or more new interface elements in the workflow display area to indicate the inclusion of the recorded user-initiated actions in the workflow.

11. The method of claim 5 , comprising providing, as one of the multiple areas, an application programming interface area that includes one or more interface elements specifying one or more third-party application programming interfaces.

12. The method of claim 11 , comprising:

receiving data indicating an interaction with an interface element, in the application programming interface area, indicating a third-party application programming interface; and

in response to receiving the data indicating the interaction with the interface element indicating the third-party application programming interface, including an operation that uses the third-party application programming interface into the workflow.

13. The method of claim 5 , comprising providing, as one of the multiple areas, a container area that includes one or more interface elements specifying one or more software images or container-related operations.

14. The method of claim 13 , comprising:

receiving data indicating an interaction with an interface element, in the container area, that specifies a software image or a container-related operation; and

in response to receiving the data indicating the interaction with the interface element specifying the software image or the container-related operation:

generating a new interface element representing the software image or the container-related operation corresponding to the interface element interacted with; and

placing the new interface element in the workflow display area to indicate the inclusion in the workflow of an operation involving running the software image in a container or involving performing the container-related operation.

15. The method of claim 1 , wherein the particular event or condition is a condition based on an output generated by the second operation; and

wherein configuring the workflow to selectively perform the first operation comprises configuring the workflow to selectively perform the first operation based on a determination, for each execution of the workflow, whether the output generated by the second operation during the execution of the workflow satisfies the condition based on the output of the second operation.

16. The method of claim 1 , wherein the particular event or condition comprises a user-specified condition for a value to satisfy a predetermined threshold; and

wherein configuring the workflow to selectively perform the first operation comprises configuring the workflow to selectively perform the first operation based on a determination, for each execution of the workflow, whether a value generated through the execution of the workflow satisfies the predetermined threshold.

17. The method of claim 1 ,

wherein configuring the workflow to selectively perform the first operation comprises configuring the workflow to selectively perform the first operation based on whether status data obtained through execution of the workflow indicates the status indicated by the particular event or condition.

18. The method of claim 1 , comprising:

recommending the second interface elements based on receiving the third data indicating the user interaction with the one or more of the third interface elements.

19. A system comprising:

one or more computers; and

one or more computer-readable media storing instructions that, when executed, cause the one or more computers to perform operations comprising:

providing an interface for defining a workflow, wherein the interface provides first interface elements that are selectable to cause an operation from a predetermined set of operations to be added to the workflow, wherein the interface provides second interface elements that are selectable to cause a monitoring operation to be added to the workflow, and wherein the interface provides third interface elements that are selectable to make the operations in the workflow performed selectively based on occurrence of an event or condition in which a result of the monitoring operation satisfies one or more criteria, wherein the one or more criteria include one or more predetermined sets of criteria;

receiving first data indicating a user selection, from among the first interface elements, of an interface element corresponding to a first operation in the predetermined set of operations;

receiving second data indicating a second user selection, from among the second interface elements, of a second interface element corresponding to a second operation of monitoring a status of a computer system;

receiving third data indicating user interaction with one or more of the third interface elements, wherein the user interaction specifies that at least a portion of the workflow including the first operation is to be performed based on the occurrence of a particular event or condition in which the status of the computer system determined by the second operation satisfies a predetermined set of one or more criteria;

defining the workflow to include the first operation based on the first data indicating the user selection and to include the second operation based on the second data indicating the second user selection; and

configuring the workflow based on the third data such that executing the workflow includes (i) monitoring a status of a particular computer system, (ii) determining, based on the monitored status of the particular computer system, whether the particular event or condition has occurred, and (iii) selectively performing the first operation based on the determination whether the particular event or condition has occurred.

20. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

providing an interface for defining a workflow, wherein the interface provides first interface elements that are selectable to cause an operation from a predetermined set of operations to be added to the workflow, wherein the interface provides second interface elements that are selectable to cause a monitoring operation to be added to the workflow, and wherein the interface provides third interface elements that are selectable to make operations in the workflow performed selectively based on occurrence of an event or condition in which a result of the monitoring operation satisfies one or more criteria, wherein the one or more criteria include one or more predetermined sets of criteria;

receiving first data indicating a user selection, from among the first interface elements, of an interface element corresponding to a first operation in the predetermined set of operations;

receiving second data indicating a second user selection, from among the second interface elements, of a second interface element corresponding to a second operation of monitoring a status of a computer system;

receiving third data indicating user interaction with one or more of the third interface elements, wherein the user interaction specifies that at least a portion of the workflow including the first operation is to be performed based on the occurrence of a particular event or condition in which the status of the computer system determined by the second operation satisfies a predetermined set of the one or more criteria;

defining the workflow to include the first operation based on the first data indicating the user selection and to include the second operation based on the second data indicating the second user selection; and

configuring the workflow based on the third data such that executing the workflow includes (i) monitoring a status of a particular computer system, (ii) determining, based on the monitored status of the particular computer system, whether the particular event or condition has occurred, and (iii) selectively performing the first operation based on the determination whether the particular event or condition has occurred.

Assignments (4)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072974/0529 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: GARDNER, RICHARD; MYERS, CLAYTON; SMITH, ANDREW
To: MICROSTRATEGY INCORPORATED
Reel/Frame 054160/0463 →