IP Library Granted Patent US 11,580,472
Granted Patent B2
US 11,580,472 · App. 15/097,842 · Granted Feb 14, 2023

Systems and methods for state machine management

Inventors: Kevin Richards (San Francisco, CA); Arseny Bogomolov (Arlington, VA); Grigory Bonik (Palo Alto, CA); Victor Hsu (Palo Alto, CA); Alexander Visbal (San Francisco, CA); John Carrino (Redwood City, CA); Cooper Bills (Mountain View, CA); Diran Li (Palo Alto, CA); William Rhyne (Arlington, VA); Timothy O'Brien (Washington, DC); Matthew Bango (Palo Alto, CA)
Assignee: Palantir Technologies Inc.
G06Q10/06316G06F16/93G06Q10/06G06Q10/103G06Q50/18
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,580,472
App. No.
15/097,842
Granted
Feb 14, 2023
Kind
B2
Abstract

A case management system is configured to provide one or more case generation and management functions. As configured, the case management system enables a user to define a workflow, the workflow including one or more states, one or more operations which may be performed at the one or more states, and one or more transitions corresponding to the operations and defining a sequence of the states; to generate and configure a state machine; to receive a workflow identifier to assign to the state machine; and through a command received from a client device, to open and manage a case based on the configuration of the state machine.

Claims (73)

1. A computer-implemented method, wherein the method is performed using one or more processors, the method comprising:

generating a state machine for a workflow for a case data object, the generating of the state machine comprising:

assigning a set of workflow states to the state machine,

assigning a first set of operation definitions to the state machine, the first set of operation definitions specifying a set of operations performable by a user while the state machine is in a first workflow state of the set of workflow states,

assigning a second set of operation definitions to the state machine, the second set of operations specifying a set of operations performable by the user while the state machine is in a second workflow state of the set of workflow states,

assigning a set of transition definitions to the state machine, the set of transition definitions establishing subsequent workflow states of the set of workflow states for each of the first set of operation definitions and the second set of operation definitions, and

assigning a set of workflow identifiers to the state machine, each of the workflow identifiers corresponding to a different workflow state of the set of workflow states;

generating a user interface for managing the case data object;

specifying a first workflow identifier of the set of workflow identifiers by the user via the user interface,

based on the specifying of the first workflow identifier of the set of workflow identifiers, generating the case data object and associating the case data object with the first workflow state, the associating of the case data object with the first workflow state including limiting the user to the set of operations performable by the user while the state machine is in the first workflow state;

selecting, by the user via the user interface, an operation from the set of operations performable by the user while the state machine is in the first workflow state; and

based on a determination that the user selected the operation from the set of operations performable by the user while the state machine is in the first workflow state, causing the selected operation to be executed, the causing of the selected operation to be executed including causing a transitioning of the state machine from the first workflow state to the second workflow state based on the selected operation and the set of transition definitions.

2. The method of claim 1 , further comprising:

receiving a case identifier;

assigning the case identifier to the case data object, the case identifier identifying the case data object.

3. The method of claim 1 , wherein the case data object includes one or more case properties that include a list of user identifiers, the list of user identifiers indicating a list of users assigned to the case data object, and the method further comprising linking one or more associated elements to the case data object, the one or more associated elements being related to the case data object based on the one or more case properties.

4. The method of claim 3 , wherein the linking includes:

generating a reference to each of the one or more associated elements; and

storing the reference in the case data object.

5. The method of claim 3 , wherein the linking includes:

generating a reference to the case data object; and

storing the reference with the one or more associated elements.

6. The method of claim 1 , further comprising: assigning the state machine to the case data object, wherein the assigning of the state machine to the case data object includes:

receiving a workflow identifier of the workflow as a user input from a client device; and

retrieving the state machine based on the workflow identifier.

7. The method of claim 1 , further comprising: receiving a list of user identifiers representing one or more users;

assigning the list of user identifiers to the case data object; and

assigning a role to each user identifier among the list of user identifiers, the role defining access privileges of each user with respect to the case data object.

8. The method of claim 1 , further comprising: tracking the execution of an action; and

recording the action in a workflow chronology, the workflow chronology including one or more executed workflow operations.

9. The method of claim 3 , wherein the linking the one or more associated elements includes:

accessing a plurality of data sources; and

retrieving the one or more associated elements from the plurality of data sources based on the one or more case properties.

10. The method of claim 1 , wherein the state machine is one of multiple state machines that were previously generated, each of the multiple state machines being selectable based on workflow identifiers corresponding to the multiple state machines.

11. The method of claim 10 , further comprising: selecting the workflow identifiers via a case creation interface for assigning workflows to govern a case corresponding to the case data object.

12. The method of claim 1 , the set of workflow states corresponding to a plurality of document creation phases, the plurality of document creation phases including an editing phase, a review phase, a pending approval phase, and an approved phase.

13. The method of claim 1 , wherein the workflow is defined by a system developer and made accessible to the user via the user interface.

14. The method of claim 1 , the transitioning of the state machine from the first workflow state to the second workflow state further including:

associating the case data object with the second workflow state, the associating of the case data object with the second workflow state including limiting the user to the set of operations performable by the user while the state machine is in the second workflow state;

selecting, by the user via the user interface, an operation from the set of operations performable by the user while the state machine is in the second workflow state; and

based on a determination that the user selected the operation from the set of operations performable by the user while the state machine is in the second workflow state, causing the selected operation to be executed, the causing of the selected operation to be executed including causing a transitioning of the state machine from the second workflow state to one of the subsequent workflow states based on the selected operation and the set of transition definitions.

15. A system comprising:

one or more processors;

one or more memories; and

a set of instructions stored in the one or more memories, the set of instructions configuring the one or more processors to perform operations comprising:

generating a state machine for a workflow for a case data object, the generating of the state machine comprising:

assigning a set of workflow states to the state machine,

assigning a first set of operation definitions to the state machine, the first set of operation definitions specifying a set of operations performable by a user while the state machine is in a first workflow state of the set of workflow states,

assigning a second set of operation definitions to the state machine, the second set of operations specifying a set of operations performable by the user while the state machine is in a second workflow state of the set of workflow states,

assigning a set of transition definitions to the state machine, the set of transition definitions establishing subsequent workflow states of the set of workflow states for each of the first set of operation definitions and the second set of operation definitions, and

assigning a set of workflow identifiers to the state machine, each of the workflow identifiers corresponding to a different workflow state of the set of workflow states;

generating a user interface for managing the case data object;

specifying a first workflow identifier of the set of workflow identifiers by the user via the user interface,

based on the specifying of the first workflow identifier of the set of workflow identifiers, generating the case data object and associating the case data object with the first workflow state, the associating of the case data object with the first workflow state including limiting the set of operations performable by the user while the state machine is in the first workflow state;

selecting, by the user via the user interface, an operation from the set of operations performable by the user while the state machine is in the first workflow state; and

based on a determination that the user selected the operation from the set of operations performable by the user while the state machine is in the first workflow state, causing the selected operation to be executed, the causing of the selected operation to be executed including causing a transitioning of the state machine from the first workflow state to the second workflow state based on the selected operation and the set of transition definitions.

16. The system of claim 15 , further comprising: assigning the state machine to the case data object, wherein the assigning of the state machine to the case data object includes: receiving a workflow identifier of the workflow as a user input from a client device; and

retrieving the workflow based on the workflow identifier.

17. The system of claim 15 , the operations further comprising: receiving a list of user identifiers representing one or more users;

assigning the list of user identifiers to the case data object; and

assigning a role to each user identifier among the list of user identifiers, the role defining access privileges of each user with respect to the case data object.

18. A non-transitory machine-readable storage medium including instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:

generating a state machine for a workflow for a case data object, the generating of the state machine comprising:

assigning a set of workflow states to the state machine,

assigning a first set of operation definitions to the state machine, the first set of operation definitions specifying a set of operations performable by a user while the state machine is in a first workflow state of the set of workflow states,

assigning a second set of operation definitions to the state machine, the second set of operations specifying a set of operations performable by the user while the state machine is in a second workflow state of the set of workflow states,

assigning a set of transition definitions to the state machine, the set of transition definitions establishing subsequent workflow states of the set of workflow states for each of the first set of operation definitions and the second set of operation definitions, and

assigning a set of workflow identifiers to the state machine, each of the workflow identifiers corresponding to a different workflow state of the set of workflow states;

generating a user interface for managing the case data object;

specifying a first workflow identifier of the set of workflow identifiers by the user via the user interface,

based on the specifying of the first workflow identifier of the set of workflow identifiers, generating the case data object and associating the case data object with the first workflow state, the associating of the case data object with the first workflow state including limiting the set of operations performable by the user while the state machine is in the first workflow state; and

selecting, by the user via the user interface, an operation from the set of operations performable by the user while the state machine is in the first workflow state;

based on a determination that the user selected the operation from the set of operations performable by the user while the state machine is in the first workflow state, causing the selected operation to be executed, the causing of the selected operation to be executed including causing a transitioning of the state machine from the first workflow state to the second workflow state based on the selected operation and the set of transition definitions.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2016
From: RICHARDS, KEVIN; BOGOMOLOV, ARSENY; BONIK, GRIGORY; HSU, VICTOR; VISBAL, ALEXANDER; CARRINO, JOHN; BILLS, COOPER; LI, DIRAN; RHYNE, WILLIAM; O'BRIEN, TIMOTHY; BANGO, MATTHEW
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 039378/0059 →
Continuity (2)
Provisional Application 62161746 · May 14, 2015
Related Publication 20160335577A1 · Nov 17, 2016