IP Library › Granted Patent US 12,579,169
Granted Patent B2
US 12,579,169 · App. 18/984,815 · Granted Mar 17, 2026

User identifier match and merge process

Inventors: Srinivas Tirupati (Bothell, WA); Amit Martu Kamat (Sammamish, WA); Jawad Ahmed Ibrahim Katib (Sammamish, WA); Raveendrnathan Loganathan (Sammamish, WA); Xun Sun (Bellevue, WA); Lingyu Deng (Redmond, WA); Prasanthi Oruganti (Bothell, WA); Hyun Seung Hong (Vancouver, CA)
Assignee: Salesforce, Inc.
G06F16/285G06F16/2272G06F16/2379
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,169
App. No.
18/984,815
Granted
Mar 17, 2026
Kind
B2
Abstract

A method that includes receiving a first configuration and a second configuration that define a set of rules for matching and merging a set of source data objects that are associated with a tenant and that are received from a plurality of data sources. The method may further include generating a set of merged data objects from the set of source data objects based on an identification of matching values from fields of the set of source data objects and selecting a value for each field of each merged data object having multiple values. The method may further include generating a mapping between primary keys associated with each merged data object and corresponding primary keys of the source data objects. The method may further include storing the merged data objects and the mappings in a first datastore and a second datastore that is different from the first datastore.

Claims (46)

1 . A method, comprising:

configuring, for a data processing platform, a data processing job based at least in part on a selection of a scheduled trigger condition for the data processing job, a set of duplicate detection rules to use for identifying duplicate data records, and a plurality of data records to check for the duplicate data records; and

initiating the data processing job for the data processing platform based at least in part on the scheduled trigger condition being satisfied, wherein the data processing job comprises:

identifying the duplicate data records in the plurality of data records based at least in part on the set of duplicate detection rules configured for the data processing platform, the duplicate data records comprising matching data and conflicting data;

receiving a selection of a set of merging criteria to use for combining the duplicate data records into a set of merged data records; and

merging the duplicate data records into the set of merged data records based at least in part on the set of merging criteria configured for the data processing platform, wherein merging the duplicate data records comprises selecting, from the conflicting data of the duplicate data records, data to include in one or more fields of the set of merged data records.

2 . The method of claim 1 , wherein the scheduled trigger condition comprises an enablement condition, a repeated failure threshold condition, a daily quota condition, a mapping condition, a new data condition, a mapping update condition, a start time for the data processing job, a scheduled time for a subsequent data processing job, or any combination thereof.

3 . The method of claim 1 , further comprising:

receiving an indication of one or more parameters associated with the set of duplicate detection rules, wherein identifying the duplicate data records is based at least in part on the one or more parameters.

4 . The method of claim 1 , further comprising:

receiving a selection of a primary record to use for merging two or more of the duplicate data records, wherein data from the two or more duplicate data records is merged into the primary record in accordance with the selection.

5 . The method of claim 1 , wherein the set of merging criteria comprises one or more rules associated with merging the duplicate data records based at least in part on a data source type associated with the duplicate data records, a recency of the duplicate data records, a data input frequency associated with the duplicate data records, or a combination thereof.

6 . The method of claim 1 , wherein the set of duplicate detection rules comprise fuzzy matching rules that indicate duplicate detection based at least in part on matching at least a first portion of a first field with at least a second portion of a second field.

7 . The method of claim 1 , wherein initiating the data processing job comprises:

checking a status of one or more conditions, including the scheduled trigger condition, that are configured for the data processing platform.

8 . An apparatus, comprising:

one or more memories storing processor-executable code; and

one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:

configure, for a data processing platform, a data processing job based at least in part on a selection of a scheduled trigger condition for the data processing job, a set of duplicate detection rules to use for identifying duplicate data records, and a plurality of data records to check for the duplicate data records; and

initiate the data processing job for the data processing platform based at least in part on the scheduled trigger condition being satisfied, wherein the data processing job comprises:

identifying the duplicate data records in the plurality of data records based at least in part on the set of duplicate detection rules configured for the data processing platform, the duplicate data records comprising matching data and conflicting data;

receiving a selection of a set of merging criteria to use for combining the duplicate data records into a set of merged data records; and

merging the duplicate data records into the set of merged data records based at least in part on the set of merging criteria configured for the data processing platform, wherein merging the duplicate data records comprises selecting, from the conflicting data of the duplicate data records, data to include in one or more fields of the set of merged data records.

9 . The apparatus of claim 8 , wherein the scheduled trigger condition comprises an enablement condition, a repeated failure threshold condition, a daily quota condition, a mapping condition, a new data condition, a mapping update condition, a start time for the data processing job, a scheduled time for a subsequent data processing job, or any combination thereof.

10 . The apparatus of claim 8 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:

receive an indication of one or more parameters associated with the set of duplicate detection rules, wherein identify the duplicate data records is based at least in part on the one or more parameters.

11 . The apparatus of claim 8 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:

receive a selection of a primary record to use for merging two or more of the duplicate data records, wherein data from the two or more duplicate data records is merged into the primary record in accordance with the selection.

12 . The apparatus of claim 8 , wherein the set of merging criteria comprises one or more rules associated with merging the duplicate data records based at least in part on a data source type associated with the duplicate data records, a recency of the duplicate data records, a data input frequency associated with the duplicate data records, or a combination thereof.

13 . The apparatus of claim 8 , wherein the set of duplicate detection rules comprise fuzzy matching rules that indicate duplicate detection based at least in part on matching at least a first portion of a first field with at least a second portion of a second field.

14 . The apparatus of claim 8 , wherein, to initiate the data processing job, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to:

check a status of one or more conditions, including the scheduled trigger condition, that are configured for the data processing platform.

15 . A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:

configure, for a data processing platform, a data processing job based at least in part on a selection of a scheduled trigger condition for the data processing job, a set of duplicate detection rules to use for identifying duplicate data records, and a plurality of data records to check for the duplicate data records; and

initiate the data processing job for the data processing platform based at least in part on the scheduled trigger condition being satisfied, wherein the data processing job comprises:

identifying the duplicate data records in the plurality of data records based at least in part on the set of duplicate detection rules configured for the data processing platform, the duplicate data records comprising matching data and conflicting data;

receiving a selection of a set of merging criteria to use for combining the duplicate data records into a set of merged data records; and

merging the duplicate data records into the set of merged data records based at least in part on the set of merging criteria configured for the data processing platform, wherein merging the duplicate data records comprises selecting, from the conflicting data of the duplicate data records, data to include in one or more fields of the set of merged data records.

16 . The non-transitory computer-readable medium of claim 15 , wherein the scheduled trigger condition comprises an enablement condition, a repeated failure threshold condition, a daily quota condition, a mapping condition, a new data condition, a mapping update condition, a start time for the data processing job, a scheduled time for a subsequent data processing job, or any combination thereof.

17 . The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the one or more processors to:

receive an indication of one or more parameters associated with the set of duplicate detection rules;

wherein identify the duplicate data records is based at least in part on the one or more parameters.

18 . The non-transitory computer-readable medium of claim 15 , wherein the instructions are further executable by the one or more processors to:

receive a selection of a primary record to use for merging two or more of the duplicate data records, wherein data from the two or more duplicate data records is merged into the primary record in accordance with the selection.

19 . The non-transitory computer-readable medium of claim 15 , wherein the set of merging criteria comprises one or more rules associated with merging the duplicate data records based at least in part on a data source type associated with the duplicate data records, a recency of the duplicate data records, a data input frequency associated with the duplicate data records, or a combination thereof.

20 . The non-transitory computer-readable medium of claim 15 , wherein the set of duplicate detection rules comprise fuzzy matching rules that indicate duplicate detection based at least in part on matching at least a first portion of a first field with at least a second portion of a second field.

Assignments (3)
CHANGE OF NAME Recorded Aug 4, 2026
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 076118/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2025
From: TIRUPATI, SRINIVAS; KAMAT, AMIT MARTU; KATIB, JAWAD AHMED IBRAHIM; LOGANATHAN, RAVEENDRNATHAN; SUN, XUN; DENG, LINGYU; ORUGANTI, PRASANTHI; HONG, HYUN SEUNG
To: SALESFORCE.COM, INC
Reel/Frame 073147/0278 →
CHANGE OF NAME Recorded Dec 8, 2025
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 073930/0109 →
Continuity (4)
Continuation 18462659 · Sep 7, 2023
Continuation 17163069 · Jan 29, 2021
Provisional Application 63094275 · Oct 20, 2020
Related Publication 20250117407A1 · Apr 10, 2025
References Cited (27)
US 6401104B1 · LaRue · 2002 [cited by examiner]
US 8271477B2 · Sood et al. · 2012 [cited by applicant]
US 8484215B2 · Anderson · 2013 [cited by examiner]
US 8713179B2 · Dawson et al. · 2014 [cited by applicant]
US 9495421B1 · Dehaan et al. · 2016 [cited by applicant]
US 11074277B1 · Gerhardt · 2021 [cited by examiner]
US 11093900B1 · Benjamin · 2021 [cited by applicant]
US 11157954B1 · Belanger et al. · 2021 [cited by applicant]
US 11782954B2 · Tirupati et al. · 2023 [cited by applicant]
US 12174857B2 · Tirupati et al. · 2024 [cited by applicant]
US 20030046280A1 · Rotter · 2003 [cited by examiner]
US 20050091250A1 · Dunn et al. · 2005 [cited by applicant]
US 20090037488A1 · Abrams · 2009 [cited by applicant]
US 20090234826A1 · Bidlack · 2009 [cited by applicant]
US 20130046730A1 · Sood et al. · 2013 [cited by applicant]
US 20130332931A1 · Malewicz et al. · 2013 [cited by applicant]
US 20140222793A1 · Sadkin et al. · 2014 [cited by applicant]
US 20150178135A1 · Wang · 2015 [cited by applicant]
US 20150178327A1 · Cohen · 2015 [cited by examiner]
US 20170199875A1 · Nevrekar et al. · 2017 [cited by applicant]
US 20170351731A1 · Brosch · 2017 [cited by examiner]
US 20180089235A1 · Kabra et al. · 2018 [cited by applicant]
US 20200104292A1 · Qu et al. · 2020 [cited by applicant]
US 20200372004A1 · Barber et al. · 2020 [cited by applicant]
US 20210326311A1 · Ker · 2021 [cited by examiner]
US 20210397591A1 · Camper · 2021 [cited by examiner]
US 20230177029A1 · David · 2023 [cited by examiner]