What Default does with duplicate CRM records
Check for an existing record with Match Record
The Match Record node searches Salesforce or HubSpot and follows 1 of 2 branches: Match when it finds a record, No Match when it does not. Create records only on the No Match branch, so a lead that the match finds is not created again.
Common checks before a create:
- People in Salesforce. Match a Contact by email first. On its No Match branch, match a Lead by email. Create a Lead only when both find nothing.
- People in HubSpot. Match a Contact by email, and create on No Match.
- Companies. Match an Account or Company on its website with the domain matches
operator, which compares company domains instead of raw text.
https://www.acme.com/pricingandacme.comthen count as the same company. See Match an account by company domain.
Update on conflict in Salesforce
For Salesforce, Create Record can find and update a record instead of creating a new one. Turn on Update on conflict and choose a Match field, a Salesforce field that identifies the record, for example email. The match field must also have a value in Mapped Fields.
On a match, every mapped field is written to the existing record, including the owner if you map it.
To give new records an owner without reassigning existing ones, use Match Record instead and set
the owner only on the No Match branch.
HubSpot’s Create Record has no Update on conflict. Use Match Record first.
When the CRM rejects a duplicate
Salesforce duplicate rules and unique fields can reject a new record, and so can a HubSpot property that must be unique. When that happens, Create Record does not treat it as a failed run:- It creates nothing and writes none of the mapped fields.
- It logs a warning, either that the record already exists and the workflow continues with it, or that creation was skipped.
- When the CRM reports which record already exists, Default passes that record to later nodes, so they can still use its ID and fields.
- It marks the step as errored in the run log, and the rest of the workflow runs.
Convert a lead into an existing account and contact
The Convert Lead node converts a Salesforce Lead. To avoid creating a second account or contact during conversion, set:- Account to merge into (optional): an existing Account ID, usually from a Match Record node.
- Contact to merge into (optional): an existing Contact ID.
Check a list against your CRM in Tables
Tables is in beta. It is turned on per workspace. If you do not see Companies and People
under Views in the sidebar, contact Default.
- Open the view and select Actions, then Match to CRM.
- Choose the CRM, the record type, the CRM field to compare, and Exact match or Contains.
- Choose the row field to compare it with, for example the email column.
- Select Match, followed by the number of records, for example Match 100 records. Each row then shows Matched with the CRM record ID, or No match.
Find existing duplicates with the MCP server
Default’s MCP server has a read-only tool,crm_duplicates_scan, that lists duplicate
records already in your CRM. Ask a connected AI client, such as Claude or Cursor, a question like
“Scan my CRM for duplicate contacts.”
What the scan checks:
Each group lists the CRM record IDs, which CRM each record is in, and when Default last saw it. Because
Salesforce Contacts and Leads are scanned together, a Lead that duplicates an existing Contact shows up
as a group.
What to know before you act on the results:
- Exact matches only. The same person under 2 different emails does not show up.
- Personal email domains are flagged. Groups on personal email domains, such as
gmail.com, are marked, because they often hold junk data. - Shared inboxes can appear. Addresses such as
info@orsales@can group unrelated contacts. - Groups can span CRMs. A group can hold a Salesforce record and a HubSpot record. That is useful hygiene signal, but the 2 records cannot be merged with each other.
- It changes nothing. The scan only reads.
- It covers the records Default has seen. The scan reads Default’s identity graph, which links CRM record IDs to the emails and domains Default has seen through your CRM connection.
identity_resolve to look up everything Default links to 1 email or domain in a group.
The scan needs the admin or owner role and belongs to the identity tools, which Default turns on
per workspace. See Identity graph.
Merge duplicates in your CRM
Default does not merge Salesforce or HubSpot records, and no Default workflow node or tool combines 2 records into 1. To clean up duplicates:- List them with
crm_duplicates_scan. - Merge each group in Salesforce or HubSpot, using the record IDs from the scan.
- Stop new duplicates at the source with Match Record before every Create Record, and with Update on conflict in Salesforce.