IP Library Granted Patent US 12,530,357
Granted Patent B2
US 12,530,357 · App. 18/630,209 · Granted Jan 20, 2026

Systems and methods for matching electronic activities with whitespace domains to record objects in a multi-tenant system

Inventors: Stefan Hermanek (San Francisco, CA); Andrii Cherednychenko (Kyiv, UA); Andrey Kvachov (Kyiv, UA); Armine Seropyan (Marina del Rey, CA); Ostap Korkuna (San Carlos, CA); Volodymyr Nykytiuk (San Francisco, CA); Eric Jeske (Tiburon, CA)
G06F16/2455G06F16/21
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,530,357
App. No.
18/630,209
Granted
Jan 20, 2026
Kind
B2
Abstract

The present disclosure relates to linking record objects between systems of record based on a comparison of object field-value pairs to a ground truth. A domain name may be identified from an electronic activity. It may be determined that the electronic activity does not match with any first record objects. A second record object including the domain name as a value may be identified. Object field-value pairs of the second record object may be identified. It may be determined that a third record object matches with the second record object. The electronic activity may be matched to the third second record object or a fourth record object. An association between the electronic activity and the third record object or the fourth record object may be stored.

Claims (72)

1 . A method comprising:

identifying, by one or more processors, a domain name from data of an electronic activity accessed from a data source provider;

determining, by the one or more processors, that the electronic activity fails to match to any first record objects of a first system of record corresponding to the data source provider responsive to a determination that the electronic activity fails to satisfy a first match policy based on the domain name;

executing a search by performing a lookup in a second system of record of a second data source provider accessible to the one or more processors using the domain name to identify, by the one or more processors, responsive to the determination that the electronic activity fails to match to any first record objects, a second record object included in the second system of record, the second record object of the second system of record including the domain name as a value of an object field of the second record object;

matching, by the one or more processors, a third record object from the first system of record to the second record object of the second system of record, responsive to the third record object satisfying a second match policy based on comparing one or more third object field-value pairs of the third record object with corresponding one or more second object field-value pairs of the second record object;

matching, by the one or more processors, the electronic activity to the third record object, responsive to the determination that the third record object of the first system of record matches to the second record object of the second system of record; and

transmitting via one or more application programming interface (API) calls, by the one or more processors, responsive to matching the electronic activity to the third record object, a request to cause the first system of record to link the electronic activity to the third record object.

2 . The method of claim 1 , wherein the one or more second object field-value pairs comprise a company name object field-value pair.

3 . The method of claim 1 , wherein the third record object is of a first record object type.

4 . The method of claim 1 , further comprising:

identifying, by the one or more processors, a second domain name from data of a second electronic activity accessed from the data source provider;

determining, by the one or more processors, that the second electronic activity fails to match to any first record objects of the first system of record corresponding to the data source provider, responsive to a determination that the second electronic activity fails to satisfy the first match policy;

identifying, by the one or more processors, responsive to the determination that the second electronic activity fails to match to any first record objects, a fourth record object included in a third system of record of a third data source provider accessible to the one or more processors, the fourth record object including the second domain name as a value of an object field of the fourth record object;

determining, by the one or more processors, that there are not any first record objects from the first system of record that satisfy the second match policy for the fourth record object of the third system of record based on comparing one or more fourth object field-value pairs of the fourth record object with corresponding one or more object field-value pairs of first record objects of the first system of record; and

generating, by the one or more processors, responsive to the determination that there are not any first record objects that satisfy the second match policy for the fourth record object, a fifth record object that includes the second domain name as a value of a domain name field of the fifth record object.

5 . The method of claim 1 , further comprising:

determining, by the one or more processors, a domain type of the domain name, wherein determining, by the one or more processors, that the electronic activity fails to match to any first record objects of the first system of record is performed responsive to the determination, by the one or more processors, that the domain type for the domain name is not a personal domain type.

6 . The method of claim 1 , wherein identifying, by the one or more processors, the second record object included in the second system of record of the second data source provider accessible to the one or more processors, the second record object including the domain name as the value of the object field of the second record object comprises:

determining, by the one or more processors, that the second record object satisfies a third match policy; and

identifying, by the one or more processors, the second record object based on the second record object satisfying the third match policy.

7 . The method of claim 1 , wherein identifying, by the one or more processors, the second record object included in the second system of record of the second data source provider accessible to the one or more processors, the second record object including the domain name as the value of the object field of the second record object comprises:

comparing, by the one or more processors, one or more fourth object field-value pairs of the second record object with corresponding one or more fifth object field-value pairs of a fifth record object of the second system of record that have matching domain name values to the domain name of the electronic activity;

determining, by the one or more processors, a matching confidence score based on the comparison;

determining, by the one or more processors, that the matching confidence score satisfies a threshold; and

identifying, by the one or more processors, the second record object based on the determination that the matching confidence score satisfies the threshold.

8 . The method of claim 1 , wherein identifying, by the one or more processors, the second record object included in the second system of record of the second data source provider accessible to the one or more processors, the second record object including the domain name as the value of the object field of the second record object comprises:

determining, by the one or more processors, most common values of corresponding fifth object field-value pairs of a fifth record object of the second system of record that have matching domain name values to the domain name of the electronic activity;

comparing, by the one or more processors, one or more fourth object field-value pairs of the second record object with the most common values of the corresponding one or more fifth object field-value pairs;

determining, by the one or more processors, a matching confidence score that is proportional to a number of the one or more fourth object field-value pairs that match the most common values of the corresponding one or more fifth object field-value pairs; and

identifying, by the one or more processors, the second record object based on the matching confidence score.

9 . The method of claim 8 , wherein the one or more fourth object field-value pairs are associated with one or more of a postal code or a company name.

10 . The method of claim 1 , wherein identifying, by the one or more processors, the second record object included in the second system of record of the second data source provider accessible to the one or more processors, the second record object including the domain name as the value of the object field of the second record object comprises:

determining, by the one or more processors, most common values of corresponding fifth object field-value pairs of at least one fifth record object of the second system of record that have matching domain name values to the domain name of the electronic activity by:

determining, by the one or more processors, a fifth record object that has a matching value to a company name prefix by:

applying, by the one or more processors, characters of the value of the company name field of the fifth record object to a data structure; and

determining, by the one or more processors, that the fifth record object has a matching value to the company name prefix based on a portion of the characters of the company name field of the fifth record object matching each character of the company name prefix; and

responsive to the determination that the fifth record object has a matching value to the company name prefix, incrementing, by the one or more processors, a counter associated with the company name prefix.

11 . The method of claim 10 , wherein the portion of the characters has a number of characters that is equal to the number of characters of the value of the company name field of the fifth record object.

12 . The method of claim 1 , wherein identifying, by the one or more processors, the second record object included in the second system of record of the second data source provider accessible to the one or more processors, the second record object including the domain name as the value of the object field of the second record object comprises:

determining, by the one or more processors, most common values of corresponding fourth object field-value pairs of a fourth record object of the second system of record that have matching values for a company name field by:

applying, by the one or more processors, the value of the company name field of the second record object and the values of the company name fields of fifth record objects to a data structure; and

excluding, by the one or more processors, the fifth record objects from the fourth record object based on the value of the company name field of the second record object ending on a different node than the values of the company name fields of the fifth record objects.

13 . The method of claim 1 , further comprising:

updating, by the one or more processors, the third record object to include the domain name as a domain name value of a domain name field of the third record object.

14 . A system comprising:

one or more processors configured to execute machine-readable instructions to:

identify a domain name from data of an electronic activity accessed from a data source provider;

determine that the electronic activity fails to match to any first record objects of a first system of record corresponding to the data source provider responsive to a determination that the electronic activity fails to satisfy a first match policy based on the domain name;

execute a search by performing a lookup in a second system of record of a second data source provider accessible to the one or more processors using the domain name to identify, responsive to the determination that the electronic activity fails to match to any first record objects, a second record object included in the second system of record, the second record object including the domain name as a value of an object field of the second record object;

match a third record object from the first system of record to the second record object of the second system of record, responsive to the third record object satisfying a second match policy based on comparing one or more third object field-value pairs of the third record object with corresponding one or more second object field-value pairs of the second record object;

match the electronic activity to the third record object, responsive to the determination that the third record object of the first system of record matches to the second record object of the second system of record; and

transmit via one or more application programming interface (API) calls, responsive to matching the electronic activity to the third record object, a request to cause the first system of record to link the electronic activity to the third record object.

15 . The system of claim 14 , wherein the one or more second object field-value pairs of the second record object comprise a company name object field-value pair.

16 . The system of claim 14 , wherein the third record object is of a first record object type.

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

identify a second domain name from data of a second electronic activity accessed from the data source provider;

determine that the second electronic activity fails to match to any first record objects of the first system of record corresponding to the data source provider, responsive to a determination that the second electronic activity fails to satisfy the first match policy;

identify, responsive to the determination that the second electronic activity fails to match to any first record objects, a fourth record object included in a third system of record of a third data source provider accessible to the one or more processors, the fourth record object including the second domain name as a value of an object field of the fourth record object;

determine that there are not any first record objects from the first system of record that satisfy the second match policy for the fourth record object of the third system of record based on comparing one or more fourth object field-value pairs of the fourth record object with corresponding one or more object field-value pairs of first record objects of the first system of record; and

generate, responsive to the determination that there are not any first record objects that satisfy the second match policy for the fourth record object, a fifth record object that includes the second domain name as a value of a domain name field of the fifth record object.

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

determine a domain type of the domain name, wherein determining, by the one or more processors, that the electronic activity fails to match to any first record objects of the first system of record is performed responsive to the determination, by the one or more processors, that the domain type for the domain name is not a personal domain type.

19 . The system of claim 14 , wherein the one or more processors are configured to identify, the second record object included in the second system of record of the second data source provider accessible to the one or more processors, the second record object including the domain name as the value of the object field of the second record object by:

determining that the second record object satisfies a third match policy; and

identifying the second record object based on the second record object satisfying the third match policy.

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

identify a domain name from data of an electronic activity accessed from a data source provider;

determine that the electronic activity fails to match to any first record objects of a first system of record corresponding to the data source provider responsive to a determination that the electronic activity fails to satisfy a first match policy based on the domain name;

execute a search by performing a lookup in a second system of record of a second data source provider accessible to the one or more processors using the domain name to identify, responsive to the determination that the electronic activity fails to match to any first record objects, a second record object included in the second system of record, the second record object including the domain name as a value of an object field of the second record object;

match a third record object from the first system of record to the second record object of the second system of record, responsive to the third record object satisfying a second match policy based on comparing one or more third object field-value pairs of the third record object with corresponding one or more second object field-value pairs of the second record object;

match the electronic activity to the third record object, responsive to the determination that the third record object of the first system of record matches to the second record object of the second system of record; and

transmit via one or more application programming interface (API) calls, responsive to matching the electronic activity to the third record object, a request to cause the first system of record to link the electronic activity to the third record object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: CHEREDNYCHENKO, ANDRII; KVACHOV, ANDREY; SEROPYAN, ARMINE; KORKUNA, OSTAP; NYKYTIUK, VOLODYMYR
To: PEOPLE.AI, INC.
Reel/Frame 067554/0106 →
Continuity (3)
Continuation 17520051 · Nov 5, 2021
Provisional Application 63110123 · Nov 5, 2020
Related Publication 20240256548A1 · Aug 1, 2024
References Cited (98)
US 8406745B1 · Upadhyay et al. · 2013 [cited by applicant]
US 8412847B2 · Longo · 2013 [cited by examiner]
US 8448072B1 · Lai et al. · 2013 [cited by applicant]
US 10235685B2 · Sun et al. · 2019 [cited by applicant]
US 11056219B2 · Fidone · 2021 [cited by examiner]
US 11651032B2 · Jayaraman · 2023 [cited by applicant]
US 20040260776A1 · Starbuck · 2004 [cited by examiner]
US 20050065980A1 · Hyatt · 2005 [cited by examiner]
US 20050289148A1 · Dorner · 2005 [cited by examiner]
US 20070067394A1 · Adams · 2007 [cited by examiner]
US 20070299869A1 · Clary · 2007 [cited by examiner]
US 20080005127A1 · Schneider · 2008 [cited by examiner]
US 20090172035A1 · Lessing · 2009 [cited by examiner]
US 20100046505A1 · Saw et al. · 2010 [cited by applicant]
US 20110078150A1 · Rashad et al. · 2011 [cited by applicant]
US 20110106920A1 · Longo · 2011 [cited by examiner]
US 20130085932A1 · Waldron · 2013 [cited by examiner]
US 20130117287A1 · Jagota et al. · 2013 [cited by applicant]
US 20140066044A1 · Ramnani · 2014 [cited by examiner]
US 20140172872A1 · Hyatt et al. · 2014 [cited by applicant]
US 20150019537A1 · Neels · 2015 [cited by examiner]
US 20160217429A1 · Lau · 2016 [cited by applicant]
US 20170032042A1 · Rykowski · 2017 [cited by examiner]
US 20170039527A1 · Rangan · 2017 [cited by applicant]
US 20180024901A1 · Tankersley · 2018 [cited by examiner]
US 20180060122A1 · Tang et al. · 2018 [cited by applicant]
US 20180150783A1 · Xu et al. · 2018 [cited by applicant]
US 20180219818A1 · Kramer · 2018 [cited by examiner]
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 20200387819A1 · Rogynskyy · 2020 [cited by examiner]
US 20210126901A1 · Rodriguez · 2021 [cited by examiner]
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. 17/520,051 DTD Mar. 16, 2023. [cited by applicant]
Notice of Allowance on U.S. Appl. No. 17/520,051 DTD Aug. 29, 2023. [cited by applicant]
Notice of Allowance on U.S. Appl. No. 17/520,051 DTD Dec. 28, 2023. [cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]
[cited by applicant]