# US 11,909,837 B2 · Systems and methods for auto discovery of filters and processing electronic activities using the same

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,909,837 B2
- Document ID: US11909837B2
- Status: Granted
- Kind: B2
- Application number: 17/953,220
- Filed: 2022-09-26
- Published: 2023-01-12
- Granted: 2024-02-20
- Earliest claimed: 2018-05-24
- Assignees: People.ai, Inc.
- Applicants: People.ai, Inc.
- Inventors: Oleg Rogynskyy; Yury Markovsky; Tetiana Lutsaievska; John Wulf
- Web page: https://patentgrep.com/patent/US11909837B2

## CPC

- G06Q 10/107: Computer-aided management of electronic mailing [e-mailing]
- G06F 7/14: Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 11/3024: {where the computing system component is a central processing unit [CPU]}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 11/3495: {for systems}
- G06F 16/122: {using management policies (point-in-time backing up or restoration of persistent data G06F11/1446; file migration policies for HSM systems G06F16/185)}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 16/182: Distributed file systems
- G06F 16/212: {with details for data modelling support}
- G06F 16/215: Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/2228: {Indexing structures}
- G06F 16/2264: {Multidimensional index structures}
- G06F 16/2272: {Management thereof}
- G06F 16/23: Updating
- G06F 16/235: {Update request formulation}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/2386: {Bulk updating operations (data conversion details G06F16/258)}
- G06F 16/245: Query processing
- G06F 16/24558: {Binary matching operations}
- G06F 16/24564: {Applying rules; Deductive queries}
- G06F 16/2457: with adaptation to user needs
- G06F 16/24575: {using context}
- G06F 16/24578: {using ranking}
- G06F 16/2477: {Temporal data queries}
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/256: {in federated or virtual databases}
- G06F 16/26: Visual data mining; Browsing structured data
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 16/28: Databases characterised by their database models, e.g. relational or object models
- G06F 16/285: {Clustering or classification}
- G06F 16/288: {Entity relationship models}
- G06F 16/289: {Object oriented databases}
- G06F 16/29: Geographical information databases
- G06F 16/313: {Selection or weighting of terms for indexing}
- G06F 16/337: {Profile generation, learning or modification}
- G06F 16/355: Creation or modification of classes or clusters
- G06F 16/901: Indexing; Data structures therefor; Storage structures (for retrieval from the web G06F16/951)
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 16/90344: {by using string matching techniques}
- G06F 16/9035: Filtering based on additional data, e.g. user or group profiles
- G06F 16/906: Clustering; Classification
- G06F 16/93: Document management systems
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 40/20: Natural language analysis (semantic analysis of natural language G06F40/30)
- G06F 40/237: Lexical tools
- G06F 40/295: Named entity recognition
- G06F 40/30: Semantic analysis
- G06N 3/08: Learning methods
- G06N 3/09: Supervised learning
- G06N 5/022: Knowledge engineering; Knowledge acquisition
- G06N 5/025: Extracting rules from data
- G06N 5/04: Inference or reasoning models
- G06N 7/02: using fuzzy logic (computing arrangements based on biological models G06N3/00; computing arrangements using knowledge-based models G06N5/00)
- G06Q 10/04: Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem" (market predictions or forecasting for commercial activities G06Q30/0202)
- G06Q 10/063114: {Status monitoring or status determination for a person or group}
- G06Q 10/06312: {Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling}
- G06Q 10/06315: {Needs-based resource requirements planning or analysis}
- G06Q 10/06393: {Score-carding, benchmarking or key performance indicator [KPI] analysis}
- G06Q 10/06398: {Performance of employee with respect to a job function}
- G06Q 10/109: Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q 10/1091: Recording time for administrative or management purposes
- G06Q 10/1093: Calendar-based scheduling for persons or groups
- G06Q 10/40: Business processes related to social networking or social networking services
- G06Q 30/0201: Market modelling; Market analysis; Collecting market data
- G06Q 50/22: Social work or social welfare, e.g. community support activities or counselling services
- G16H 50/20: for computer-aided diagnosis, e.g. based on medical expert systems
- H04L 12/14: Charging, metering or billing arrangements specially adapted for data communications, e.g. authentication, authorisation and accounting [AAA] framework
- H04L 12/1831: {Tracking arrangements for later retrieval, e.g. recording contents, participants activities or behavior, network status}
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 41/14: Network analysis or design
- H04L 43/026: using flow identification
- H04L 43/045: for graphical visualisation of monitoring data
- H04L 43/062: related to network traffic
- H04L 43/065: related to network devices
- H04L 43/067: using time frame reporting
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 43/14: {using software, i.e. software packages (network security related monitoring H04L63/1408)}
- H04L 51/046: Interoperability with other network applications or services
- H04L 51/212: using filtering or selective blocking
- H04L 51/234: for tracking messages
- H04L 51/42: Mailbox-related aspects, e.g. synchronisation of mailboxes
- H04L 61/45: Network directories; Name-to-address mapping
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/30: Profiles
- H04L 67/303: Terminal profiles
- H04L 67/306: User profiles
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04M 3/436: Arrangements for screening incoming calls {, i.e. evaluating the characteristics of a call before deciding whether to answer it (based on the calling party profile H04M3/42059; based on location H04M3/42348; based on presence H04M3/42365; diversion H04M3/54)}
- H04M 3/5175: {Call or contact centers supervision arrangements}
- H04M 15/00: Arrangements for metering, time-control or time indication {; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP}
- H04M 15/41: {Billing record details, i.e. parameters, identifiers, structure of call data record [CDR]}
- H04M 15/58: {based on statistics of usage or network monitoring}
- H04M 15/60: {based on actual use of network resources}
- H04M 15/66: {Policy and charging system}
- H04M 15/755: {Account identification}
- H04W 4/24: Accounting or billing
- G06F 40/205: Parsing
- G06N 20/00: Machine learning
- G06Q 10/10: Office automation; Time management
- G16H 15/00: ICT specially adapted for medical reports, e.g. generation or transmission thereof
- G16H 50/30: for calculating health indices; for individual health risk assessment
- H04L 12/1407: {Policy-and-charging control [PCC] architecture}
- H04L 43/08: Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L 61/4594: Address books, i.e. directories containing contact information about correspondents (telephone directories in user terminals H04M1/27453)
- H04L 2101/00: Indexing scheme associated with group H04L61/00
- H04L 2101/35: containing special prefixes
- H04L 2101/37: E-mail addresses
- H04M 3/2218: {Call detail recording}
- H04M 3/56: Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities (video conference systems H04N7/15)
- H04M 15/50: {for cross-charging network operators}
- H04M 2203/556: Statistical analysis and interpretation
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G16H: HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 1)

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.

### Claim 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.

### Claim 11 (depends on 10)

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.

### Claim 12 (depends on 10)

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.

### Claim 13 (depends on 10)

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.

### Claim 14 (depends on 10)

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.

### Claim 15 (depends on 10)

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.

### Claim 16 (depends on 10)

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.

### Claim 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.

### Claim 18 (depends on 17)

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.

### Claim 19 (depends on 17)

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.

### Claim 20 (depends on 17)

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.
