IP Library Granted Patent US 12,373,499
Granted Patent B2
US 12,373,499 · App. 18/436,898 · Granted Jul 29, 2025

System to manage document workflows

Inventors: Nathaniel Klein (Washington, DC); Huanqi Deng (Annandale, VA); Kevin Whelan (Palo Alto, CA); Matthew LeVan (Arlington, VA); Takashi Okamoto (Menlo Park, CA)
Assignee: Palantir Technologies Inc.
G06F16/93G06F16/2272G06F16/951G06F3/04842H04L67/01
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,499
App. No.
18/436,898
Granted
Jul 29, 2025
Kind
B2
Abstract

Example embodiments relate to a network-based workflow system, employed for receiving workflows, defining one or more data-object types based on the workflows, generating data-objects, assigning a workflow from among the one or more workflows to the data-object, and managing the data-object through various states of based on the workflow. As discussed, a “workflow” refers to orchestrated and repeatable patterns enabled by a systematic organization of resources into processes that transform and modify presentations of data-objects based on corresponding data-object states. A workflow may therefore comprise a set of states, wherein each state is linked to another state by one or more transitions, and wherein the transitions are associated with a set of events which may occur at each state.

Claims (74)

1. A method comprising:

receiving a workflow definition from a workflow system;

assigning a first set of actions performable to a data-object to a first data-object state of a plurality of data-object states, the plurality of data-object states further including a second data-object state associated with a second set of actions performable to the data-object, the first set of actions being different from the second set of actions;

receiving a request associated with the data-object in the first data-object state;

causing presentation of a representation of the data-object in the first data-object state on a graphical user interface, the representation of the data-object including at least a part of the first set of actions;

causing to execute at least one of the part of the first set of actions;

determining that the data-object is in the second data-object state; and

altering, based at least in part on the second data-object state, the representation of the data-object, the altered representation of the data-object including at least a part of the second set of actions;

wherein the method is performed using one or more processors.

2. The method of claim 1 , further comprising:

receiving access criteria associated with the first data-object state;

retrieving a user attribute based on the request; and

selecting a subset of the first set of actions based on the access criteria and the user attribute;

wherein the representation of the data-object includes the subset of the first set of actions.

3. The method of claim 2 , further comprising:

retrieving a device attribute based on the request;

wherein the selecting the subset of the first set of actions includes selecting the subset of the first set of actions based on the access criteria, the user attribute, and the device attribute.

4. The method of claim 1 , further comprising:

receiving an input indicating a data-object type associated with the data-object; and

selecting a workflow based at least in part on the data-object type.

5. The method of claim 4 , further comprising:

retrieving a plurality of workflow definitions from a data repository;

causing a presentation of the plurality of workflow definitions; and

receiving an input associated with the plurality of workflow definitions;

wherein the selecting the workflow includes selecting the workflow based at least in part on the data-object type and the input associated with the plurality of workflow definitions.

6. The method of claim 5 , wherein each workflow definition of the plurality of workflow definitions includes a set of respective data-object states.

7. The method of claim 4 , further comprising:

generating the data-object based at least in part on the selected workflow and the data-object type.

8. A system comprising:

one or more computer processors;

one or more computer memories; and

a set of instructions stored on the one or more computer memories, the set of instructions when executed by the one or more computer processors, cause the one or more computer processors to perform operations, the operations comprising:

receiving a workflow definition from a workflow system;

assigning a first set of actions performable to a data-object to a first data-object state of a plurality of data-object states, the plurality of data-object states further including a second data-object state associated with a second set of actions performable to the data-object, the first set of actions being different from the second set of actions;

receiving a request associated with the data-object in the first data-object state;

causing presentation of a representation of the data-object in the first data-object state on a graphical user interface, the representation of the data-object including at least a part of the first set of actions;

causing to execute at least one of the part of the first set of actions;

determining that the data-object is in the second data-object state; and

altering, based at least in part on the second data-object state, the representation of the data-object, the altered representation of the data-object including at least a part of the second set of actions.

9. The system of claim 8 , wherein the operations further comprise:

receiving access criteria associated with the first data-object state;

retrieving a user attribute based on the request; and

selecting a subset of the first set of actions based on the access criteria and the user attribute;

wherein the representation of the data-object includes the subset of the first set of actions.

10. The system of claim 9 , wherein the operations further comprise:

retrieving a device attribute based on the request;

wherein the selecting the subset of the first set of actions includes selecting the subset of the first set of actions based on the access criteria, the user attribute, and the device attribute.

11. The system of claim 8 , wherein the operations further comprise:

receiving an input indicating a data-object type associated with the data-object; and

selecting a workflow based at least in part on the data-object type.

12. The system of claim 11 , wherein the operations further comprise:

retrieving a plurality of workflow definitions from a data repository;

causing a presentation of the plurality of workflow definitions; and

receiving an input associated with the plurality of workflow definitions;

wherein the selecting the workflow includes selecting the workflow based at least in part on the data-object type and the input associated with the plurality of workflow definitions.

13. The system of claim 12 , wherein each workflow definition of the plurality of workflow definitions includes a set of respective data-object states.

14. The system of claim 11 , wherein the operations further comprise:

generating the data-object based at least in part on the selected workflow and the data-object type.

15. A non-transitory computer-readable storage medium comprising a set of instructions that, when executed by one or more computer processors, causes the one or more computer processors to perform operations comprising:

receiving a workflow definition from a workflow system;

assigning a first set of actions performable to a data-object to a first data-object state of a plurality of data-object states, the plurality of data-object states further including a second data-object state associated with a second set of actions performable to the data-object, the first set of actions being different from the second set of actions;

receiving a request associated with the data-object in the first data-object state;

causing presentation of a representation of the data-object in the first data-object state on a graphical user interface, the representation of the data-object including at least a part of the first set of actions;

causing to execute at least one of the part of the first set of actions;

determining that the data-object is in the second data-object state; and

altering, based at least in part on the second data-object state, the representation of the data-object, the altered representation of the data-object including at least a part of the second set of actions.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the operations further comprise:

receiving access criteria associated with the first data-object state;

retrieving a user attribute based on the request; and

selecting a subset of the first set of actions based on the access criteria and the user attribute;

wherein the representation of the data-object includes the subset of the first set of actions.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the operations further comprise:

receiving an input indicating a data-object type associated with the data-object; and

selecting a workflow based at least in part on the data-object type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2024
From: KLEIN, NATHANIEL; DENG, HUANQI; WHELAN, KEVIN; LEVAN, MATTHEW; OKAMOTO, TAKASHI
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 068938/0227 →
Continuity (4)
Continuation 17063993 · Oct 6, 2020
Continuation 15800856 · Nov 1, 2017
Provisional Application 62536298 · Jul 24, 2017
Related Publication 20240241912A1 · Jul 18, 2024
References Cited (100)
US 5568390A · Hirota et al. · 1996 [cited by applicant]
US 5857329A · Bigham · 1999 [cited by applicant]
US 5902349A · Endo et al. · 1999 [cited by applicant]
US 6496774B1 · Davies · 2002 [cited by applicant]
US 6608559B1 · Lemelson et al. · 2003 [cited by applicant]
US 7603229B2 · Goldberg et al. · 2009 [cited by applicant]
US 7818291B2 · Ferguson et al. · 2010 [cited by applicant]
US 7941321B2 · Greenstein et al. · 2011 [cited by applicant]
US 8042110B1 · Kawahara et al. · 2011 [cited by applicant]
US 8046283B2 · Burns et al. · 2011 [cited by applicant]
US 8108138B2 · Bruce et al. · 2012 [cited by applicant]
US 8352174B2 · Milstein et al. · 2013 [cited by applicant]
US 8417409B2 · Bast et al. · 2013 [cited by applicant]
US 8732574B2 · Burr et al. · 2014 [cited by applicant]
US 8763078B1 · Castellucci et al. · 2014 [cited by applicant]
US 8786605B1 · Curtis et al. · 2014 [cited by applicant]
US 8819620B1 · Volchegursky et al. · 2014 [cited by applicant]
US 8868537B1 · Colgrove et al. · 2014 [cited by applicant]
US 8909597B2 · Aymeloglu · 2014 [cited by examiner]
US 9092482B2 · Harris et al. · 2015 [cited by applicant]
US 9280532B2 · Cicerone · 2016 [cited by applicant]
US 10839022B1 · Klein et al. · 2020 [cited by applicant]
US 20020178252A1 · Balabhadrapatruni et al. · 2002 [cited by applicant]
US 20030074090A1 · Becka et al. · 2003 [cited by applicant]
US 20040153418A1 · Hanweck · 2004 [cited by applicant]
US 20040172445A1 · Singh et al. · 2004 [cited by applicant]
US 20040205572A1 · Fields et al. · 2004 [cited by applicant]
US 20060074860A1 · Ishiguro et al. · 2006 [cited by applicant]
US 20060230032A1 · Brankov et al. · 2006 [cited by applicant]
US 20060241856A1 · Cobleigh et al. · 2006 [cited by applicant]
US 20070088596A1 · Berkelhamer et al. · 2007 [cited by applicant]
US 20070112629A1 · Sanabria et al. · 2007 [cited by applicant]
US 20070156888A1 · Hilerio et al. · 2007 [cited by applicant]
US 20070185826A1 · Brice et al. · 2007 [cited by applicant]
US 20070198571A1 · Ferguson et al. · 2007 [cited by applicant]
US 20070220604A1 · Long · 2007 [cited by applicant]
US 20070282657A1 · Hupfer et al. · 2007 [cited by applicant]
US 20080201333A1 · Rowley · 2008 [cited by applicant]
US 20080301559A1 · Martinsen et al. · 2008 [cited by applicant]
US 20080313281A1 · Scheidl et al. · 2008 [cited by applicant]
US 20090037912A1 · Stoitsev et al. · 2009 [cited by applicant]
US 20090077217A1 · McFarland et al. · 2009 [cited by applicant]
US 20090319418A1 · Herz · 2009 [cited by applicant]
US 20100070464A1 · Aymeloglu · 2010 [cited by examiner]
US 20100162371A1 · Geil · 2010 [cited by applicant]
US 20100205616A1 · Lai et al. · 2010 [cited by applicant]
US 20100205662A1 · Ibrahim et al. · 2010 [cited by applicant]
US 20100235841A1 · Sato · 2010 [cited by applicant]
US 20100325097A1 · Er · 2010 [cited by examiner]
US 20110041084A1 · Karam · 2011 [cited by applicant]
US 20110153592A1 · DeMarcken · 2011 [cited by applicant]
US 20110185401A1 · Bak et al. · 2011 [cited by applicant]
US 20120060162A1 · Hunt et al. · 2012 [cited by applicant]
US 20120101952A1 · Raleigh et al. · 2012 [cited by applicant]
US 20120151272A1 · Behrendt et al. · 2012 [cited by applicant]
US 20120203587A1 · Bohm · 2012 [cited by examiner]
US 20120290506A1 · Muramatsu et al. · 2012 [cited by applicant]
US 20120331472A1 · Moon et al. · 2012 [cited by applicant]
US 20130036346A1 · Cicerone · 2013 [cited by applicant]
US 20130231862A1 · Delling et al. · 2013 [cited by applicant]
US 20130286601A1 · Shin et al. · 2013 [cited by applicant]
US 20140081685A1 · Thacker et al. · 2014 [cited by applicant]
US 20140129942A1 · Rathod · 2014 [cited by examiner]
US 20140181833A1 · Bird et al. · 2014 [cited by applicant]
US 20140237354A1 · Burr et al. · 2014 [cited by applicant]
US 20140282177A1 · Wang et al. · 2014 [cited by applicant]
US 20150046407A1 · Kalas · 2015 [cited by examiner]
US 20150120176A1 · Curtis et al. · 2015 [cited by applicant]
US 20150127412A1 · Kothandaraman et al. · 2015 [cited by applicant]
US 20150261817A1 · Harris et al. · 2015 [cited by applicant]
US 20150370540A1 · Coslovi · 2015 [cited by examiner]
US 20160063421A1 · Singh et al. · 2016 [cited by applicant]
US 20160105409A1 · Torman · 2016 [cited by examiner]
US 20160147730A1 · Cicerone · 2016 [cited by applicant]
EP 0652513A1 · 1995 [cited by applicant]
EP 1564666A1 · 2005 [cited by applicant]
EP 1926074A1 · 2008 [cited by applicant]
EP 2555126A2 · 2013 [cited by applicant]
EP 2876587A1 · 2015 [cited by applicant]
EP 3093809A1 · 2016 [cited by applicant]
EP 3188006A1 · 2017 [cited by applicant]
WO WO2012025915A1 · 2012 [cited by applicant]
“U.S. Appl. No. 15/800,856, First Action Interview—Office Action Summary mailed Jan. 31, 2020”. [cited by applicant]
“U.S. Appl. No. 15/800,856, First Action Interview—Pre-Interview Communication mailed Oct. 7, 2019”. [cited by applicant]
“U.S. Appl. No. 15/800,856, Notice of Allowance mailed Jul. 14, 2020”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 15/800,856, Response filed Apr. 1, 2020 to First Action Interview—Office Action Summary mailed Jan. 31, 2020”, 12 pgs. [cited by applicant]
“Help File for ModelRisk Version 5—Part 1”, Vose Software, (2007), 375 pgs. [cited by applicant]
“Help File for ModelRisk Version 5—Part 2”, Vose Software, (2007), 362 pgs. [cited by applicant]
Ashraf, “Protect your Google Account (Gmail) by enabling SMS (text message) notifications for Suspicious Activity”, online article from Jan. 24, 2013. https://dottech.org/94405/how-to-setup-text-message-sms-google-notif… [cited by applicant]
Ballesteros, Francisco, et al., “Batching: A Design Pattern for Efficient and Flexible Client/Server Interaction”, Transaction on Pattern Language of Programming I, (c) Springer-Verlag Berlin Heidelberg 2009, (2009), 48… [cited by applicant]
Bogle, Phillip, et al., “Reducing Cross-Domain Call Overhead Using Batched Futures”, SIGPLAN No. 29, 10, OOPSLA '94, (Oct. 1994), 341-354. [cited by applicant]
Chen, Chia-Ying, et al., “A Novel Emergency Vehicle Dispatching System”, 2013 IEEE 77th Vehicular Technology Conference, IEEE, (Jun. 2, 2013), 5 pgs. [cited by applicant]
Eklund, Peter W., et al., “A Dynamic Multi-source Dijkstra's Algorithm for Vehicle Routing”, Intelligent Information Systems, (1996), 5 pgs. [cited by applicant]
Hart, Peter E., et al., “A Formal Basis for the Heuristic Determination of Minimum Cost Paths”, IEEE Transactions on Systems Science and Cybernetics, IEEE, vol. 1, No. 2, (Jul. 1968), 100-107. [cited by applicant]
Jotshi, Arun, et al., “Dispatching and Routing of Emergency Vehicles in Disaster Mitigation Using Data Fusion”, Socio-Economic Planning Sciences, Pergamon, Amsterdam, Netherlands, vol. 43, No. 1, (Mar. 1, 2009), 24 pgs. [cited by applicant]
Mohring, Rolf H., “Partitioning Graphs to Speedup Dijkstra's Algorithm”, ACM Journal of Experimental Algorithmics, Association of Computing Machinery, New York, New York, vol. 11, (Jan. 1, 2006), 29 pgs. [cited by applicant]
Reedy, Sarah, “Policy and Charging Rules Function (PCRF)”, http://www.lightreading.com/document.asp?doc_id=680015 printed Dec. 10, 2013, (Sep. 13, 2010), 4 pgs. [cited by applicant]
Stamos, James, et al., “Remote Evaluation”, ACM Transactions on Programming Languages and Systems, vol. 12, No. 4, (Oct. 1990), 537-565. [cited by applicant]
Wagner, Dorothea, et al., “Dynamic Shortest Paths Containers”, Electronic Notes in Theoretical Computer Science, vol. 92, No. 1, (2003), 19 pgs. [cited by applicant]
Yang, Shu, “An Enhanced Routing Method with Dijkstra Algorithm and AHP Analysis in GIS-based Emergency Plan”, Geoinformatics, 2010 18th International Conference on, IEEE, Piscataway, New Jersey, (Jun. 18, 2010), 6 pgs. [cited by applicant]