IP Library Granted Patent US 12,688,474
Granted Patent B2
US 12,688,474 · App. 18/207,881 · Granted Jul 21, 2026

Multi-service business platform system having entity resolution systems and methods

Inventors: Joshua James Miller (Somerville, MA); Marco Lagi (Medford, MA); Stephen John Purcell (Dublin, IE); Stuart Pope Layton (Waltham, MA); Jared Michael Williams (Somerville, MA); Bryan Frederick Ash (Arlington, MA); Sophie Alice Higgs (Cambridge, MA); Robert Fletcher McEneaney (Concord, MA); Dyan Christopher Sellberg (Swampscott, MA); Anna Coffey (Wenham, MA); Hector Urdiales (Dublin, IE); Edward Forbes Burns, II (Jamaica Plain, MA)
Assignee: HUBSPOT, INC.
G06Q10/06315G06F40/30G06F40/40G06Q30/0201
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,688,474
App. No.
18/207,881
Filed
Jun 9, 2023
Granted
Jul 21, 2026
Kind
B2
Art Unit
2165
USPC
707/692
Abstract

The disclosure is directed to various ways of improving the functioning of computer systems, information networks, data stores, search engine systems and methods, and other advantages. Among other things, provided herein are methods, systems, components, processes, modules, blocks, circuits, sub-systems, articles, and other elements (collectively referred to in some cases as the “platform” or the “system”) that collectively enable, in one or more datastores (e.g., where each datastore may include one or more databases) and systems, the creation, development, maintenance, and use of a set of custom objects for use in a wide range of activities, including sales activities, marketing activities, service activities, content development activities, and others, as well as improved methods and systems for sales, marketing and services that make use of such entity resolution systems and methods as well as custom objects.

Claims (73)

1 . A method comprising:

monitoring activity of a user accessing entities represented as objects stored within a customer relationship management (CRM) database hosted by a multi-service business platform;

generating a trigger derived from a context of the activity indicating that the user is viewing entity data extracted from the objects within the CRM database; and

in response to the trigger being generated from the user accessing an object within the CRM database and viewing entity data extracted from the object, triggering an on-demand deduplication action to remove duplicate objects from the CRM database, wherein the on-demand deduplication action is performed while the user is accessing the object within the CRM database and includes:

generating, utilizing an embedding model, embeddings for entities represented by the objects stored within the CRM database, wherein the embedding model is used to limit an embedding to a count of numbers less than an embedding size;

generating candidate duplicate entity pairs by processing the embeddings using an approximate nearest neighbors algorithm that includes implementation of a locality sensitive hashing algorithm using configurable parameters with values calculated over a grid of possible locality sensitive hashing algorithm configurations;

generating deduplication probabilities for the candidate duplicate entity pairs;

specifying that a first entity and a second entity represented by a candidate duplicate entity pair are duplicate entities based upon a deduplication probability for the candidate duplicate entity pair exceeding a threshold; and

performing the on-demand deduplication action upon objects, within the CRM database, representing the first entity and the second entity.

2 . The method of claim 1 , wherein the triggering the on-demand deduplication action comprises:

triggering, based upon a determination that a user has accessed an entity within the CRM database, the on-demand deduplication action to identify and display other entities within the CRM database that are identified as being duplicate entities with respect to the entity; and

identifying and displaying the duplicate entities in real-time while the user is accessing the entity.

3 . The method of claim 1 , wherein the triggering the on-demand deduplication action comprises:

triggering, based upon a determination that the context of the activity indicates an entity import operation being performed to import a set of entities into the CRM database, the on-demand deduplication action to identify and display other entities within the CRM database that are identified as being duplicate entities with respect to the set of entities; and

identifying and displaying the duplicate entities in real-time during operation of the entity import operation.

4 . The method of claim 1 , wherein the triggering the on-demand deduplication action comprises:

triggering, based upon a determination that the context of the activity indicates a user interacting with a user interface element of a user interface, the on-demand deduplication action to identify and display the duplicate entities within the user interface.

5 . The method of claim 1 , wherein the triggering the on-demand deduplication action comprises:

triggering, based upon a determination that the context of the activity indicates an update operation being performed upon the CRM database, the on-demand deduplication action to identify and display other entities within the CRM database that are identified as being duplicate entities with respect to a set of entities of the update operation, wherein the duplicate entities are identified and displayed in real-time during operation of the update operation.

6 . The method of claim 1 , wherein the generating the candidate duplicate entity pairs comprises:

implementing the locality sensitive hashing algorithm as the approximate nearest neighbors algorithm to processing the embedding for generating the candidate duplicate entity pairs.

7 . The method of claim 1 , wherein the generating the candidate duplicate entity pairs comprises:

implementing a hierarchical navigable small worlds (HNSW) as the approximate nearest neighbors algorithm to processing the embedding for generating the candidate duplicate entity pairs.

8 . The method of claim 1 , wherein the performing the on-demand deduplication action comprises:

providing a recommendation to a user to merge the first entity with the second entity.

9 . The method of claim 1 , comprising:

setting the embedding size to be a count between 16 numbers and 190 numbers.

10 . The method of claim 1 , comprising:

utilizing a self-supervised training technique to train the embedding model.

11 . The method of claim 1 , comprising:

training the embedding model based upon a training constraint that an entity ID within the CRM database is a duplicate of itself.

12 . The method of claim 1 , comprising:

training the embedding model using a set of unlabeled entities.

13 . The method of claim 1 , comprising:

training the embedding model using a set of unlabeled entities and a set of labeled entities that are labeled as duplicates.

14 . The method of claim 1 , comprising:

training the embedding model as a Siamese network with two identical embedding structures that use weight sharing, wherein a pair of entities that were merged by a user are each passed through one of the embedding structures for comparison.

15 . The method of claim 1 , comprising:

training the embedding model using a mixture of two loss functions corresponding to N-pairs hard mining loss and Barlow-twins loss.

16 . A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to perform operations comprising:

monitoring activity of a user accessing entities represented as objects stored within a customer relationship management (CRM) database hosted by a multi-service business platform;

generating a trigger derived from a context of the activity indicating that the user is viewing entity data extracted from the objects within the CRM database; and

in response to the trigger being generated from the user accessing an object within the CRM database and viewing entity data extracted from the object, triggering an on-demand deduplication action to remove duplicate objects from the CRM database, wherein the on-demand deduplication action is performed while the user is accessing the object within the CRM database and includes:

generating, utilizing the embedding model, embeddings for entities represented by the objects stored within the CRM database, wherein the embedding model is used to limit an embedding to a count of numbers less than an embedding size;

generating candidate duplicate entity pairs by processing the embeddings using an approximate nearest neighbors algorithm that includes implementation of a locality sensitive hashing algorithm using configurable parameters with values calculated over a grid of possible locality sensitive hashing algorithm configurations;

generating deduplication probabilities for the candidate duplicate entity pairs;

specifying, upon based a deduplication probability for a candidate duplicate entity pair exceeding a threshold, that a first entity and a second entity represented by the candidate duplicate entity pair are duplicate entities; and

performing an on-demand deduplication action upon objects, within the CRM database, representing the first entity and the second entity.

17 . The non-transitory machine readable medium of claim 16 , wherein the operations comprise:

generating an embedding with embedding features corresponding to:

a first name having a character tokenization class and a string type;

a last name having the character tokenization class and the string type;

a company name having an ignored class and the string type;

a phone number having the character tokenization class and the string type;

an email having the character tokenization class and the string type; and

a zip code having the ignored class and the string type.

18 . The non-transitory machine readable medium of claim 16 , wherein the operations comprise:

generating an embedding as a set of numbers having an embedding size less than 190.

19 . The non-transitory machine readable medium of claim 16 , wherein the operations comprise:

generating an embedding as a set of numbers having an embedding size of 16.

20 . A computing device comprising

a memory comprising instructions; and

a processor coupled to the memory, the processor configured to execute the instructions to cause the processor to perform operations comprising:

monitoring activity of a user accessing entities represented as objects stored within a customer relationship management (CRM) database hosted by a multi-service business platform;

generating a trigger derived from a context of the activity indicating that the user is viewing entity data extracted from the objects within the CRM database; and

in response to the trigger being generated from the user accessing an object within the CRM database and viewing entity data extracted from the object, triggering an on-demand deduplication action to remove duplicate objects from the CRM database, wherein the on-demand deduplication action is performed while the user is accessing the object within the CRM database and includes:

generating, utilizing an embedding model, embeddings for entities represented by the objects stored within the CRM database, wherein the embedding model is used to limit an embedding to a count of numbers less than an embedding size;

generating candidate duplicate entity pairs by processing the embeddings using an approximate nearest neighbors algorithm that includes implementation of a locality sensitive hashing algorithm using configurable parameters with values calculated over a grid of possible locality sensitive hashing algorithm configurations;

generating deduplication probabilities for the candidate duplicate entity pairs;

specifying, based upon a deduplication probability for a candidate duplicate entity pair exceeding a threshold, that a first entity and a second entity represented by the candidate duplicate entity pair are duplicate entities; and

performing the on-demand deduplication action upon objects, within the CRM database, representing the first entity and the second entity.

21 . The computing device of claim 20 , wherein the operations comprise:

identifying and providing a correlation between the first entity and second entity.

Assignments (2)
SECURITY INTEREST Recorded Feb 12, 2026
From: HUBSPOT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 074818/0036 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2023
From: MILLER, JOSHUA; LAGI, MARCO; PURCELL, STEPHEN; LAYTON, STUART P; WILLIAMS, JARED; ASH, BRYAN F.; HIGGS, SOPHIE; MCENEANEY, ROBERT; SELLBERG, DYAN; COFFEY, ANNA; URDIALES, HECTOR; BURNS, EDWARD FORBES, II
To: HUBSPOT, INC.
Reel/Frame 064857/0414 →
Continuity (3)
Continuation In Part 17318731 · May 12, 2021
Provisional Application 63023406 · May 12, 2020
Related Publication 20230316186A1 · Oct 5, 2023
References Cited (147)
US 6895421B1 · Dor et al. · 2005 [cited by applicant]
US 7136941B2 · Nguyen et al. · 2006 [cited by applicant]
US 7580982B2 · Owen et al. · 2009 [cited by applicant]
US 7584114B2 · Estrada et al. · 2009 [cited by applicant]
US 7792835B2 · Bohannon et al. · 2010 [cited by applicant]
US 7831676B1 · Nagar · 2010 [cited by examiner]
US 7984297B2 · Bohannon et al. · 2011 [cited by applicant]
US 7992145B2 · Emerson et al. · 2011 [cited by applicant]
US 8006261B1 · Haberman et al. · 2011 [cited by applicant]
US 8224902B1 · Glasser et al. · 2012 [cited by applicant]
US 8442969B2 · Gross · 2013 [cited by examiner]
US 8594618B2 · Meyer et al. · 2013 [cited by applicant]
US 8706800B1 · Ahmed et al. · 2014 [cited by applicant]
US 8719356B2 · Dillingham et al. · 2014 [cited by applicant]
US 9304862B2 · Simon et al. · 2016 [cited by applicant]
US 9305104B2 · Wu et al. · 2016 [cited by applicant]
US 9317816B2 · Zeng et al. · 2016 [cited by applicant]
US 9356947B2 · Shraim et al. · 2016 [cited by applicant]
US 9607074B2 · Tee · 2017 [cited by examiner]
US 10115060B2 · Chestnut et al. · 2018 [cited by applicant]
US 10217058B2 · Gamon et al. · 2019 [cited by applicant]
US 10387559B1 · Wendt et al. · 2019 [cited by applicant]
US 10771425B2 · Kebinger et al. · 2020 [cited by applicant]
US 10826866B2 · Kramer et al. · 2020 [cited by applicant]
US 10853082B1 · Aleti et al. · 2020 [cited by applicant]
US 10867003B2 · O'Donnell et al. · 2020 [cited by applicant]
US 10911394B2 · Kramer et al. · 2021 [cited by applicant]
US 10931623B2 · O'Brien et al. · 2021 [cited by applicant]
US 10992780B1 · Rudrappa Goniwada et al. · 2021 [cited by applicant]
US 11507548B1 · Yekollu · 2022 [cited by examiner]
US 20020099697A1 · Jensen-Grey · 2002 [cited by applicant]
US 20020152254A1 · Teng · 2002 [cited by applicant]
US 20020199194A1 · Ali · 2002 [cited by applicant]
US 20030097617A1 · Goeller et al. · 2003 [cited by applicant]
US 20030208472A1 · Pham · 2003 [cited by applicant]
US 20040034652A1 · Hofmann · 2004 [cited by applicant]
US 20040111327A1 · Kidd · 2004 [cited by applicant]
US 20040122803A1 · Dom et al. · 2004 [cited by applicant]
US 20040260621A1 · Foster · 2004 [cited by applicant]
US 20050160166A1 · Kraenzel · 2005 [cited by applicant]
US 20050188028A1 · Brown et al. · 2005 [cited by applicant]
US 20050210111A1 · Fukudome · 2005 [cited by applicant]
US 20050265319A1 · Clegg et al. · 2005 [cited by applicant]
US 20060095556A1 · Arnold et al. · 2006 [cited by applicant]
US 20060212931A1 · Shull et al. · 2006 [cited by applicant]
US 20060224673A1 · Stern et al. · 2006 [cited by applicant]
US 20060242140A1 · Wnek · 2006 [cited by applicant]
US 20070011073A1 · Gardner et al. · 2007 [cited by applicant]
US 20070136430A1 · Qureshi et al. · 2007 [cited by applicant]
US 20070203996A1 · Davitz et al. · 2007 [cited by applicant]
US 20070299777A1 · Shraim et al. · 2007 [cited by applicant]
US 20080034432A1 · Bohannon et al. · 2008 [cited by applicant]
US 20080168269A1 · Wilson · 2008 [cited by applicant]
US 20080172606A1 · White · 2008 [cited by applicant]
US 20090013041A1 · Farmer et al. · 2009 [cited by applicant]
US 20090019003A1 · Bohannon et al. · 2009 [cited by applicant]
US 20090119268A1 · Bandaru et al. · 2009 [cited by applicant]
US 20090138711A1 · Heimbigner · 2009 [cited by applicant]
US 20090248813A1 · Sawhney · 2009 [cited by applicant]
US 20100161506A1 · Bosenick et al. · 2010 [cited by applicant]
US 20100161735A1 · Sharma · 2010 [cited by applicant]
US 20100186088A1 · Banerjee et al. · 2010 [cited by applicant]
US 20100228777A1 · Imig et al. · 2010 [cited by applicant]
US 20100235915A1 · Memon et al. · 2010 [cited by applicant]
US 20100312837A1 · Bodapati et al. · 2010 [cited by applicant]
US 20110029504A1 · King et al. · 2011 [cited by applicant]
US 20110149725A1 · Zhao et al. · 2011 [cited by applicant]
US 20110179067A1 · Dalvi et al. · 2011 [cited by applicant]
US 20110258218A1 · Hayes et al. · 2011 [cited by applicant]
US 20120053887A1 · Nurmi · 2012 [cited by applicant]
US 20120191546A1 · Phelan et al. · 2012 [cited by applicant]
US 20120197862A1 · Woytowitz et al. · 2012 [cited by applicant]
US 20120198056A1 · Shama et al. · 2012 [cited by applicant]
US 20120316904A1 · Eder · 2012 [cited by applicant]
US 20130007627A1 · Monaco · 2013 [cited by applicant]
US 20130047034A1 · Salomon et al. · 2013 [cited by applicant]
US 20130054622A1 · Karmarkar et al. · 2013 [cited by applicant]
US 20130073336A1 · Heath · 2013 [cited by applicant]
US 20130138555A1 · Shishkov · 2013 [cited by applicant]
US 20130238715A1 · Sanyal et al. · 2013 [cited by applicant]
US 20130339456A1 · Nikolayev et al. · 2013 [cited by applicant]
US 20140006139A1 · Aggarwal et al. · 2014 [cited by applicant]
US 20140025683A1 · Howland et al. · 2014 [cited by applicant]
US 20140025763A1 · Furlong et al. · 2014 [cited by applicant]
US 20140105508A1 · Arora · 2014 [cited by applicant]
US 20140108309A1 · Frank et al. · 2014 [cited by applicant]
US 20140156681A1 · Lee et al. · 2014 [cited by applicant]
US 20140207777A1 · Palmert · 2014 [cited by examiner]
US 20140214974A1 · Kurzanski et al. · 2014 [cited by applicant]
US 20140236663A1 · Smith · 2014 [cited by applicant]
US 20140258169A1 · Wong et al. · 2014 [cited by applicant]
US 20140279622A1 · Bharadwaj et al. · 2014 [cited by applicant]
US 20140280453A1 · Mattison et al. · 2014 [cited by applicant]
US 20140328172A1 · Kumar et al. · 2014 [cited by applicant]
US 20140372363A1 · Chestnut et al. · 2014 [cited by applicant]
US 20140372566A1 · Milne et al. · 2014 [cited by applicant]
US 20150006647A1 · Steinberg et al. · 2015 [cited by applicant]
US 20150032826A1 · Gunaratnam · 2015 [cited by applicant]
US 20150032827A1 · Tyler et al. · 2015 [cited by applicant]
US 20150081611A1 · Shivakumar · 2015 [cited by applicant]
US 20150100896A1 · Shmarovoz et al. · 2015 [cited by applicant]
US 20150154664A1 · Dawson et al. · 2015 [cited by applicant]
US 20150188874A1 · Feinstein · 2015 [cited by applicant]
US 20150248490A1 · Myslinski · 2015 [cited by applicant]
US 20150286357A1 · Penha et al. · 2015 [cited by applicant]
US 20150312187A1 · Menna et al. · 2015 [cited by applicant]
US 20150324469A1 · Keyngnaert et al. · 2015 [cited by applicant]
US 20150347924A1 · Zeng et al. · 2015 [cited by applicant]
US 20150379018A1 · Gur et al. · 2015 [cited by applicant]
US 20150381552A1 · Vijay et al. · 2015 [cited by applicant]
US 20160012364A1 · Filgueiras · 2016 [cited by applicant]
US 20160020917A1 · Tuatini et al. · 2016 [cited by applicant]
US 20160026720A1 · Lehrer et al. · 2016 [cited by applicant]
US 20160036750A1 · Yuan · 2016 [cited by applicant]
US 20160063560A1 · Hameed et al. · 2016 [cited by applicant]
US 20160078455A1 · O'Donnell et al. · 2016 [cited by applicant]
US 20160119260A1 · Ghafourifar et al. · 2016 [cited by applicant]
US 20160156858A1 · Lee et al. · 2016 [cited by applicant]
US 20160180248A1 · Regan · 2016 [cited by applicant]
US 20160226808A1 · Lin · 2016 [cited by applicant]
US 20160232540A1 · Gao et al. · 2016 [cited by applicant]
US 20160307191A1 · Turgeman et al. · 2016 [cited by applicant]
US 20160315969A1 · Goldstein · 2016 [cited by applicant]
US 20160359793A1 · Kraios · 2016 [cited by applicant]
US 20170005954A1 · Shaltiel et al. · 2017 [cited by applicant]
US 20170031894A1 · Bettersworth et al. · 2017 [cited by applicant]
US 20170068982A1 · Vangala et al. · 2017 [cited by applicant]
US 20170103439A1 · Kolb et al. · 2017 [cited by applicant]
US 20170103441A1 · Kolb et al. · 2017 [cited by applicant]
US 20170186042A1 · Wong et al. · 2017 [cited by applicant]
US 20170221089A1 · Zhu et al. · 2017 [cited by applicant]
US 20170264577A1 · Ganin et al. · 2017 [cited by applicant]
US 20170289287A1 · Modi et al. · 2017 [cited by applicant]
US 20170317962A1 · Chen · 2017 [cited by applicant]
US 20170337569A1 · Sasson · 2017 [cited by applicant]
US 20170353410A1 · Gonzales · 2017 [cited by applicant]
US 20180039696A1 · Zhai et al. · 2018 [cited by applicant]
US 20180097759A1 · Brechbuhl et al. · 2018 [cited by applicant]
US 20180097828A1 · Coskun · 2018 [cited by applicant]
US 20180121986A1 · Akkiraju et al. · 2018 [cited by applicant]
US 20180336495A1 · Chestnut et al. · 2018 [cited by applicant]
US 20190080225A1 · Agarwal · 2019 [cited by examiner]
US 20200067861A1 · Leddy et al. · 2020 [cited by applicant]
US 20200074247A1 · Dubovsky · 2020 [cited by examiner]
US 20200363972A1 · Krasner · 2020 [cited by examiner]
US 20210133251A1 · Tiwari · 2021 [cited by examiner]
US 20210173896A1 · Perumalla · 2021 [cited by examiner]