Templates / RevOps / Clean & dedupe
Find duplicate accounts and contacts
Surface duplicate HubSpot companies and contacts, with an AI verdict and the recommended primary record per cluster. RevOps stops merging records by hand. Every duplicate cluster lands in a worklist with the recommended primary, the duplicate IDs, a one-line reason, and a deep link straight to the primary in HubSpot.
Last updated
01 Companies to Check
One row per HubSpot company in scope. HubSpot Domain Match counts siblings on the same domain. Send to Candidates routes any row with two or more siblings into the Duplicate Candidates table for AI review; rows with a single match (no duplicate) skip the route.
| | Company name | Domain | | Match Count | |
|---|---|---|---|---|---|
| | Founda | founda.com | Found | 3 | Sent 3 items |
| | Lumion | lumion.com | Found | 3 | Sent 3 items |
| | OPENLANE Europe | visit.openlane.eu | Found | 2 | Sent 2 items |
| | Otera | otera.ai | Found | 2 | Sent 2 items |
| | Sessions Community | sessionscommunity.com | Found | 2 | Sent 2 items |
| | Electude | electude.com | Found | 2 | Sent 2 items |
02 Duplicate Candidates (Companies)
One row per candidate inside a duplicate cluster. Sibling Candidates loads the rest of the cluster so the AI sees every duplicate side-by-side; Find Company LinkedIn URL anchors the cluster; Enrich Company fills firmographics. AI Verdict outputs a cluster-level verdict (for example, 'clear_duplicate') and a per-row Recommended Primary flag (yes on one row, no on the rest). Send to Worklist routes only the recommended primary; non-primary candidates skip the route.
| Input | Match Name | Match Domain | | | | | Verdict | This Is Recommended Primary | |
|---|---|---|---|---|---|---|---|---|---|
| Record | Founda | founda.com | Found 3 records | Found | Enriched | Done | clear_duplicate | yes | Sent |
| Record | Founda Inc TEST | founda.com | Found 3 records | Found | Enriched | Done | clear_duplicate | no | Skipped |
| Record | Founda TEST DUPLICATE | founda.com | Found 3 records | Found | Enriched | Done | clear_duplicate | no | Skipped |
| Record | Lumion | lumion.com | Found 3 records | Found | Enriched | Done | clear_duplicate | yes | Sent |
| Record | Lumion TEST DUPLICATE | lumion.com | Found 3 records | Found | Enriched | Done | clear_duplicate | no | Skipped |
| Record | Lumion Inc TEST | lumion.com | Found 3 records | Found | Enriched | Done | clear_duplicate | no | Skipped |
| Record | OPENLANE Europe | visit.openlane.eu | Found 2 records | Found | Enriched | Done | clear_duplicate | yes | Sent |
| Record | OPENLANE Europe TEST DUPLICATE | visit.openlane.eu | Found 2 records | Found | Enriched | Done | clear_duplicate | no | Skipped |
03 Merge Worklist (Companies)
RevOps's review queue. Only the AI-recommended primary from each cluster lands here. The HubSpot Link to Primary formula builds a one-click deep link to the surviving record. A reviewer reads the verdict, the duplicate IDs, and the one-line reason, then approves the merge in HubSpot.
| Input | Primary Name | Primary Domain | HubSpot Link to Primary | Verdict | Duplicate Record IDs | Reason |
|---|---|---|---|---|---|---|
| Record | Founda | founda.com | Open in HubSpot | clear_duplicate | 378544952545, 429115580617, 429107383505 | All records share the same domain and refer to the same company. Founda is the most complete and not marked as a test duplicate. |
| Record | Lumion | lumion.com | Open in HubSpot | clear_duplicate | 378335620294, 429106612466, 429115167966 | The other records are test duplicates with TEST in their names. This row is the most complete and original. |
| Record | OPENLANE Europe | visit.openlane.eu | Open in HubSpot | clear_duplicate | 378357304535, 429107572960 | Both records have the same domain and similar names; the candidate with TEST DUPLICATE in the name should not be primary. |
| Record | Sessions Community | sessionscommunity.com | Open in HubSpot | clear_duplicate | 378477065458, 429115983083 | Both records share the same domain and refer to the same entity, with the second record marked as a test duplicate. |
| Record | GraydonCreditsafe Belgium | graydoncreditsafe.be | Open in HubSpot | clear_duplicate | 378373499102, 429106714864 | The two records share the same domain and very similar names, indicating they refer to the same legal entity. |
| Record | Electude | electude.com | Open in HubSpot | clear_duplicate | 378459109594, 429115165942 | The records share the same domain and the name Electude is consistent. The primary is more complete and has an earlier created date. |
How does Find duplicate accounts and contacts run?
Each step is a Baseloop action on the table. The workflow chains them in order, so the same sequence runs on every row that lands.
- 01
Pull every HubSpot company (or just the ones you want audited) into a "Companies to Check" table, one row per record.
- 02
For each row, run a HubSpot Domain Match to find every other company in HubSpot sharing the same domain. Match Count flags how many siblings exist.
- 03
Rows with two or more domain matches are routed into a "Duplicate Candidates" table, one row per matched company so every candidate gets independently enriched.
- 04
Sibling Candidates loads the rest of the cluster so the AI sees every duplicate side-by-side. Find Company LinkedIn URL anchors the cluster to a single LinkedIn page, and Enrich Company fills firmographics (name, industry, employee range, headquarters, year founded, website) so the AI compares candidates on real attributes instead of CRM noise.
- 05
AI Verdict reads the full cluster and writes a cluster-level verdict (for example, "clear_duplicate") plus a per-row Recommended Primary flag set to "yes" on exactly one row and "no" on the rest, along with the Recommended Primary Record ID and a one-line reason.
- 06
Send to Worklist routes only the row marked Recommended Primary into the Merge Worklist (Companies). Non-primary candidates stay in Duplicate Candidates for audit but skip the route. The HubSpot Link to Primary formula builds a one-click deep link to the surviving record so a reviewer approves and merges in HubSpot.
- 07
Repeat the pass for contacts. Enrich Contact fills full name, headline, location, job title; HubSpot Email Match returns the cluster size; AI Verdict picks the primary; the recommended primary lands in Merge Worklist (Contacts).
What does Find duplicate accounts and contacts produce?
RevOps stops merging records by hand. Every duplicate cluster lands in a worklist with the recommended primary, the duplicate IDs, a one-line reason, and a deep link straight to the primary in HubSpot.
Build this on Baseloop today
Build the flow on your data in Baseloop. Free to start, no credit card.
Other clean & dedupe templates
Find broken records in your CRM
Audit every record for dead domains, missing contacts, and bounced emails. Auto-route fixes.
View templateAlways-on re-verification of CRM contacts
Catch HubSpot contacts who moved jobs or got promoted, route the new company for enrichment.
View templateStandardize and normalize CRM fields
Normalize industry and country across HubSpot companies; clean and split job titles across contacts.
View template