Salesforce Bulk Duplicate Record Merger
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This tool helps Salesforce administrators and users efficiently merge duplicate records in bulk. It scans the current duplicate record page or list view, identifies duplicate groups (automatically grouping records that share matching field values like Name, Email, or Account Name), and displays them in a scrollable list with record names, IDs, and record counts with checkboxes. You can then select which duplicate groups to merge, and the script navigates through the native Salesforce merge wizard for each selected group, automatically selecting the master record and completing the merge process. This is especially useful for cleaning up duplicate accounts, contacts, leads, or custom objects without manually merging each group individually.
WHERE IT RUNS
The script runs directly inside the Salesforce web interface (salesforce.com). It works in both Lightning and Classic experiences. It does not require a separate extension popup, background process, or external server. Everything happens within the page context, interacting with Salesforce's DOM components and the native merge wizard.
HOW TO USE
1. Navigate to a Salesforce duplicate record page (e.g., Duplicate Record Set page) or a list view containing duplicates.
2. Open the BotGentz panel.
3. Optionally toggle "Auto-select master (most recent)" to have the script automatically select the most recently modified record as the master during merging.
4. Click "Scan & Merge" to start the process.
5. The script will scan the page for duplicate groups and display them in a list with checkboxes, showing the group name, record count, and object type.
6. Select the duplicate groups you want to merge (all are checked by default).
7. Click "Merge Selected Groups" to begin. The script will process each selected group one at a time, navigating to the merge wizard, selecting the master record (if auto-enabled), and completing the merge.
8. Use "Ignore Selected" to add groups to an ignore list so they are not shown in future scans.
TECHNICAL MECHANISM
Unlike Data Loader or external merging tools, this script operates purely on the public DOM of the Salesforce interface. It identifies duplicate groups by scanning for elements with classes like `[class*="duplicate"]`, `tr[data-duplicate-group]`, or using grouping logic that groups records by matching field values (e.g., Name). It extracts record IDs, names, and object types from the page. If no explicit duplicate groups are found, it falls back to grouping records by matching Name field values. For each merge, the script finds the "Merge" button or link, clicks it to launch the merge wizard, waits for the wizard to load, optionally selects the master record, and progresses through the wizard by clicking "Next" and "Merge". The script handles the wizard's UI by detecting standard Salesforce buttons and selecting the appropriate master record based on the user's preference. All actions include retry logic with spacing to handle Salesforce's dynamic rendering and avoid rate limiting.
THE PANEL
The tool appears as a draggable, resizable panel on the side of your screen. You can drag it to any position by clicking and holding the header, resize it by dragging the bottom-right corner, and collapse it to a small bubble when not in use. Press the Escape key to close the panel. The panel remembers its position and size per site so it stays where you left it on your next visit.
PLEASE NOTE
This script requires the free BotGentz extension to run. It does not store any personal data except for a list of ignored duplicate group IDs, which is saved locally in your browser using GM_setValue. No data is sent to any external server. Salesforce frequently updates its interface, which may break the script. If you encounter issues, check for updates or contact support. The script uses Salesforce's native merge wizard, which requires appropriate permissions (Merge permission on the object). Always test merging on a small set of duplicates first, as merges cannot be undone. The script will navigate through multiple pages and may disrupt your current view.