IP Library Granted Patent US 12,166,832
Granted Patent B2
US 12,166,832 · App. 18/324,775 · Granted Dec 10, 2024

Systems and methods for detecting events based on updates to node profiles from electronic activities

Inventors: Oleg Rogynskyy (Menlo Park, CA); John Wulf (San Francisco, CA); Sathya Hariesh Prakash (San Franciso, CA); Tetiana Lutsaievska (San Jose, CA)
H04L67/535G06F7/14G06F9/542G06F11/3024G06F11/3452G06F11/3495G06F16/122G06F16/1734G06F16/178G06F16/182G06F16/212G06F16/215G06F16/219G06F16/22G06F16/221G06F16/2228G06F16/2264G06F16/2272G06F16/23G06F16/235G06F16/2358G06F16/2365G06F16/2379G06F16/2386G06F16/245G06F16/24558G06F16/24564G06F16/2457G06F16/24575G06F16/24578G06F16/2477G06F16/254G06F16/256G06F16/26G06F16/27G06F16/273G06F16/28G06F16/285G06F16/288G06F16/289G06F16/29G06F16/313G06F16/337G06F16/355G06F16/901G06F16/9024G06F16/90344G06F16/9035G06F16/906G06F16/9535G06F21/6218G06F21/6245G06F40/20G06F40/237G06F40/295G06N3/08G06N5/025G06N5/04G06N7/02G06Q10/04G06Q10/063114G06Q10/06312G06Q10/06315G06Q10/06393G06Q10/06398G06Q10/107G06Q10/109G06Q10/1091G06Q10/1095G06Q50/22G16H50/20H04L41/14H04L43/026H04L43/045H04L43/062H04L43/065H04L43/067H04L43/0876H04L43/14H04L51/046H04L51/212H04L51/234H04L51/42H04L61/45H04L67/125H04L67/30H04L67/303H04L67/306H04M3/436H04M15/755G06F40/205G06N20/00G06Q10/10G16H15/00G16H50/30H04L12/1407H04L2101/00H04L2101/35H04L2101/37H04M3/2218H04M3/56
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,166,832
App. No.
18/324,775
Granted
Dec 10, 2024
Kind
B2
Abstract

The present disclosure relates to methods, systems, and storage media for detecting events based on updates to node profiles from electronic activities. Exemplary implementations may access an electronic activity transmitted or received via an electronic account associated with a data source provider; generate a plurality of activity field-value pairs; maintain a plurality of node profiles; identify a first state of a first node profile of the plurality of node profiles; update the first node profile using the electronic activity; identify a second state of the first node profile subsequent to updating the first node profile using the electronic activity; detect a state change of the first node profile based on the first state and the second state; determine that the state change satisfies an event condition; and store an association between the first node profile and an event type corresponding to the event condition.

Claims (66)

1. A method, comprising:

accessing, by one or more processors, an electronic activity transmitted or received via an electronic account associated with a data source provider;

generating, by the one or more processors, by parsing the electronic activity, a plurality of activity field-value pairs from the electronic activity, each activity field-value pair including an activity value associated with an activity field;

maintaining, by the one or more processors, in one or more data structures stored in a memory coupled to the one or more processors, a plurality of node profiles, each node profile of the plurality of node profiles including one or more node field-value pairs, each node field-value pair including a node value associated with a node field;

identifying, by the one or more processors, a first state of a first node profile of the plurality of node profiles, the first state corresponding to a first node field-value pair of the one or more node field-value pairs of the first node profile;

selecting, by the one or more processors, the first node profile to update using the electronic activity based on a match score of the first node profile indicating a likelihood that the electronic activity is transmitted or received by the electronic account corresponding to the first node profile or a server corresponding to the electronic account;

updating, by the one or more processors, the first node profile using the electronic activity;

identifying, by the one or more processors, a second state of the first node profile subsequent to updating the first node profile using the electronic activity;

detecting, by the one or more processors, a state change of the first node profile based on the first state and the second state based on at least one of a tag assigned to the first node profile or an update regarding one or more node values associated with a first node field of the first node field-value pair;

determining, by the one or more processors, that the state change satisfies an event condition, the event condition corresponding to one or more predetermined node fields of the one or more node field-value pairs of the first node profile; and

storing, by the one or more processors, responsive to the state change satisfying the event condition, an association between the first node profile and an event type corresponding to the event condition.

2. The method of claim 1 , wherein updating the first node profile includes updating a second field-value pair corresponding to the first field using the electronic activity, the method further comprising:

identifying, by the one or more processors, a first field-value pair corresponding to the first field having a first highest confidence score in the first state;

identifying, by the one or more processors, that a confidence score of the second field-value pair is greater than a corresponding confidence score of the first field-value pair in the second state; and

wherein determining that the state change satisfies the event condition comprises determining that the confidence score of the second field-value pair is greater than the corresponding confidence score of the first field-value pair in the second state.

3. The method of claim 1 , further comprising:

receiving, by the one or more processors, a second electronic activity;

identifying, by the one or more processors, the first node profile and at least one candidate node profile of the plurality of node profiles to which to link the second electronic activity; and

selecting, by the one or more processors, the first node profile to which to link the second electronic activity responsive to detecting the state change to include the tag assigned to the first node profile.

4. The method of claim 1 , further comprising:

updating, by the one or more processors, responsive to the state change satisfying the event condition, a hierarchy data structure that includes the first node profile.

5. The method of claim 1 , wherein the tag is indicative of the electronic activity being a bounce-back electronic activity.

6. The method of claim 1 , further comprising:

determining, by the one or more processors, from the electronic activity, at least one of a time or date at which the first electronic activity was transmitted or received; and wherein

storing, by the one or more processors, the association between the first node profile and an event type corresponding to the event condition comprises storing the association between the first node profile and the event type corresponding to the event condition and the at least one of the time or the date.

7. The method of claim 1 , wherein determining that the state change satisfies the event condition comprises determining that the first node field is at least one of a job title field, a company field, or a last name field, and the update indicates that the one or more node values include a new value associated with the first field in the second state and not in the first state.

8. The method of claim 1 , wherein determining that the state change satisfies the event condition comprises determining that the first node field includes at least two of a city field, a state field, or a phone number field, and the update indicates the one or more node values to include a new value associated with the first field in the second state and not in the first state.

9. A system, the system comprising:

one or more hardware processors configured by machine-readable instructions to:

access an electronic activity transmitted or received via an electronic account associated with a data source provider;

generate by parsing the electronic activity, a plurality of activity field-value pairs from the electronic activity, each activity field-value pair including an activity value associated with an activity field;

maintain in one or more data structures stored in a memory coupled to the one or more processors, a plurality of node profiles, each node profile of the plurality of node profiles including one or more node field-value pairs, each node field-value pair including a node value associated with a node field;

identify a first state of a first node profile of the plurality of node profiles, the first state corresponding to a first node field-value pair of the one or more node field-value pairs of the first node profile;

select the first node profile to update using the electronic activity based on a match score of the first node profile indicating a likelihood that the electronic activity is transmitted or received by the electronic account corresponding to the first node profile or a server corresponding to the electronic account;

update the first node profile using the electronic activity;

identify a second state of the first node profile subsequent to updating the first node profile using the electronic activity;

detect a state change of the first node profile based on the first state and the second state based on at least one of a tag assigned to the first node profile or an update regarding one or more node values associated with a first node field of the first node field-value pair;

determine that the state change satisfies an event condition, the event condition corresponding to one or more predetermined node fields of the one or more node field-value pairs of the first node profile; and

store responsive to the state change satisfying the event condition, an association between the first node profile and an event type corresponding to the event condition.

10. The system of claim 9 , wherein updating the first node profile includes updating a second field-value pair corresponding to the first field using the electronic activity;

wherein the one or more hardware processors are further configured by machine-readable instructions to identify a first field-value pair corresponding to the first field having a first highest confidence score in the first state;

wherein the one or more hardware processors are further configured by machine-readable instructions to identify that a confidence score of the second field-value pair is greater than a corresponding confidence score of the first field-value pair in the second state;

wherein determining that the state change satisfies the event condition comprises determining that the confidence score of the second field-value pair is greater than the corresponding confidence score of the first field-value pair in the second state.

11. The system of claim 9 , wherein the one or more hardware processors are further configured by machine-readable instructions to:

receive a second electronic activity;

identify the first node profile and at least one candidate node profile of the plurality of node profiles to which to link the second electronic activity;

select the first node profile to which to link the second electronic activity responsive to detecting the state change to include the tag assigned to the first node profile.

12. The system of claim 9 , wherein the one or more hardware processors are further configured by machine-readable instructions to:

update responsive to the state change satisfying the event condition, a hierarchy data structure that includes the first node profile.

13. The system of claim 9 , wherein the tag is indicative of the electronic activity being a bounce-back electronic activity.

14. The system of claim 9 , wherein the one or more hardware processors are further configured by machine-readable instructions to:

determine from the electronic activity, at least one of a time or date at which the first electronic activity was transmitted or received;

wherein storing the association between the first node profile and an event type corresponding to the event condition comprises storing the association between the first node profile and the event type corresponding to the event condition and the at least one of the time or the date.

15. The system of claim 9 , wherein determining that the state change satisfies the event condition comprises determining that the first node field is at least one of a job title field, a company field, or a last name field, and wherein the update indicates that the one or more node values include a new value associated with the first field in the second state and not in the first state.

16. The system of claim 9 , wherein determining that the state change satisfies the event condition comprises determining that the first node field includes at least two of a city field, a state field, or a phone number field, and wherein the update indicates the one or more node values to include a new value associated with the first field in the second state and not in the first state.

17. A non-transitory computer-readable storage medium having instructions embodied thereon, the instructions being executable by one or more processors to perform a method, the method comprising:

accessing an electronic activity transmitted or received via an electronic account associated with a data source provider;

generating by parsing the electronic activity, a plurality of activity field-value pairs from the electronic activity, each activity field-value pair including an activity value associated with an activity field;

maintaining in one or more data structures stored in a memory coupled to the one or more processors, a plurality of node profiles, each node profile of the plurality of node profiles including one or more node field-value pairs, each node field-value pair including a node value associated with a node field;

identifying a first state of a first node profile of the plurality of node profiles, the first state corresponding to a first node field-value pair of the one or more node field-value pairs of the first node profile;

selecting the first node profile to update using the electronic activity based on a match score of the first node profile indicating a likelihood that the electronic activity is transmitted or received by the electronic account corresponding to the first node profile or a server corresponding to the electronic account;

updating the first node profile using the electronic activity;

identifying a second state of the first node profile subsequent to updating the first node profile using the electronic activity;

detecting a state change of the first node profile based on the first state and the second state based on at least one of a tag assigned to the first node profile or an update regarding one or more node values associated with a first node field of the first node field-value pair;

determining that the state change satisfies an event condition, the event condition corresponding to one or more predetermined node fields of the one or more node field-value pairs of the first node profile; and

storing responsive to the state change satisfying the event condition, an association between the first node profile and an event type corresponding to the event condition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2023
From: WULF, JOHN; PRAKASH, SATHYA HARIESH; LUTSAIEVSKA, TETIANA; ROGYNSKYY, OLEG
To: PEOPLE.AI, INC.
Reel/Frame 063777/0784 →
Continuity (70)
Continuation 17102397 · Nov 23, 2020
Continuation PCTUS2019034046 · May 24, 2019
Continuation 16213754 · Dec 7, 2018
Continuation 16237582 · Dec 31, 2018
Continuation 16237580 · Dec 31, 2018
Continuation 16237585 · Dec 31, 2018
Continuation In Part 16237579 · Dec 31, 2018
Continuation In Part 16371048 · Mar 31, 2019
Continuation In Part 16420059 · May 22, 2019
Continuation In Part 16421280 · May 23, 2019
Continuation In Part 16421288 · May 23, 2019
Continuation In Part 16421151 · May 23, 2019
Continuation In Part 16421328 · May 23, 2019
Continuation In Part 16421309 · May 23, 2019
Continuation In Part 16421298 · May 23, 2019
Continuation PCTUS2019034052 · May 24, 2019
Continuation 16213754 · Dec 7, 2018
Continuation 16237585 · Dec 31, 2018
Continuation 16237582 · Dec 31, 2018
Continuation 16237579 · Dec 31, 2018
Continuation 16237580 · Dec 31, 2018
Continuation 16360997 · Mar 21, 2019
Continuation 16361009 · Mar 21, 2019
Continuation 16361025 · Mar 21, 2019
Continuation 16360884 · Mar 21, 2019
Continuation 16360960 · Mar 21, 2019
Continuation 16371035 · Mar 31, 2019
Continuation 16399690 · Apr 30, 2019
Continuation 16418539 · May 21, 2019
Continuation 16418725 · May 21, 2019
Continuation PCTUS2019034033 · May 24, 2019
Continuation In Part 16213754 · Dec 7, 2018
Continuation In Part 16237585 · Dec 31, 2018
Continuation In Part 16237580 · Dec 31, 2018
Continuation In Part 16237579 · Dec 31, 2018
Continuation In Part 16237582 · Dec 31, 2018
Continuation In Part 16399679 · Apr 30, 2019
Continuation In Part 16418846 · May 21, 2019
Continuation In Part 16418807 · May 21, 2019
Continuation In Part 16420039 · May 22, 2019
Continuation In Part 16419583 · May 22, 2019
Continuation PCTUS2019034045 · May 24, 2019
Continuation 16213754 · Dec 7, 2018
Continuation 16237580 · Dec 31, 2018
Continuation 16237579 · Dec 31, 2018
Continuation 16237582 · Dec 31, 2018
Continuation 16237585 · Dec 31, 2018
Continuation 16371044 · Mar 31, 2019
Continuation 16371050 · Mar 31, 2019
Continuation 16371042 · Mar 31, 2019
Continuation 16398157 · Apr 29, 2019
Continuation 16399768 · Apr 30, 2019
Continuation 16418747 · May 21, 2019
Continuation 16418851 · May 21, 2019
Continuation 16418867 · May 21, 2019
Continuation 16420052 · May 22, 2019
Continuation PCTUS2019034062 · May 24, 2019
Continuation 16213754 · Dec 7, 2018
Continuation 16237585 · Dec 31, 2018
Continuation 16237579 · Dec 31, 2018
Continuation 16237580 · Dec 31, 2018
Continuation 16237582 · Dec 31, 2018
Continuation 16398150 · Apr 29, 2019
Continuation 16418892 · May 21, 2019
Continuation 16421256 · May 23, 2019
Continuation 16418836 · May 21, 2019
Provisional Application 62676187 · May 24, 2018
Provisional Application 62725999 · Aug 31, 2018
Provisional Application 62747452 · Oct 18, 2018
Related Publication 20230421654A1 · Dec 28, 2023