IP Library › Granted Patent US 12,579,104
Granted Patent B2
US 12,579,104 · App. 18/808,694 · Granted Mar 17, 2026

Systems and methods for matching record objects to electronic activities using indexing

Inventors: Sergey Surkov (Foster City, CA); Mykola Pavlov (Kharkov, UA); Andrii Kvachov (Kiev, UA)
Assignee: People.ai, Inc.
G06F16/148G06F16/13
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,579,104
App. No.
18/808,694
Granted
Mar 17, 2026
Kind
B2
Abstract

The present disclosure relates to linking electronic activities between systems of record based on a comparison of electronic activity signals and system of record signals. Indexed files can be generated for each of a plurality of record objects of a system of record. An electronic activity may be accessed. A search query may be generated. Match scores for the record objects may be generated. An association between an electronic activity and a record object may be stored. Instructions to link to the electronic activity to the record object may be transmitted.

Claims (82)

1 . A system comprising:

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

identify a plurality of customer relationship management (CRM) record objects of a CRM system of record, each CRM record object of the plurality of CRM record objects corresponding to a record object type and comprising a plurality of object fields, each object field having one or more respective object field values;

generate, for each CRM record object of the plurality of CRM record objects of the CRM system of record, an index file comprising data generated using the one or more respective object field values of the plurality of object fields of the CRM record object;

access an electronic mail message;

generate a search query responsive to extracting data from the electronic mail message;

generate, for each CRM record object of one or more of the plurality of CRM record objects, a match score based on a match between the search query and the index file corresponding to the CRM record object;

store, in one or more data structures, an association between the electronic mail message and a first CRM record object having a highest match score of the one or more CRM record objects; and

transmit instructions to link the electronic mail message to the first CRM record object in the CRM system of record.

2 . The system of claim 1 , wherein the one or more processors are configured to generate the index file for the CRM record object by:

extracting a subset of the one or more respective object field values from the plurality of object fields; and

aggregating the extracted subset into the index file for the CRM record object.

3 . The system of claim 1 , wherein each CRM record object of the plurality of CRM record objects corresponds to an account type or an opportunity type, and wherein the one or more processors are configured to generate the index file for the CRM record object by:

determining whether the CRM record object is an account record object or an opportunity record object;

extracting the data from the CRM record object;

aggregating the extracted data into an index file; and

labeling the index file with an indication according to the determining of whether the CRM record object or an account record object or an opportunity record object.

4 . The system of claim 1 , wherein each CRM record object of the plurality of CRM record objects corresponds to an account type or an opportunity type, and wherein the one or more processors are configured to:

generate a first set of index files comprising index files generated from data of account record objects and a second set of index files comprising index files generated from opportunity record objects; and

wherein the one or more processors are configured to generate the match score for each CRM record object of the plurality of CRM record objects by generating match scores for one or more index files of the first set of index files.

5 . The system of claim 1 , wherein the one or more processors are configured to generate the search query as a first search query, and the one or more of the plurality of CRM record objects comprises account record objects; and

wherein the one or more processors are configured to:

identify an account identifier of the first CRM record object responsive to the first CRM record object having the highest score of the plurality of CRM record objects;

generate a second search query by including the extracted data from the electronic mail message and the account identifier in the second search query; and

query a set of index files that correspond to a set of opportunity record objects with the second search query.

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

generate a second match score for each of second one or more of the set of opportunity record objects based on the query; and

store, in the one or more data structures, an association between the electronic mail message and a second CRM record object having a highest match score of the second one or more opportunity record objects.

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

generate a second match score for each of second one or more of the set of opportunity record objects based on the query; and

wherein the one or more processors are configured to:

store the association between the electronic mail message and the first CRM record object responsive to the first CRM record object having a highest match score compared with the second match scores.

8 . The system of claim 1 , wherein the one or more processors are configured to generate the match score for the CRM record object by:

calculating one or more of a domain score, a mention score, or a contact score by comparing the extracted data from the electronic mail message with the index file containing data from the CRM record object; and

generating the match score as a function of the one or more of the domain score, the mention score, or the contact score.

9 . The system of claim 8 , wherein the record has an account record object type, and wherein the one or more processors are configured to:

reduce the match score for the CRM record object responsive to the electronic mail message including a company name value matching an account name value of the CRM record object responsive to the account name value matching a data source provider name value of a data source provider that maintains the system of record.

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

increase the match score for the CRM record object responsive to the electronic mail message including a value matching an owner name value of the CRM record object.

11 . The system of claim 8 , wherein the one or more processors are configured to calculate the domain score by:

identifying a domain type of a first domain in the extracted data from the CRM record object;

determining the extracted data from the electronic mail message includes a second domain that matches the first domain; and

calculating the domain score based on the domain type of the first domain responsive to the determining the second domain matches the first domain.

12 . The system of claim 11 , wherein the one or more processors are configured to determine the second domain matches the first domain by:

determining the second domain is an exact match to the first domain; and

wherein the one or more processors are configured to calculate the domain score based on the determining that the second domain is an exact match to the first domain.

13 . The system of claim 8 , wherein the one or more processors are configured to calculate the mention score by:

determining the extracted data from the electronic mail message includes a first company name value that matches an account name value of the CRM record object; and

calculating the mention score based on the determining that the first company name value from the extracted data from the electronic mail message matches the account name value of the CRM record object.

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

generate a list of the one or more CRM record objects ranked based on the match score of each CRM record object; and

select the first CRM record object responsive to the first CRM record object having a highest ranking on the list.

15 . The system of claim 1 , wherein the one or more processors are configured to generate the search query by:

extracting key words from the electronic mail message; and

generating the search query from the key words.

16 . A method, comprising:

identifying, by one or more processors, a plurality of customer relationship management (CRM) record objects of a CRM system of record, each CRM record object of the plurality of CRM record objects corresponding to a record object type and comprising a plurality of object fields, each object field having one or more respective object field values;

generating, by the one or more processors, for CRM each record object of the plurality of CRM record objects of the CRM system of record, an index file comprising data generated using the one or more respective object field values of the plurality of object fields of the CRM record object;

accessing, by the one or more processors, an electronic mail message;

generating, by the one or more processors, a search query responsive to extracting data from the electronic mail message;

generating, by the one or more processors, for each CRM record object of one or more of the plurality of CRM record objects, a match score based on a match between the search query and the index file corresponding to the CRM record object;

storing, by the one or more processors in one or more data structures, an association between the electronic mail message and a first CRM record object having a highest match score of the one or more CRM record objects; and

transmitting, by the one or more processors, instructions to link the electronic mail message to the CRM first record object in the CRM system of record.

17 . The method of claim 16 , wherein generating the index file for the CRM record object comprises:

extracting, by the one or more processors, a subset of the one or more respective object field values from the plurality of object fields; and

aggregating, by the one or more processors, the extracted subset into the index file for the CRM record object.

18 . The method of claim 16 , wherein each CRM record object of the plurality of CRM record objects corresponds to an account type or an opportunity type, and wherein the generating the index file for the CRM record object comprises:

determining, by the one or more processors, whether the CRM record object is an account record object or an opportunity record object;

extracting, by the one or more processors, the data from the CRM record object;

aggregating, by the one or more processors, the extracted data into an index file; and

labeling, by the one or more processors, the index file with an indication according to the determining of whether the CRM record object is an account record object or an opportunity record object.

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

identify a plurality of customer relationship management (CRM) record objects of a CRM system of record, each CRM record object of the plurality of CRM record objects corresponding to a record object type and comprising a plurality of object fields, each object field having one or more respective object field values;

generate, for each CRM record object of the plurality of CRM record objects of the CRM system of record, an index file comprising data generated using the one or more respective object field values of the plurality of object fields of the CRM record object;

access an electronic mail message;

generate a search query responsive to extracting data from the electronic mail message;

generate, for each CRM record object of one or more of the plurality of CRM record objects, a match score based on a match between the search query and the index file corresponding to the CRM record object;

store, in one or more data structures, an association between the electronic mail message and a first CRM record object having a highest match score of the one or more CRM record objects; and

transmit instructions to link the electronic mail message to the first CRM record object in the CRM system of record.

20 . The non-transitory computer-readable storage medium of claim 19 , wherein the instructions are executable by the one or more processors to generate the index file for the CRM record object by:

extracting a subset of the one or more respective object field values from the plurality of object fields; and

aggregating the extracted subset into the index file for the CRM record object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2026
From: SURKOV, SERGEY; PAVLOV, MYKOLA; KVACHOV, ANDRII
To: PEOPLE AI, INC.
Reel/Frame 073810/0670 →
Continuity (2)
Continuation 18091999 · Dec 30, 2022
Related Publication 20240411722A1 · Dec 12, 2024
References Cited (41)
US 4336421A · Welch · 1982 [cited by examiner]
US 8406745B1 · Upadhyay et al. · 2013 [cited by applicant]
US 8448072B1 · Lai et al. · 2013 [cited by applicant]
US 10235685B2 · Sun et al. · 2019 [cited by applicant]
US 10318543B1 · Sharifi · 2019 [cited by examiner]
US 10853411B2 · Waye · 2020 [cited by examiner]
US 11550769B2 · Xu · 2023 [cited by examiner]
US 20020174050A1 · Eynard et al. · 2002 [cited by applicant]
US 20060047635A1 · Kraenzel et al. · 2006 [cited by applicant]
US 20060080300A1 · Gruenwald · 2006 [cited by applicant]
US 20070011305A1 · Brady · 2007 [cited by examiner]
US 20090119290A1 · Lee · 2009 [cited by applicant]
US 20100046505A1 · Saw et al. · 2010 [cited by applicant]
US 20110179025A1 · Chuang · 2011 [cited by examiner]
US 20130073359A1 · Caplan · 2013 [cited by applicant]
US 20140258349A1 · Meltzer et al. · 2014 [cited by applicant]
US 20150113002A1 · Nadarajah et al. · 2015 [cited by applicant]
US 20160217429A1 · Lau · 2016 [cited by applicant]
US 20170039527A1 · Rangan · 2017 [cited by applicant]
US 20170186085A1 · Nagla · 2017 [cited by applicant]
US 20180060122A1 · Tang et al. · 2018 [cited by applicant]
US 20180150783A1 · Xu et al. · 2018 [cited by applicant]
US 20180268416A1 · Ponnusamy et al. · 2018 [cited by applicant]
US 20180322461A1 · Subedi et al. · 2018 [cited by applicant]
US 20190057339A1 · Ponnusamy et al. · 2019 [cited by applicant]
US 20190066021A1 · Tang et al. · 2019 [cited by applicant]
US 20190164179A1 · Sun et al. · 2019 [cited by applicant]
US 20190236199A1 · Mahalingam et al. · 2019 [cited by applicant]
US 20190236516A1 · Ponnusamy · 2019 [cited by applicant]
US 20190236620A1 · Knight · 2019 [cited by examiner]
US 20200074110A1 · Veeningen et al. · 2020 [cited by applicant]
US 20200183940A1 · Rogynskyy · 2020 [cited by examiner]
US 20200341991A1 · Taylor · 2020 [cited by examiner]
US 20210073220A1 · Bansal · 2021 [cited by examiner]
US 20210174290A1 · Rogynskyy · 2021 [cited by examiner]
US 20230114912A1 · Richard · 2023 [cited by examiner]
US 20230237190A1 · Padmanabhan · 2023 [cited by examiner]
US 20230351349A1 · Milam et al. · 2023 [cited by applicant]
https://pages.clari.com/rs/866-BBG-005/images/Clari-SB-AI-Applications-for-Sales-0917.pdf, Feb. 5, 2018. (9 pages). [cited by applicant]
Non-Final Office Action on U.S. Appl. No. 18/091,999 DTD Dec. 15, 2023. [cited by applicant]
[cited by applicant]