IP Library › Granted Patent US 12,743,254
Granted Patent B2
US 12,743,254 · App. 18/743,895 · Granted Sep 22, 2026

Systems and methods for discovering automatable tasks

Inventors: Yoongu Kim (Cambridge, MA); Abdul Qadir (Bangalore, IN); Arjun Narayanaswamy (Bangalore, IN); Rohan Narayan Murty (Bangalore, IN); Shane Barratt (Portola Valley, CA); George Peter Nychis (Somerville, MA)
Assignee: Soroco Private Limited
G06F8/30G06F9/451G06F9/542G06F11/3051G06F11/3414G06F11/3423G06F11/3438G06F11/3447G06F11/3476G06N3/02H04L67/535H04L67/75G06F2201/81
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,743,254
App. No.
18/743,895
Filed
Jun 14, 2024
Granted
Sep 22, 2026
Kind
B2
Art Unit
2458
USPC
709/224
Abstract

According to at least one aspect, a system for analyzing computer usage data of a user to identify an underlying task being performed by the user is provided. The system includes a hardware processor and a non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the hardware processor, cause the hardware processor to perform: receiving a plurality of events each indicative of an action performed by a user and contextual information associated with the action performed by the user, clustering the plurality of events to generate a plurality of clustered events, identifying a plurality of sub-tasks in the plurality of clustered events that each comprise a sequence of clustered events, identifying a task in the plurality of clustered events being performed by the user that comprises at least one sub-task, and generating a score for the task indicative of a difficulty of automating the task.

Claims (47)

1 . A method, comprising:

using at least one computer hardware processor to perform:

monitoring, with a software application executing on a computing device, a user's interaction with the computing device, the monitoring comprising:

collecting usage data indicating the user's keystrokes and clicks during the user's interaction with one or more application programs executing on the computing device,

collecting contextual information for the user's keystrokes and clicks, the contextual information for a particular keystroke or click indicating: (1) a particular application that the user interacted with when providing the particular keystroke or click; and (2) a particular button or field that the user interacted with when providing the particular keystroke or click;

organizing the collected usage data and contextual information for the user's keystrokes and clicks into a plurality of events, data for events in the plurality of events being stored in respective event data structures;

identifying a task being performed by the user at least in part by clustering events in the plurality of events; and

generating a score for the task indicative of a difficulty of automating the task using a number of applications used to perform the task, a number of keystrokes performed in the task and a number of clicks performed in the task.

2 . The method of claim 1 , further comprising: removing personal information of the user from the collected usage data and contextual information.

3 . The method of claim 1 , further comprising: obscuring personal information of the user from the collected usage data and contextual information.

4 . The method of claim 1 , wherein organizing the collected usage data and contextual information into the plurality of events comprises generating multiple data structures to store the usage data and the contextual information.

5 . The method of claim 1 , wherein collecting the contextual information for the particular keystroke or click includes gathering information regarding a state of a user interface when the user performed the particular keystroke or click.

6 . The method of claim 1 ,

wherein the at least one computer hardware processor includes a first computer hardware processor part of the computing device and a second computer hardware processor part of an external system to the computing device, and

wherein acts of monitoring and organizing, are performed by the first computer hardware processor; and

acts of identifying the task and generating the score are performed by the second computer hardware processor.

7 . The method of claim 5 , wherein gathering information regarding the state of the user interface includes gathering information selected from the group consisting of: a name of an active application, a title in a title bar of the active application, a value in at least one field of the active application, a size of a window of the active application, and a location of the window of the active application within the user interface.

8 . A system, comprising:

at least one computer hardware processor; and

at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising:

monitoring, with a software application executing on a computing device, a user's interaction with the computing device, the monitoring comprising:

collecting usage data indicating the user's keystrokes and clicks during the user's interaction with one or more application programs executing on the computing device,

collecting contextual information for the user's keystrokes and clicks, the contextual information for a particular keystroke or click indicating: (1) a particular application that the user interacted with when providing the particular keystroke or click; and (2) a particular button or field that the user interacted with when providing the particular keystroke or click;

organizing the collected usage data and contextual information for the user's keystrokes and clicks into a plurality of events, data for events in the plurality of events being stored in respective event data structures;

identifying a task being performed by the user at least in part by clustering events in the plurality of events; and

generating a score for the task indicative of a difficulty of automating the task using a number of applications used to perform the task, a number of keystrokes performed in the task and a number of clicks performed in the task.

9 . The system of claim 8 , wherein the method further comprises: removing personal information of the user from the collected usage data and contextual information.

10 . The system of claim 8 , wherein the method further comprises: obscuring personal information of the user from the collected usage data and contextual information.

11 . The system of claim 8 , wherein organizing the collected usage data and contextual information into the plurality of events comprises generating multiple data structures to store the usage data and the contextual information.

12 . The system of claim 8 , wherein collecting the contextual information for the particular keystroke or click includes gathering information regarding a state of a user interface when the user performed the particular keystroke or click.

13 . The system of claim 12 , wherein gathering information regarding the state of the user interface includes gathering information selected from the group consisting of: a name of an active application, a title in a title bar of the active application, a value in at least one field of the active application, a size of a window of the active application, and a location of the window of the active application within the user interface.

14 . The system of claim 8 ,

wherein the at least one computer hardware processor includes a first computer hardware processor part of the computing device and a second computer hardware processor part of an external system to the computing device, and

wherein acts of monitoring and organizing, are performed by the first computer hardware processor; and

acts of identifying the task and generating the score are performed by the second computer hardware processor.

15 . At least one non-transitory computer-readable storage medium storing processor executable instructions that, when executed by at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising:

monitoring, with a software application executing on a computing device, a user's interaction with the computing device, the monitoring comprising:

collecting usage data indicating the user's keystrokes and clicks during the user's interaction with one or more application programs executing on the computing device,

collecting contextual information for the user's keystrokes and clicks, the contextual information for a particular keystroke or click indicating: (1) a particular application that the user interacted with when providing the particular keystroke or click; and (2) a particular button or field that the user interacted with when providing the particular keystroke or click;

organizing the collected usage data and contextual information for the user's keystrokes and clicks into a plurality of events, data for events in the plurality of events being stored in respective event data structures;

identifying a task being performed by the user at least in part by clustering events in the plurality of events; and

generating a score for the task indicative of a difficulty of automating the task using a number of applications used to perform the task, a number of keystrokes performed in the task and a number of clicks performed in the task.

16 . The at least one non-transitory computer-readable storage medium of claim 15 , wherein the method further comprises: removing personal information of the user from the collected usage data and contextual information.

17 . The at least one non-transitory computer-readable storage medium of claim 15 , wherein the method further comprises: obscuring personal information of the user from the collected usage data and contextual information.

18 . The at least one non-transitory computer-readable storage medium of claim 15 , wherein organizing the collected usage data and contextual information into the plurality of events comprises generating multiple data structures to store the usage data and the contextual information.

19 . The at least one non-transitory computer-readable storage medium of claim 15 , wherein collecting the contextual information for the particular keystroke or click includes gathering information regarding a state of a user interface when the user performed the particular keystroke or click.

20 . The at least one non-transitory computer-readable storage medium of claim 19 , wherein gathering information regarding the state of the user interface includes gathering information selected from the group consisting of: a name of an active application, a title in a title bar of the active application, a value in at least one field of the active application, a size of a window of the active application, and a location of the window of the active application within the user interface.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2025
From: MURTY, ROHAN NARAYAN
To: SOROCO PRIVATE LIMITED
Reel/Frame 071837/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2025
From: SOROCO INDIA PRIVATE LIMITED
To: SOROCO PRIVATE LIMITED
Reel/Frame 071837/0511 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2025
From: KIM, YOONGU; NARAYANASWAMY, ARJUN; BARRATT, SHANE; NYCHIS, GEORGE PETER
To: SOROCO AMERICAS PRIVATE LIMITED
Reel/Frame 071837/0437 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2025
From: QADIR, ABDUL
To: SOROCO INDIA PRIVATE LIMITED
Reel/Frame 071837/0460 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2025
From: SOROCO AMERICAS PRIVATE LIMITED
To: SOROCO PRIVATE LIMITED
Reel/Frame 071837/0455 →
Continuity (5)
Continuation 17117369 · Dec 10, 2020
Continuation 16788726 · Feb 12, 2020
Continuation 15794934 · Oct 26, 2017
Provisional Application 62413277 · Oct 26, 2016
Related Publication 20250085929A1 · Mar 13, 2025
References Cited (110)
US 5907488A · Arimoto · 1999 [cited by examiner]
US 7234126B2 · Catthoor et al. · 2007 [cited by applicant]
US 7346629B2 · Kapur et al. · 2008 [cited by applicant]
US 7421654B2 · Wugoski · 2008 [cited by applicant]
US 7756272B2 · Kocher et al. · 2010 [cited by applicant]
US 7975239B2 · Bellotti et al. · 2011 [cited by applicant]
US 7996913B2 · Kocher et al. · 2011 [cited by applicant]
US 8209702B1 · Roytman et al. · 2012 [cited by applicant]
US 8433733B2 · Sayed et al. · 2013 [cited by applicant]
US 8965998B1 · Dicker et al. · 2015 [cited by applicant]
US 9047147B2 · Francis · 2015 [cited by applicant]
US 9053299B2 · Wieder · 2015 [cited by applicant]
US 9384121B2 · Jackson et al. · 2016 [cited by applicant]
US 9465679B2 · Stanley-Marbell et al. · 2016 [cited by applicant]
US 9465806B2 · Baker et al. · 2016 [cited by applicant]
US 9471778B1 · Seo et al. · 2016 [cited by applicant]
US 9477333B2 · Townsend et al. · 2016 [cited by applicant]
US 9542004B1 · Hu · 2017 [cited by applicant]
US 9602495B2 · Wyn-Harris · 2017 [cited by applicant]
US 10083159B1 · Bekmambetov et al. · 2018 [cited by applicant]
US 10120653B2 · Kim et al. · 2018 [cited by applicant]
US 10195531B2 · Osman et al. · 2019 [cited by applicant]
US 10430212B1 · Bekmambetov et al. · 2019 [cited by applicant]
US 10575231B2 · Gay et al. · 2020 [cited by applicant]
US 10613838B2 · Kim et al. · 2020 [cited by applicant]
US 10642375B2 · Lee · 2020 [cited by applicant]
US 10698661B2 · Kim et al. · 2020 [cited by applicant]
US 10710239B2 · Safary et al. · 2020 [cited by applicant]
US 10831450B2 · Kim et al. · 2020 [cited by applicant]
US 10891112B2 · Kim et al. · 2021 [cited by applicant]
US 11282088B1 · Lancaster · 2022 [cited by applicant]
US 11816112B1 · Nychis et al. · 2023 [cited by applicant]
US 12020046B1 · Nychis et al. · 2024 [cited by applicant]
US 12050889B2 · Kim et al. · 2024 [cited by applicant]
US 12159203B1 · Shukla et al. · 2024 [cited by applicant]
US 12288088B2 · Nychis et al. · 2025 [cited by applicant]
US 12321764B1 · Nychis et al. · 2025 [cited by applicant]
US 20020006603A1 · Peterson et al. · 2002 [cited by applicant]
US 20030126050A1 · Theiss et al. · 2003 [cited by applicant]
US 20030158855A1 · Farnham et al. · 2003 [cited by applicant]
US 20040104939A1 · Locke et al. · 2004 [cited by applicant]
US 20060184410A1 · Ramamurthy et al. · 2006 [cited by applicant]
US 20070299631A1 · Macbeth et al. · 2007 [cited by applicant]
US 20090106262A1 · Fallen et al. · 2009 [cited by applicant]
US 20090172534A1 · Budreau et al. · 2009 [cited by applicant]
US 20090172535A1 · Cheng et al. · 2009 [cited by applicant]
US 20100306683A1 · Pance · 2010 [cited by examiner]
US 20110179046A1 · Paull et al. · 2011 [cited by applicant]
US 20130055268A1 · Amershi et al. · 2013 [cited by applicant]
US 20130304906A1 · Yavilevich et al. · 2013 [cited by applicant]
US 20140129961A1 · Zubarev et al. · 2014 [cited by applicant]
US 20140132571A1 · Zeng et al. · 2014 [cited by applicant]
US 20140157288A1 · Wong · 2014 [cited by applicant]
US 20140215495A1 · Enrich et al. · 2014 [cited by applicant]
US 20140237033A1 · Shang · 2014 [cited by applicant]
US 20150135198A1 · Pack, III et al. · 2015 [cited by applicant]
US 20150339033A1 · Arnold et al. · 2015 [cited by applicant]
US 20160034274A1 · Diao et al. · 2016 [cited by applicant]
US 20160055040A1 · Treat et al. · 2016 [cited by applicant]
US 20160101522A1 · Hiruma et al. · 2016 [cited by applicant]
US 20160132600A1 · Woodhead et al. · 2016 [cited by applicant]
US 20160182657A1 · Mukherjee et al. · 2016 [cited by applicant]
US 20160240094A1 · Yan · 2016 [cited by applicant]
US 20160313939A1 · Andrews et al. · 2016 [cited by applicant]
US 20160378291A1 · Pokrzywka · 2016 [cited by applicant]
US 20170109601A1 · Gurwicz et al. · 2017 [cited by applicant]
US 20170124531A1 · McCormack · 2017 [cited by applicant]
US 20170147396A1 · Sekimoto et al. · 2017 [cited by applicant]
US 20170190052A1 · Jaekel et al. · 2017 [cited by applicant]
US 20170277396A1 · Chung et al. · 2017 [cited by applicant]
US 20170300564A1 · Feng et al. · 2017 [cited by applicant]
US 20170364576A1 · Chesla et al. · 2017 [cited by applicant]
US 20180027006A1 · Zimmermann et al. · 2018 [cited by applicant]
US 20180034657A1 · Brown et al. · 2018 [cited by applicant]
US 20180101466A1 · O'Dowd et al. · 2018 [cited by applicant]
US 20180113780A1 · Kim et al. · 2018 [cited by applicant]
US 20180113781A1 · Kim et al. · 2018 [cited by applicant]
US 20180181377A1 · Kim et al. · 2018 [cited by applicant]
US 20180322004A1 · Jain et al. · 2018 [cited by applicant]
US 20180349482A1 · Oliner et al. · 2018 [cited by applicant]
US 20180365309A1 · Oliner et al. · 2018 [cited by applicant]
US 20190034173A1 · Kim et al. · 2019 [cited by applicant]
US 20190179290A1 · Yoshida et al. · 2019 [cited by applicant]
US 20200147791A1 · Safary et al. · 2020 [cited by applicant]
US 20200183656A1 · Kim et al. · 2020 [cited by applicant]
US 20200206920A1 · Ma et al. · 2020 [cited by applicant]
US 20200233707A1 · Ramamurthy et al. · 2020 [cited by applicant]
US 20200358796A1 · Kundu et al. · 2020 [cited by applicant]
US 20210117232A1 · Sriharsha et al. · 2021 [cited by applicant]
US 20210149641A1 · Kim et al. · 2021 [cited by applicant]
US 20210158268A1 · Berg et al. · 2021 [cited by applicant]
US 20220188283A1 · Jamieson et al. · 2022 [cited by applicant]
US 20240303100A1 · Nychis et al. · 2024 [cited by applicant]
CN 103927243A · 2014 [cited by applicant]
CN 112486708A · 2021 [cited by applicant]
Extended European Search Report for European Application No. 17864947.1 dated Jun. 2, 2020. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2017/58603 mailed Jan. 5, 2018. [cited by applicant]
Communication pursuant to Article 94(3) EPC for European Application No. 17864947.1 dated Oct. 28, 2021. [cited by applicant]
Clapp et al., Minimizing GUI Event Traces. Stanford Univeristy. FSE' 2016:422-34. [cited by applicant]
Lü et al., Gesture studio: authoring multi-touch interactions through demonstration and declaration. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM. Apr. 27, 2013:257-266. [cited by applicant]
Oh et al., Audio-based feedback techniques for teaching touchscreen gestures. ACM Transactions on Accessible Computing (TACCESS). Nov. 14, 2015;7(3):29 pages. [cited by applicant]
Zhang et al., Panappticon: Event-based Tracing to Measure Mobile Application and Platform Performance. IEEE. 2013:10 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/IB2023/000596 mailed Jan. 23, 2024. [cited by applicant]
International Preliminary Report on Patentability mailed Apr. 17, 2025 in connection with International Application No. PCT/IB2023/000596. [cited by applicant]
U.S. Appl. No. 19/102,209, filed Feb. 7, 2025, Nychis et al. [cited by applicant]
U.S. Appl. No. 19/080,333, filed Mar. 14, 2025, Nychis et al. [cited by applicant]
U.S. Appl. No. 19/092,695, filed Mar. 27, 2025, Kim et al. [cited by applicant]
U.S. Appl. No. 19/195,966, filed May 1, 2025, Nychis et al. [cited by applicant]
PCT/IB2023/00596, Jan. 23, 2024, International Search Report and Written Opinion. [cited by applicant]
PCT/IB2023/000596, Apr. 17, 2025, International Preliminary Report on Patentability. [cited by applicant]