IP Library Granted Patent US 12,468,562
Granted Patent B1
US 12,468,562 · App. 19/092,695 · Granted Nov 11, 2025

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
G06F9/451
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,468,562
App. No.
19/092,695
Granted
Nov 11, 2025
Kind
B1
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 (55)

1 . 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 hardware processor, cause the at least one computer hardware processor to perform:

receiving, by a computing device, an indication of an action performed by a user of the computing device via a graphical user interface (GUI) of an application executing on the computing device;

gathering, by the computing device, contextual information associated with the action performed by the user via the GUI of the application executing on the computing device;

storing information indicative of the action and the contextual information in a volatile memory of the computing device as an event;

determining whether the event stored in the volatile memory of the computing device includes personal information of the user;

after determining that the event stored in the volatile memory of the computing device does not include the personal information, writing the event to an event log in a non-volatile memory, the event log including a plurality of events;

identifying a task, in furtherance of which the user performed the action, 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, wherein the score is generated using at least one value selected from the group consisting of: information identifying applications used to perform the task, a number of applications used to perform the task, a number of user interface elements used in the task, an amount of natural language input provided to the applications during the task, a number of keystrokes performed in the task, a number of clicks performed in the task, a ratio between keystrokes and clicks performed in the task, a percentage of time spent performing typing actions in the task, a percentage of time spent performing clicking actions in the task, and a frequency of copy and paste actions performed in the task.

2 . The system of claim 1 , wherein the action includes at least one of a keystroke and a click.

3 . The system of claim 1 , wherein gathering the contextual information includes gathering information regarding a state of the user interface when the user performed the action.

4 . The system of claim 3 , wherein gathering the 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.

5 . The system of claim 1 , wherein storing the information indicative of the action and the contextual information in the volatile memory as the event comprises storing the information indicative of the action and the contextual information in the volatile memory without at least a portion of the personal information.

6 . The system 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 receiving, gathering, storing, determining, and writing, 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 system of claim 6 , wherein the processor-executable instructions further cause the at least one hardware processor to perform:

transmitting the event log to the external system.

8 . A method, comprising:

using at least one computer hardware processor to perform:

receiving an indication of an action performed by a user of a computing device via a graphical user interface (GUI) of an application executing on the computing device;

gathering contextual information associated with the action performed by the user via the GUI of the application executing on the computing device;

storing information indicative of the action and the contextual information in a volatile memory of the computing device as an event;

determining whether the event stored in the volatile memory of the computing device includes personal information of the user;

after determining that the event stored in the volatile memory of the computing device does not include the personal information, writing the event to an event log in a non-volatile memory, the event log including a plurality of events;

identifying a task, in furtherance of which the user performed the action, 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, wherein the score is generated using at least one value selected from the group consisting of: information identifying applications used to perform the task, a number of applications used to perform the task, a number of user interface elements used in the task, an amount of natural language input provided to the applications during the task, a number of keystrokes performed in the task, a number of clicks performed in the task, a ratio between keystrokes and clicks performed in the task, a percentage of time spent performing typing actions in the task, a percentage of time spent performing clicking actions in the task, and a frequency of copy and paste actions performed in the task.

9 . The method of claim 8 , wherein the action includes at least one of a keystroke and a click.

10 . The method of claim 8 , wherein gathering the contextual information includes gathering information regarding a state of the user interface when the user performed the action.

11 . The method of claim 10 , wherein gathering the 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.

12 . The method of claim 8 , wherein storing the information indicative of the action and the contextual information in the volatile memory as the event comprises storing the information indicative of the action and the contextual information in the volatile memory without at least a portion of the personal information.

13 . The method 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 receiving, gathering, storing, determining, and writing, 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.

14 . The method of claim 13 , further comprising:

transmitting the event log to the external system.

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:

receiving an indication of an action performed by a user of a computing device via a graphical user interface (GUI) of an application executing on the computing device;

gathering contextual information associated with the action performed by the user via the GUI of the application executing on the computing device;

storing information indicative of the action and the contextual information in a volatile memory of the computing device as an event;

determining whether the event stored in the volatile memory of the computing device includes personal information of the user;

after determining that the event stored in the volatile memory of the computing device does not include the personal information, writing the event to an event log in a non-volatile memory, the event log including a plurality of events;

identifying a task, in furtherance of which the user performed the action, 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, wherein the score is generated using at least one value selected from the group consisting of: information identifying applications used to perform the task, a number of applications used to perform the task, a number of user interface elements used in the task, an amount of natural language input provided to the applications during the task, a number of keystrokes performed in the task, a number of clicks performed in the task, a ratio between keystrokes and clicks performed in the task, a percentage of time spent performing typing actions in the task, a percentage of time spent performing clicking actions in the task, and a frequency of copy and paste actions performed in the task.

16 . The at least one non-transitory computer readable storage medium of claim 15 , wherein the action includes at least one of a keystroke and a click.

17 . The at least one non-transitory computer readable storage medium of claim 15 , wherein gathering the contextual information includes gathering information regarding a state of the user interface when the user performed the action.

18 . The at least one non-transitory computer readable storage medium of claim 17 , wherein gathering the 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.

19 . The at least one non-transitory computer readable storage medium of claim 15 , wherein storing the information indicative of the action and the contextual information in the volatile memory as the event comprises storing the information indicative of the action and the contextual information in the volatile memory without at least a portion of the personal information.

20 . The at least one non-transitory computer readable storage medium of claim 15 ,

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 receiving, gathering, storing, determining, and writing, 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.

Assignments (5)
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: SOROCO AMERICAS PRIVATE LIMITED
To: SOROCO PRIVATE LIMITED
Reel/Frame 071837/0455 →
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 INDIA PRIVATE LIMITED
To: SOROCO PRIVATE LIMITED
Reel/Frame 071837/0511 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2025
From: MURTY, ROHAN NARAYAN
To: SOROCO PRIVATE LIMITED
Reel/Frame 071837/0544 →
Continuity (5)
Continuation 18743895 · Jun 14, 2024
Continuation 17117369 · Dec 10, 2020
Continuation 16788726 · Feb 12, 2020
Continuation 15794934 · Oct 26, 2017
Provisional Application 62413277 · Oct 26, 2016
References Cited (108)
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 10810107B2 · Ophir · 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 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 20050071642A1 · Moghe · 2005 [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 20110179046A1 · Paull et al. · 2011 [cited by applicant]
US 20120054714A1 · Novak · 2012 [cited by applicant]
US 20130055268A1 · Amershi et al. · 2013 [cited by applicant]
US 20130304906A1 · Yavilevich et al. · 2013 [cited by applicant]
US 20140096249A1 · Dupont · 2014 [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 20160229052A1 · Touma et al. · 2016 [cited by applicant]
US 20160240094A1 · Yan · 2016 [cited by applicant]
US 20160261541A1 · Samuni · 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 · 2017 [cited by examiner]
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 20170374436A1 · Awiszus · 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]
US 20250085929A1 · Kim et al. · 2025 [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]
Communication pursuant to Article 94(3) EPC for European Application No. 17864947.1 dated Oct. 28, 2021. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2017/58603 mailed Jan. 5, 2018. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/IB2023/000596 mailed Jan. 23, 2024. [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 Preliminary Report on Patentability mailed Apr. 17, 2025 in connection with International Application No. PCT/IB2023/000596. [cited by applicant]