Skip to content

Merging duplicate customers

Merge two or more customer records into one. Use this when the same person or business has been added more than once — typically after a Techman import that created a phone-call record and a walk-in record for the same customer, or when staff have entered the same customer under slightly different spellings.

The merge is destructive: child records (work orders, invoices, vehicles, conversations, payments) all reparent to the surviving customer, and the loser records are hidden from search and lists. It cannot be undone from the UI.

If you want to remove a customer entirely (with no surviving record), see “Deleting a customer”. Merge is for combining; delete is for removing.

  • You have the customers.merge permission. Owner and Manager roles have this by default. Service Advisors do not.
  • At least two customers in your records that are genuinely the same person or business.

You can start a merge from two places:

  • From the customer list (/customers) - click Merge… in the page header. Both customers are picked from scratch.
  • From a customer’s detail page - click Merge…. The dialog opens with this customer pre-selected as one of the candidates.
  1. Type into the search box. The picker searches across name, company, email, and phone.
  2. Click each customer you want to include. They appear as removable chips.
  3. You can include between 2 and 5 customers in one merge. Already-merged or inactive records are filtered out of the search.

Step 2 - Choose the survivor and reconcile fields

Section titled “Step 2 - Choose the survivor and reconcile fields”

The dialog shows a side-by-side comparison of every field across the candidates.

  1. Pick the surviving customer at the top using the radio buttons. The system pre-selects the candidate with the most populated fields. If you are not sure, pick the one with the cleanest data.
  2. Where every candidate agrees, the field is collapsed under “N fields match across all candidates - show”. Click to expand if you want to verify.
  3. Where candidates disagree, you see one row per field with a radio per candidate. Pick the value you want to keep.
  4. Empty values render as and are selectable as “leave blank”.
  5. The header shows you how many fields differ — work down the list and resolve each.

The summary panel tells you exactly what is moving onto the survivor — for example “12 work orders, 4 invoices, 3 vehicles, 28 messages will move to John Smith”.

  1. Read the summary.
  2. Tick I understand this cannot be undone from the UI.
  3. Click Merge customers.

The dialog closes, a toast confirms the merge, and you land on the surviving customer’s detail page.

The surviving customer now owns:

  • All work orders, invoices, vehicles, addresses, and payments from the merged records.
  • All messages, conversations, call records, escalations, and voice promises.
  • Any standalone quotes, account-type requests, document acceptances, and consents.
  • Any import mappings — re-imports from Techman keep landing on the survivor.

The merged-in customers disappear from search, the customer list, and detail navigation. They are kept invisibly for audit purposes and so the lineage of any old work orders is intact.

  • Vehicles are not deduplicated. If both merged customers had a record for the same physical car (same registration), the survivor ends up with two side-by-side vehicle rows. A separate Vehicle Split/Merge tool is planned to clean these up. For now, you may want to soft-delete the duplicate vehicle manually if it has no history.
  • Addresses are not deduplicated. You may want to tidy duplicate addresses on the survivor record after the merge.
  • A single audit log entry is written per merge.
  • Merging is irreversible from the UI. A developer can technically restore by hand from the database, but treat this as a last resort.
SituationWhat to do
Two records for the same real person or business, both with historyMerge
One record is a typo / fake / test, the other is the real oneDelete the bad one
One record was created by accident with no work, no invoices, nothingDelete it
Both records have history but you want to remove oneMerge first, then delete the survivor only if you also want it gone

Problem: I cannot see the Merge… button on the customer list or detail page. Cause: Your role does not have the customers.merge permission. Fix: Ask an Owner to grant your role the permission, or have an Owner do the merge.

Problem: The picker says “No matching customers” even though I know they exist. Cause: They may already be merged or inactive — those are filtered out of the picker. Fix: Check the customer list with the inactive filter applied. If they have already been merged, no further action is needed.

Problem: The error says “already merged”. Cause: Someone else merged this customer into another record while your dialog was open. Fix: Refresh the customer list and start over.

Problem: The error says “cross-org”. Cause: A bug or stale cache caused two customers from different organisations to be picked. Fix: Refresh and try again.

Problem: I clicked merge but the survivor is missing some addresses. Cause: The system moves all addresses across, but does not deduplicate them — duplicates are sometimes hidden behind primary-flag logic. Fix: Open the customer’s address list and tidy duplicates manually.

  • customers.merge is required to start a merge. Held by Owner and Manager. Not held by Service Advisor.