IP Library Granted Patent US 11,909,837
Granted Patent B2
US 11,909,837 · App. 17/953,220 · Granted Feb 20, 2024

Systems and methods for auto discovery of filters and processing electronic activities using the same

Inventors: Oleg Rogynskyy (Menlo Park, CA); Yury Markovsky (San Francisco, CA); Tetiana Lutsaievska (San Jose, CA); John Wulf (San Francisco, CA)
Assignee: People.ai, Inc.
H04L67/535G06F7/14G06F9/542G06F11/3024G06F11/3452G06F11/3495G06F16/122G06F16/178G06F16/1734G06F16/182G06F16/212G06F16/215G06F16/219G06F16/22G06F16/221G06F16/2228G06F16/2264G06F16/2272G06F16/23G06F16/235G06F16/2358G06F16/2365G06F16/2379G06F16/2386G06F16/245G06F16/2457G06F16/2477G06F16/24558G06F16/24564G06F16/24575G06F16/24578G06F16/254G06F16/256G06F16/26G06F16/27G06F16/273G06F16/28G06F16/285G06F16/288G06F16/289G06F16/29G06F16/313G06F16/337G06F16/355G06F16/901G06F16/906G06F16/9024G06F16/9035G06F16/90344G06F16/9535G06F21/6218G06F40/20G06F40/237G06F40/295G06N3/08G06N5/025G06N5/04G06N7/02G06Q10/04G06Q10/06312G06Q10/06315G06Q10/06393G06Q10/06398G06Q10/063114G06Q10/107G06Q10/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/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 11,909,837
App. No.
17/953,220
Granted
Feb 20, 2024
Kind
B2
Abstract

The present disclosure relates to systems and methods for filtering electronic activities. Exemplary implementations may include ingesting a first electronic activity; identifying an associated entity; and selecting a first filtering model based on the entity, the first filtering model trained to indicate whether to restrict further processing of ingested electronic activities. The method may further include generating a plurality of structured data tags for the first electronic activity; applying the selected first filtering model to the plurality of structured data tags for the first electronic activity to determine whether the first electronic activity satisfies a first restriction condition; and responsive to the first electronic activity satisfying the first restriction condition, restricting the first electronic activity from further processing; or responsive to the first electronic activity not satisfying the first restriction condition, further processing, by the one or more processors, the first electronic activity.

Claims (71)

1. A method, comprising:

accessing, by a data processing system including one or more processors, from one or more servers of a customer relationship management (CRM) system, a plurality of CRM systems of record including a plurality of CRM record objects, each CRM record object of the plurality of CRM record objects corresponding to a record object type and comprising one or more object fields having one or more object field values, each respective CRM system of record of the plurality of the CRM systems of record corresponding to a respective data source provider of the plurality of data source providers;

generating, by the data processing system, a plurality of local record objects corresponding to the plurality of CRM record objects, each respective local record object of the plurality of local record objects storing record object data obtained from the corresponding CRM record object, the record object data stored in the plurality of local record objects used by the data processing system for matching electronic activities to the plurality of local record objects;

accessing, by the data processing system, from a plurality of electronic accounts corresponding to member entities associated with a group entity, data corresponding to a plurality of first electronic activities, each first electronic activity of the plurality of first electronic activities accessible via a respective electronic account of a member entity belonging to the group entity;

for each first electronic activity of the plurality of first electronic activities:

identifying, by the data processing system, the group entity associated with the electronic account via which the first electronic activity is accessible;

selecting, by the data processing system, a filtering model based on the group entity and the member entity, the filtering model trained to indicate whether to match the accessed electronic activities with one or more CRM record objects using training data generated from a plurality of second electronic activities, at least one second electronic activity of the plurality of second electronic activities labeled to be restricted from being matched;

applying, by the data processing system, the selected filtering model to the first electronic activity to determine whether the first electronic activity satisfies a restriction condition;

matching, by the data processing system, responsive to the first electronic activity not satisfying the restriction condition, the first electronic activity to a local record object of the plurality of local record objects by comparing a first set of one or more activity-field value pairs of the first electronic activity to corresponding record object data stored in the local record object; and

transmitting, by the data processing system, to the one or more servers of the CRM system, instructions to cause the one or more servers to store an association between the first electronic activity and a CRM record object with which the local record object corresponds.

2. The method of claim 1 , wherein accessing, from the one or more servers of a customer relationship management (CRM) system, the plurality of CRM systems of record including the plurality of CRM record objects includes receiving, via a connection to the one or more servers of the CRM system, data corresponding to a first set of CRM record objects included in a first CRM system of record of the plurality of CRM systems of record responsive to a request to retrieve record object data from the first CRM system of record.

3. The method of claim 1 , further comprising:

maintaining, by the data processing system, a plurality of node profiles including a plurality of node field-value pairs, each node-field-value pair identifying a node field and one or more node values;

matching, by the data processing system, the first electronic activity to a first node profile by comparing a second set of one or more activity-field value pairs of the first electronic activity to corresponding node field-value pairs of the first node profile; and

determining, by the data processing system, responsive to matching the first electronic activity to the first node profile, at least one value of a job title field, a seniority field or a department field of a first node profile of the plurality of node profiles corresponding to the member entity.

4. The method of claim 1 , wherein maintaining the plurality of node profiles includes storing, in the one or more data structures maintained by the data processing system, the node profiles and updating the node field-value pairs of the node profiles using the data corresponding to the plurality of first electronic activities.

5. The method of claim 1 , wherein applying, by the data processing system, the selected filtering model to the first electronic activity to determine whether the first electronic activity satisfies a restriction condition, the method further comprises:

applying, by the data processing system, the filtering model to the first electronic activity generates a filter score, and

determining, by the data processing system, whether the first electronic activity satisfies the restriction condition comprises comparing the filter score to a threshold.

6. The method of claim 1 , wherein selecting the filtering model based on the group entity and the member entity includes selecting the filtering model based on at least one of a job title, a seniority or a department of the first entity.

7. The method of claim 1 , further comprising:

redacting, by the data processing system, the first electronic activity responsive to identifying a portion of the first electronic activity that causes the first electronic activity to fail to satisfy the restriction condition;

generating, by the data processing system, electronic activity data using the first electronic activity, the electronic activity data omitting or encoding the identified portion; and

updating, by data processing system, a first node profile matching the first electronic activity using the electronic activity data.

8. The method of claim 1 , further comprising:

receiving, by the data processing system, an indication that the first electronic activity is not to be restricted; and

updating, by the data processing system, the filtering model based on the indication and based on whether the first electronic activity satisfied the restriction condition.

9. The method of claim 1 , wherein transmitting, to the one or more servers of the CRM system, the instructions to cause the one or more servers to store the association between the first electronic activity and a CRM record object with which the local record object corresponds comprises transmitting, to the one or more servers of the CRM systems, the instructions as part of a batch job to synchronize the local record object with the CRM record object.

10. A data processing system comprising:

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

access, from one or more servers of a customer relationship management (CRM) system, a plurality of CRM systems of record including a plurality of CRM record objects, each CRM record object of the plurality of CRM record objects corresponding to a record object type and comprising one or more object fields having one or more object field values, each respective CRM system of record of the plurality of the CRM systems of record corresponding to a respective data source provider of the plurality of data source providers;

generate, a plurality of local record objects corresponding to the plurality of CRM record objects, each respective local record object of the plurality of local record objects storing record object data obtained from the corresponding CRM record object, the record object data stored in the plurality of local record objects used by the data processing system for matching electronic activities to the plurality of local record objects;

access, from a plurality of electronic accounts corresponding to member entities associated with a group entity, data corresponding to a plurality of first electronic activities, each first electronic activity of the plurality of first electronic activities accessible via a respective electronic account of a member entity belonging to the group entity;

for each first electronic activity of the plurality of first electronic activities:

identify the group entity associated with the electronic account via which the first electronic activity is accessible;

select a filtering model based on the group entity and the member entity, the filtering model trained to indicate whether to match the accessed electronic activities with one or more CRM record objects using training data generated from a plurality of second electronic activities, at least one second electronic activity of the plurality of second electronic activities labeled to be restricted from being matched;

apply the selected filtering model to the first electronic activity to determine whether the first electronic activity satisfies a restriction condition;

match, responsive to the first electronic activity not satisfying the restriction condition, the first electronic activity to a local record object of the plurality of local record objects by comparing a first set of one or more activity-field value pairs of the first electronic activity to corresponding record object data stored in the local record object; and

transmit to the one or more servers of the CRM system, instructions to cause the one or more servers to store an association between the first electronic activity and a CRM record object with which the local record object corresponds.

11. The system of claim 10 , wherein to access, from the one or more servers of a customer relationship management (CRM) system, the plurality of CRM systems of record including the plurality of CRM record objects, the one or more hardware processors are configured to receive, via a connection to the one or more servers of the CRM system, data corresponding to a first set of CRM record objects included in a first CRM system of record of the plurality of CRM systems of record responsive to a request to retrieve record object data from the first CRM system of record.

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

maintain a plurality of node profiles including a plurality of node field-value pairs, each node-field-value pair identifying a node field and one or more node values;

match the first electronic activity to a first node profile by comparing a second set of one or more activity-field value pairs of the first electronic activity to corresponding node field-value pairs of the first node profile; and

determine, responsive to matching the first electronic activity to the first node profile, at least one value of a job title field, a seniority field or a department field of a first node profile of the plurality of node profiles corresponding to the member entity.

13. The system of claim 10 , wherein to apply the selected filtering model to the first electronic activity to determine whether the first electronic activity satisfies a restriction condition, the one or more hardware processors are further configured to:

apply the selected first filtering model to the second plurality of structured data tags for the first electronic activity generates a filter score, and

determine whether the first electronic activity satisfies the first restriction condition comprises comparing the filter score to a threshold.

14. The system of claim 10 , wherein to select the filtering model based on the group entity and the member entity, the one or more hardware processors are further configured to select the filtering model based on at least one of a job title, a seniority or a department of the first entity.

15. The system of claim 10 , wherein the one or more hardware processors configured to:

redact the first electronic activity responsive to identifying a portion of the first electronic activity that causes the first electronic activity to fail to satisfy the restriction condition;

generate electronic activity data using the first electronic activity, the electronic activity data omitting or encoding the identified portion; and

update a first node profile matching the first electronic activity using the electronic activity data.

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

receive an indication that the first electronic activity is not to be restricted; and

update the filtering model based on the indication and based on whether the first electronic activity satisfied the first restriction condition.

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

access, from one or more servers of a customer relationship management (CRM) system, a plurality of CRM systems of record including a plurality of CRM record objects, each CRM record object of the plurality of CRM record objects corresponding to a record object type and comprising one or more object fields having one or more object field values, each respective CRM system of record of the plurality of the CRM systems of record corresponding to a respective data source provider of the plurality of data source providers;

generate, a plurality of local record objects corresponding to the plurality of CRM record objects, each respective local record object of the plurality of local record objects storing record object data obtained from the corresponding CRM record object, the record object data stored in the plurality of local record objects used by the data processing system for matching electronic activities to the plurality of local record objects;

access, from a plurality of electronic accounts corresponding to member entities associated with a group entity, data corresponding to a plurality of first electronic activities, each first electronic activity of the plurality of first electronic activities accessible via a respective electronic account of a member entity belonging to the group entity;

for each first electronic activity of the plurality of first electronic activities:

identify the group entity associated with the electronic account via which the first electronic activity is accessible;

select a filtering model based on the group entity and the member entity, the filtering model trained to indicate whether to match the accessed electronic activities with one or more CRM record objects using training data generated from a plurality of second electronic activities, at least one second electronic activity of the plurality of second electronic activities labeled to be restricted from being matched;

apply the selected filtering model to the first electronic activity to determine whether the first electronic activity satisfies a restriction condition;

match, responsive to the first electronic activity not satisfying the restriction condition, the first electronic activity to a local record object of the plurality of local record objects by comparing a first set of one or more activity-field value pairs of the first electronic activity to corresponding record object data stored in the local record object; and

transmit to the one or more servers of the CRM system, instructions to cause the one or more servers to store an association between the first electronic activity and a CRM record object with which the local record object corresponds.

18. The non-transitory computer-readable storage medium of claim 17 , wherein to access, from the one or more servers of a customer relationship management (CRM) system, the plurality of CRM systems of record including the plurality of CRM record objects, the one or more processors are configured to receive, via a connection to the one or more servers of the CRM system, data corresponding to a first set of CRM record objects included in a first CRM system of record of the plurality of CRM systems of record responsive to a request to retrieve record object data from the first CRM system of record.

19. The non-transitory computer-readable storage medium of claim 17 , wherein the one or more processors are configured to:

maintain a plurality of node profiles including a plurality of node field-value pairs, each node-field-value pair identifying a node field and one or more node values;

match the first electronic activity to a first node profile by comparing a second set of one or more activity-field value pairs of the first electronic activity to corresponding node field-value pairs of the first node profile; and

determine, responsive to matching the first electronic activity to the first node profile, at least one value of a job title field, a seniority field or a department field of a first node profile of the plurality of node profiles corresponding to the member entity.

20. The non-transitory computer-readable storage medium of claim 17 , wherein to select the filtering model based on the group entity and the member entity, the one or more processors are further configured to select the filtering model based on at least one of a job title, a seniority or a department of the first entity.

Assignments (1)
SECURITY INTEREST Recorded Jan 19, 2023
From: PEOPLE.AI, INC.
To: BANK OF MONTREAL, AS ADMINISTRATIVE AGENT
Reel/Frame 062435/0828 →
Continuity (6)
Continuation 16895946 · Jun 8, 2020
Continuation 16418846 · May 21, 2019
Provisional Application 62747452 · Oct 18, 2018
Provisional Application 62725999 · Aug 31, 2018
Provisional Application 62676187 · May 24, 2018
Related Publication 20230011033A1 · Jan 12, 2023