IP Library Granted Patent US 9,483,307
Granted Patent B2
US 9,483,307 · App. 14/450,079 · Granted Nov 1, 2016

Asynchronous, interactive task workflows

Inventor: George Murray Turner (Phoenix, AZ)
Assignee: Swiftpage Act! LLC
G06F9/4881G06F3/0484G06Q10/06316
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 9,483,307
App. No.
14/450,079
Granted
Nov 1, 2016
Kind
B2
Abstract

A method of performing an asynchronous, interactive workflow is provided. The method includes generating a workflow comprising one or more tasks and executing at least a portion of the one or more tasks of the workflow automatically, without user interaction, and in response to a trigger. The method further includes detecting that a current task of the one or more tasks of the workflow requires user interaction, adding the current task to a to-do list of tasks requiring user interaction, and determining that one of an at least one user associated with the workflow has logged on, presenting at least one task from the to-do list to the user, receiving the required user interaction, and executing the at least one task from the to-do list based on the received user interaction.

Claims (82)

1. A method of performing an asynchronous, interactive workflow, the method comprising:

generating, with a computer, a workflow comprising one or more tasks;

receiving, with the computer, user context from an at least one user, wherein a first workflow instance is generated from the workflow and based in part on the user context, the first workflow instance associated with the at least one user;

determining, with the computer, that the first workflow instance is in a state that a workflow service capable of accessing and executing the first workflow instance can execute at least a portion of the one or more tasks automatically, without user interaction, before executing the at least a portion of the one or more tasks;

executing, with the computer, the at least a portion of the one or more tasks of the workflow automatically, without user interaction, in response to a trigger;

detecting, with the computer, that a current task of the one or more tasks of the workflow requires user interaction;

in response to detecting, with the computer, that the first workflow instance requires user interaction, placing the first workflow instance in a persisted state, wherein the persisted state indicates the status of the current task as awaiting user interaction;

adding, with the computer, the current task to a to-do list of tasks requiring user interaction in response to determining that the current task requires user interaction;

determining, with the computer, that one of the at least one user associated with the workflow has logged on;

presenting, with the computer, at least one task from the to-do list to the one of an at least one user responsive to determining that one of the at least one user has logged on;

receiving, with the computer, the required user interaction; and

executing, with the computer, the at least one task from the to-do list based on the received user interaction.

2. The method of claim 1 , further comprising:

continuing to execute, with the computer, an additional task of the one or more tasks automatically after adding the current task to the to-do list.

3. The method of claim 1 , further comprising:

awaiting the required user interaction before proceeding to a subsequent task of the one or more tasks.

4. The method of claim 1 , further comprising:

registering the first workflow instance of the workflow in a database on a server, the first workflow instance associated with the at least one user;

providing the workflow service on the server;

identifying the first workflow instance from a pool of workflow instances in the database, the pool of workflow instances comprising the first workflow instance.

5. The method of claim 1 , further comprising:

retrieving the first workflow instance, upon determining that the first workflow instance has a persisted state that requires user interaction and responsive to the one of the at least one user logging on.

6. The method of claim 1 , further comprising:

locking the first workflow instance while it is being executed to remove the first workflow instance from the pool of workflow instances and prevent execution of the first workflow instance by any other workflow service; and

unlocking the first workflow instance and placing the first workflow instance back into the pool of workflow instances in response to executing the at least a portion of the one or more tasks or placing the first workflow instance in a persisted state.

7. The method of claim 1 , further comprising queuing a plurality of workflow instances, each of which is in a state requiring user interaction.

8. The method of claim 7 , further comprising:

presenting each of the queued workflow instances to a user to receive the required user interaction; and

continuing execution of each of the queued workflow instances after receiving the required user interaction in each workflow instance.

9. A program product comprising a non-transitory computer readable medium having encoded thereon a set of instructions, executable by one or more microprocessors to perform one or more operations, the set of instructions comprising:

instructions for generating a workflow comprising one or more tasks;

instructions for receiving, user context from an at least one user, wherein a first workflow instance is generated from the workflow and based in part on the user context, the first workflow instance associated with the at least one user;

instructions for determining, that the first workflow instance is in a state that a workflow service capable of accessing and executing the first workflow instance can execute at least a portion of the one or more tasks automatically, without user interaction, before executing the at least a portion of the one or more tasks;

instructions for executing the at least a portion of the one or more tasks of the workflow automatically, without user interaction, in response to a trigger;

instructions for detecting that a current task of the one or more tasks of the workflow requires user interaction;

instructions for placing the first workflow instance in a persisted state, in response to detecting that the first workflow instance requires user interaction, wherein the persisted state indicates the status of the current task as awaiting user interaction;

instructions for adding the current task to a to-do list of tasks requiring user interaction in response to determining that the current task requires user interaction;

instructions for determining that one of the at least one user associated with the workflow has logged on;

instructions for presenting at least one task from the to-do list to the one of an at least one user responsive to determining that one of the at least one user has logged on;

instructions for receiving the required user interaction; and

instructions for executing the at least one task from the to-do list based on the received user interaction.

10. The program product of claim 9 , further comprising instructions for continuing to execute an additional task of the one or more tasks automatically after adding the current task to the to-do list.

11. The program product of claim 9 , further comprising instructions for awaiting the required user interaction before proceeding to a subsequent task of the one or more tasks.

12. The program product of claim 9 , further comprising:

instructions for registering the first workflow instance of the workflow in a database on a server, the first workflow instance associated with the at least one user;

instructions for providing the workflow service on the server;

instructions for identifying the first workflow instance from a pool of workflow instances in the database, the pool of workflow instances comprising the first workflow instance.

13. The program product of claim 9 , further comprising instructions for retrieving the first workflow instance, upon determining that the first workflow instance has a persisted state that requires user interaction and responsive to the one of the at least one user logging on.

14. The program product of claim 9 , further comprising:

instructions for locking the first workflow instance while it is being executed to remove the first workflow instance from the pool of workflow instances and prevent execution of the first workflow instance by any other workflow service; and

instructions for unlocking the first workflow instance and placing the first workflow instance back into the pool of workflow instances in response to executing the at least a portion of the one or more tasks or placing the first workflow instance in a persisted state.

15. A system for executing an unattended, interactive workflow, the system comprising:

a client computer; and

a server in communication with the client computer via a network connection;

at least one of the client computer or the server is configured to:

generate a workflow comprising one or more tasks;

the client computer further is configured to:

receive user context from the at least one user, wherein a first workflow instance is generated from the workflow and based in part on the user context, the first workflow instance associated with the at least one user;

indicate to the server that one of an at least one user associated with the workflow has logged on; and

present at least one task from a to-do list to the one of an at least one user responsive to determining that one of the at least one user has logged on, wherein the to-do list comprises a list of tasks requiring user interaction; and

the server is further configured to:

receive user context from the client computer, wherein the first workflow instance is generated from the workflow and based in part on the user context, the first workflow instance associated with the at least one user;

determine that the first workflow instance is in a state that a workflow service capable of accessing and executing the first workflow instance can execute at least a portion of the one or more tasks automatically, without user interaction, before executing the at least a portion of the one or more tasks;

execute the at least a portion of the one or more tasks of the workflow automatically, without user interaction, in response to a trigger;

detect that a current task of the one or more tasks of the workflow requires user interaction;

place the first workflow instance in a persisted state, in response to detecting that the first workflow instance requires user interaction, wherein the persisted state indicates the status of the current task as awaiting user interaction;

add the current task to the to-do list of tasks requiring user interaction in response to determining that the current task requires user interaction;

determine that the one of the at least one user associated with the workflow has logged on, based on an indication sent by the client computer;

cause at least one task from the to-do list to be presented to the one of an at least one user responsive to determining that one of the at least one user has logged on;

receive the required user interaction; and

execute the at least one task from the to-do list based on the received user interaction.

16. The system of claim 15 , wherein the client computer or server are further configured to continue to execute an additional task of the one or more tasks automatically after adding the current task to the to-do list.

17. The system of claim 15 , wherein the server is further configured to await receiving the required user interaction before proceeding to a subsequent task of the one or more tasks.

18. The system of claim 15 , wherein:

the server is further configured to:

register the first workflow instance of the workflow in a database accessible by the server, the first workflow instance associated with the at least one user;

provide the workflow service;

identify the first workflow instance from a pool of workflow instances in the database, the pool of workflow instances comprising the first workflow instance.

19. The system of claim 15 , wherein the server is further configured to retrieve the first workflow instance, upon determining that the first workflow instance has a persisted state that requires user interaction and responsive to the one of the at least one user logging on.

20. The system of claim 15 , wherein the server or client are further configured to:

lock the first workflow instance while it is being executed to remove the first workflow instance from the pool of workflow instances and prevent execution of the first workflow instance by any other workflow service; and

unlock the first workflow instance and place the first workflow instance back into the pool of workflow instances in response to executing the at least a portion of the one or more tasks or place the first workflow instance in a persisted state.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Jan 2, 2024
From: AB PRIVATE CREDIT INVESTORS LLC
To: ACT! LLC
Reel/Frame 065997/0608 →
SECURITY INTEREST Recorded Dec 29, 2023
From: ACT! LLC
To: EAST WEST BANK
Reel/Frame 065982/0696 →
CHANGE OF NAME Recorded Aug 10, 2020
From: SWIFTPAGE ACT! LLC
To: ACT! LLC
Reel/Frame 053445/0571 →
RELEASE OF SECURITY INTEREST Recorded Nov 29, 2018
From: LEVEL SC - SWIFTPAGE, LLC
To: SWIFTPAGE, INC.; SWIFTPAGE ACT! LLC; SALESLOGIX N.A., LLC
Reel/Frame 047681/0730 →
SECURITY INTEREST Recorded Jun 15, 2018
From: SWIFTPAGE ACT! LLC
To: AB PRIVATE CREDIT INVESTORS LLC
Reel/Frame 046097/0095 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 5, 2017
From: SWIFTPAGE, INC.; SWIFTPAGE ACT! LLC; SALESLOGIX, N.A., LLC
To: LEVEL SC - SWIFTPAGE, LLC
Reel/Frame 043090/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2014
From: TURNER, GEORGE MURRAY
To: SWIFTPAGE ACT! LLC
Reel/Frame 033501/0850 →
Continuity (2)
Provisional Application 61873451 · Sep 4, 2013
Related Publication 20150067687A1 · Mar 5, 2015