IP Library Granted Patent US 10,599,653
Granted Patent B2
US 10,599,653 · App. 16/237,580 · Granted Mar 24, 2020

Systems and methods for linking electronic activities to node profiles

Inventors: Oleg Rogynskyy (Menlo Park, CA); Rajit Kurien Joseph (San Francisco, CA); Jose Alberto Muniz Navarro (San Francisco, CA)
Assignee: People.ai, Inc.
G06F16/24558G06F7/14G06F11/3024G06F11/3452G06F11/3495G06F16/122G06F16/178G06F16/1734G06F16/212G06F16/215G06F16/219G06F16/22G06F16/221G06F16/2228G06F16/2264G06F16/2272G06F16/23G06F16/235G06F16/2365G06F16/2379G06F16/2386G06F16/245G06F16/2457G06F16/2477G06F16/24564G06F16/24575G06F16/24578G06F16/254G06F16/256G06F16/26G06F16/27G06F16/273G06F16/28G06F16/285G06F16/288G06F16/289G06F16/29G06F16/337G06F16/355G06F16/901G06F16/906G06F16/9024G06F16/9035G06F16/90344G06F16/9535G06F17/27G06F17/2705G06F17/278G06F21/6218G06N3/08G06N5/04G06N7/02G06N20/00G06Q10/04G06Q10/06312G06Q10/06393G06Q10/06398G06Q10/107G06Q10/1091G06Q10/1095G06Q50/22G16H15/00G16H50/20G16H50/30H04L41/14H04L43/026H04L43/045H04L43/062H04L43/065H04L43/067H04L43/0876H04L43/14H04L51/046H04L51/22H04L51/34H04L61/15H04L67/125H04L67/22H04L67/30H04L67/306H04M3/436H04M15/755G06Q10/10H04L61/307H04M3/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 10,599,653
App. No.
16/237,580
Granted
Mar 24, 2020
Kind
B2
Abstract

The system described herein can automatically match, link, or otherwise associate electronic activities with one or more node profiles. For an electronic activity that is eligible or qualifies to be matched with one or more node profiles, the system can selectively apply rules to match the electronic activity to a subset of the one or more node profiles based on values of fields extracted from the electronic activity and values of the node profiles. The system can then store an association between the electronic activity and the subset of the one or more node profiles.

Claims (61)

1. A method comprising:

accessing, by one or more processors, a plurality of electronic activities transmitted or received via electronic accounts associated with a plurality of data source providers, the one or more processors maintaining a plurality of node profiles and configured to update the plurality of node profiles using the plurality of electronic activities;

identifying, by the one or more processors, from data included in an electronic activity of the plurality of electronic activities, a plurality of strings;

generating, by the one or more processors, a plurality of activity field-value pairs from the plurality of strings using an electronic activity parsing policy;

comparing, by the one or more processors, the plurality of activity field-value pairs to respective node field-value pairs of one or more node profiles maintained by the one or more processors;

generating, by the one or more processors, for each node profile of the plurality of node profiles, a match score of the node profile indicating a likelihood that the electronic activity is transmitted or received by an account corresponding to the node profile based on comparing the plurality of activity field-value pairs to respective node field-value pairs of the node profile;

determining, by the one or more processors, a subset of the plurality of node profiles with which to link the electronic activity responsive to determining that the match score of each node profile of the subset satisfies a threshold;

determining, by the one or more processors, for a first node profile of the subset of the plurality of node profiles, that a first value of a first activity field-value pair of the electronic activity matches a first value of a first field of the first node profile; and

updating, by the one or more processors, a value data structure corresponding to the first value of the first field of the first node profile by adding a first entry identifying the electronic activity to the value data structure.

2. The method of claim 1 , further comprising determining, by the one or more processors, a contribution score of the first entry based on a trust score of a source of the electronic activity, the contribution score used to determine a confidence score of the first value of the first field of the first node profile.

3. The method of claim 2 , further comprising determining the confidence score of the first value of the first field of the first node profile based on the contribution score of the first entry and respective contribution scores of one or more additional entries included in the value data structure of the first value.

4. The method of claim 1 , further comprising:

determining, by the one or more processors, that a second value of a second activity field-value pair matches a second value of a second field of the first node profile; and

adding, by the one or more processors, to a second value data structure of the second field of the first node profile, a second entry identifying the electronic activity.

5. The method of claim 1 , further comprising:

determining, by the one or more processors, that a second value of a second activity field-value pair of the electronic activity does not match any value of a corresponding second field of the first node profile; and

generating, by the one or more processors, a second value data structure corresponding to the second field of the first node profile using the second value, the second value data structure including a second entry that identifies the electronic activity.

6. The method of claim 1 , further comprising:

identifying a first string of the plurality of strings from a portion of the electronic activity;

determining a confidence score that the first string is a first name based on comparing the first string to a plurality of values of the node field-value pairs and the portion of the electronic activity from which the first string was identified; and

using the first string as a value to a first name field of the activity field-value pairs of the electronic activity.

7. The method of claim 1 , wherein each node profile includes a plurality of fields, each field of the plurality of fields associated with one or more value data structures, each value data structure of the one or more value data structures identifying a value and including one or more entries corresponding to respective one or more data points that support the value of the value data structure.

8. The method of claim 1 , wherein each node profile includes a plurality of fields, the plurality of fields includes a first name field, a last name field, a phone number field, an email address field and a company name field.

9. The method of claim 1 , further comprising determining the subset of node profiles to correspond to a sender of the electronic activity, the subset being a first subset, the electronic activity being a first electronic activity, the method further comprising:

identifying a second electronic activity,

determining the second electronic activity to be at least one of a reply to or a forward of the first electronic activity,

determining a second subset of node profiles that match the second electronic activity, and

updating the first subset of node profiles using the second electronic activity.

10. The method of claim 9 , further comprising increasing the match score of at least one node profile of the subset of node profiles responsive to determining that the second electronic activity is at least one of a forward or a reply to the first electronic activity.

11. The method of claim 1 , further comprising determining the match score based on determining that the electronic activity is at least one of a forward or a reply.

12. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, the one or more processors configured to:

access a plurality of electronic activities transmitted or received via electronic accounts associated with a plurality of data source providers, the one or more processors maintaining a plurality of node profiles and configured to update the plurality of node profiles using the plurality of electronic activities;

identify, from data included in an electronic activity of the plurality of electronic activities, a plurality of strings;

generate a plurality of activity field-value pairs from the plurality of strings using an electronic activity parsing policy;

compare the plurality of activity field-value pairs to respective node field-value pairs of one or more node profiles maintained by the one or more processors;

generate, for each node profile of the plurality of node profile, a match score of the node profile indicating a likelihood that the electronic activity is transmitted or received by an account corresponding to the node profile based on comparing the plurality of activity field-value pairs to respective node field-value pairs of the node profile;

determine a subset of the plurality of node profiles with which to link the electronic activity responsive to determining that the match score of each node profile of the subset satisfying a threshold;

determine, for a first node profile of the subset of the plurality of node profiles, that a first value of a first activity field-value pair of the electronic activity matches a first value of a first field of the first node profile; and

update a value data structure corresponding to the first value of the first field of the first node profile by adding a first entry identifying the electronic activity to the value data structure.

13. The system of claim 12 , wherein the one or more processors are further configured to:

determine that a second value of a second activity field-value pair of the electronic activity does not match any value of a corresponding second field of the first node profile; and

generate a second value data structure corresponding to the second field of the first node profile using the second value, the second value data structure including a second entry that identifies the electronic activity.

14. The system of claim 12 , wherein the one or more processors are further configured to:

further comprising:

identify a first string of the plurality of strings from a portion of the electronic activity;

determine a confidence score that the first string is a first name based on comparing the first string to a plurality of values of a first name field of the plurality of node profiles and the portion of the electronic activity from which the first string was identified; and

use the first string as a value to a first name field of the activity field-value pairs of the electronic activity.

15. The system of claim 12 , wherein each node profile includes a plurality of fields, each field of the plurality of fields associated with one or more value data structures, each value data structure of the one or more value data structures identifying a value and including one or more entries corresponding to respective one or more data points that support the value of the value data structure.

16. The system of claim 12 , wherein each node profile includes a plurality of fields, the plurality of fields include a first name field, a last name field, a phone number field, an email address field and a company name field.

17. The system of claim 12 , wherein the one or more processors are further configured to:

determine that a second value of a second activity field-value pair matches a second value of a second field of the first node profile; and

add, to a second value data structure of the second field of the first node profile, a second entry identifying the electronic activity.

18. The system of claim 17 , wherein the one or more processors are further configured to:

determine a first string of the plurality of strings is a first string type that corresponds to a first field of the plurality of node profiles;

determine that the first string matches a first value of the first field of the first node profile; and

add, to a first value data structure of the first value of the first field of the first node profile, a first entry identifying the electronic activity.

19. The system of claim 18 , wherein the one or more processors are further configured to:

determine a contribution score of the first entry based on a trust score of a source of the electronic activity, the contribution score used to determine a confidence score of the first value of the first field of the first node profile; and

determine the confidence score of the first value of the first field of the first node profile based on the contribution score of the first entry and respective contribution scores of one or more additional entries included in the first value data structure of the first value.

Assignments (2)
SECURITY INTEREST Recorded Jan 19, 2023
From: PEOPLE.AI, INC.
To: BANK OF MONTREAL, AS ADMINISTRATIVE AGENT
Reel/Frame 062435/0828 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2019
From: ROGYNSKYY, OLEG
To: PEOPLE AI, INC.
Reel/Frame 047934/0872 →
Continuity (4)
Provisional Application 62676187 · May 24, 2018
Provisional Application 62725999 · Aug 31, 2018
Provisional Application 62747452 · Oct 18, 2018
Related Publication 20190361911A1 · Nov 28, 2019