Reconcile CRM Counts When Records Merge
Compare rows, entities, creates, updates and associations without confusing approved merges with missing records or hiding mismatched identities.
10/23/20263 min read


A source file contains one hundred rows and the destination shows ninety-seven accounts. That difference could indicate three lost records, three approved merges, excluded rows, updates to existing records, or several combinations of those events. Matching totals is useful only when both totals count the same kind of thing.
Define the counting unit before reconciling an import. Source rows, distinct source entities, destination records, updates, and associations are different units. A worksheet that mixes them can report a failure where none occurred or conceal one behind an apparently balanced total.
Name the quantities you are comparing
Start with parsed source rows excluding the header. Then count distinct source identifiers and classify their intended actions. Record pre-import exclusions separately from attempted rows. For the destination, distinguish newly created records from existing records that were matched or updated.
HubSpot's export guidance explains that export contents depend on selected properties and associations. Confirm the view, object, filters, and association settings before treating an exported count as the complete destination population. A filtered view is not automatically the universe your reconciliation expects.
Merges need a source-to-survivor mapping. An approved many-to-one mapping changes record counts without necessarily losing entity information. An unexplained many-to-one mapping remains an identity risk, even if the arithmetic is tidy.
Reconcile a fictional eight-row input
The following synthetic example intentionally includes different actions. It is not a benchmark or a claim about an actual migration.
S01 and S02 describe one reviewed duplicate entity and map to destination D10.
S03 updates existing destination D11.
S04 creates new destination D12.
S05 creates new destination D13.
S06 is excluded before import because its source-use review is incomplete.
S07 is rejected during import for an invalid required value.
S08 matches existing destination D14 but makes no substantive change.
Eight source rows become seven attempted rows after one exclusion. The attempted rows include one approved two-row merge group, one update, two creates, one rejection, and one no-change match. Five distinct destination records are represented by the successful mappings: D10 through D14. Only two are newly created if D10 already existed.
Write the starting destination state explicitly. If D10 was created during this run rather than already present, the new-record count changes. The same source mapping cannot determine that number without knowing the before-state.
Use set comparisons to find hidden mismatches
For each successful source row, require a destination ID or documented survivor ID. Compare the expected destination-ID set with the observed set. Equal counts can hide an extra D15 and a missing D13. The set difference exposes which identity is absent or unexpected.
For merges, inspect the survivor's critical fields, restrictions, and relationships. A correct survivor ID is not proof that the right source values survived. Preserve the merge decision and field-level choices rather than accepting whichever source row happened to run last.
Count associations separately. One contact linked to two approved companies produces one contact record and two relationships. Flattening the export can repeat the contact row, so a row count of two does not prove a duplicate person. Record the export's grain before interpreting it.
Make unresolved differences actionable
Suppose the fictional reconciliation finds D13 missing and D15 present. Do not offset those differences because the total still equals five. Investigate the mapping for S05 and inspect whether it created the wrong record, matched an unexpected key, or appears under another export filter.
Keep rejected S07 and excluded S06 in different queues. The first needs a data or configuration repair; the second needs a source-use decision. Combining them under “import errors” could encourage an operator to bypass a permission hold while fixing a formatting issue.
The completed report should show the input grain, action categories, approved merge groups, destination-ID mapping, separate relationship counts, and unresolved differences. Acceptance is based on explained transitions and correct identities, not a target percentage. A lower destination count can be legitimate, but every reduction should have an accountable reason.
If you are also choosing research access, ask about Leads Automation’s independent Sales Navigator offer at US$15/month on WhatsApp. Confirm the available plan, eligibility and terms before ordering; this is not LinkedIn’s official price or an assurance that any particular integration is included.
