Skip to main content

Find and resolve duplicate customers or vehicles

Duplicate Customer and Vehicle records both have merge workflows. A merge keeps the complete history under one surviving record and leaves permanent pointers from stale links to the survivor.

Most vehicle duplicates never get created in the first place, because the Add vehicle dialog checks the whole Organization for the same VIN before it saves. This page covers all three parts: spotting duplicates, merging Vehicles, and the manual Customer routine.

Spot a duplicate

There is no duplicates report yet. BayEngine flags duplicate Vehicles in two places:

  • Vehicle results in Search show a red Possible duplicate badge when another active Vehicle in the Organization has the same VIN.
  • The Vehicle cards on a customer page show the same flag as Possible duplicate VIN.

A gray Shared VIN verified badge marks two Vehicles that an administrator has confirmed really share a VIN. That pair is resolved, not a problem to fix. See "When two vehicles really share a VIN" below.

Online Scheduler Appointments display a warning when the submitted phone or email overlaps another Customer but the name-and-phone rule was not safe enough to match automatically. Appointment details show each Possible customer match with a review action. The review dialog compares the immutable Online booking facts with the existing Customer. Staff can merge the two Customers or choose Not the same customer there. Independently created duplicates can still be found through Customer search.

How BayEngine blocks vehicle duplicates at entry

The Add vehicle dialog, on the customer page and in the vehicle picker when you start a Repair Order, Estimate, or Appointment, checks for matches as you type. Once you have entered a VIN, a plate and state, or a year, make, and model, matching Vehicles from anywhere in the Organization appear as cards in the dialog.

Each card offers the actions that make sense for it:

  • Use existing Vehicle attaches the match to the customer instead of creating a second record.
  • Transfer Vehicle appears when another Customer currently has the match; for an archived match it becomes Restore Vehicle. See Transfer a vehicle to another customer.
  • Merge duplicates opens the merge dialog described below, if you have merge permission.
  • Continue with new Vehicle on a plate match acknowledges the warning and creates the record anyway.
  • None of these vehicles appears once below exact-VIN matches rather than on every card. It either removes an incorrect or unverified VIN or lets an administrator verify that both Vehicles really share it.

The strictness depends on what matched. An exact VIN match (compared after trimming and uppercasing, and including archived and already-merged records) is the strongest warning: using, transferring, or merging the existing record is almost always right. If a transferred plate pulled in the previous Vehicle's VIN, remove that unverified VIN and manually enter the identity instead of creating an unaudited duplicate. A matching plate and state is a lighter warning because plates get reassigned between Vehicles. A same-year, make, and model match on the same Customer is only a suggestion and never blocks.

The backend runs the same check on save, so an unacknowledged warning holds even if the cards were missed, and two staff entering the same VIN at the same moment still produce one Vehicle. Editing a Vehicle's VIN or plate runs the check too. Rejecting a conflicting VIN restores the Vehicle's previously saved identity; a plate warning still uses the ordinary acknowledgement.

If a match belongs to a Customer you cannot read, the card shows only "Existing Vehicle in this Organization" with the details hidden. You may remove an unverified VIN; ask an administrator to resolve the existing record or verify a shared VIN.

For Customers, prevention is a deliberate search-before-create workflow. Use the command menu's search view to check for an existing match, then switch to New and select Customer only when you need a new record. Creation is not offered among search results. Details in Create and manage personal and business customers.

Merge duplicate Vehicle records

Merging requires organization-wide update and delete permission on Vehicles. Without both, the merge actions do not appear.

  1. Open the customer who currently has the vehicle and find the card for the record you want to keep. That record survives the merge.
  2. Open the card's three-dot menu and select Merge duplicate.
  3. The dialog lists every same-VIN duplicate you can read, preselected. Uncheck any record you want to leave alone. Records with a different VIN are never offered — different VINs are different physical vehicles, and BayEngine refuses to merge them.
  4. Where the records disagree on a field (plate, year, color, notes, and so on), choose the final value. The surviving record's values win by default, and its blank fields fill in from the duplicate when only one value exists.
  5. Write the merge note: how you confirmed these are the same physical vehicle. The note is required.
  6. Select Merge into canonical Vehicle.

The same dialog opens from a Same VIN match card in the Add vehicle dialog, so you can clean up a duplicate the moment the identity check surfaces it.

What a merge changes

Every Appointment, conversation message, task, Estimate, Repair Order, and Invoice on the duplicates moves to the surviving Vehicle, so its service history and odometer readings read as one continuous record. Prior documents keep the Customer they were originally billed to; a merge never rewrites who owed what. The duplicate records are archived with a permanent pointer to the survivor, and anything still referencing an old record resolves to the survivor.

A merge is blocked while any involved record has active work: an open Repair Order, an Estimate that is draft, sent, viewed, or approved, or a scheduled, confirmed, or arrived Appointment. The dialog lists the blockers; finish or cancel that work first.

You can't undo a merge in the app. Merging two records that turn out to be different vehicles is the kind of thing you want to be sure about, which is why the note asks how you confirmed it. If it happens anyway, contact the BayEngine team.

When two vehicles really share a VIN

Occasionally two physical vehicles legitimately carry the same identifier: a cloned VIN, or two classic cars whose short pre-1981 serial numbers collide. For that case, open None of these vehicles below the exact matches and choose Both vehicles really have this VIN. It requires organization-wide Vehicle create permission and a note documenting how the VIN was verified on both Vehicles.

The exception is recorded permanently in the audit trail. Both records then carry the Shared VIN verified badge and stop being flagged as an unresolved duplicate.

Merge duplicate Customers

Customer Merge requires Customer update permission. The default service advisor role has it; Customer deletion permission is not required.

  1. Open either Customer, use the three-dot button in the page header, and choose Merge customer. From an Appointment warning, choose Merge customers from the match review instead. Both paths continue to the same merge dialog.
  2. Search for and select the other Customer. BayEngine recommends the older record as survivor, but you may switch it.
  3. Choose whether to merge duplicate Customer records or preserve the source personal Customer as an Additional person on the survivor. When a matching Vehicle leads you here, BayEngine keeps the existing Vehicle owner and preselects the Additional person outcome. The source person's name and distinct phone numbers and emails are kept; a compact warning identifies the other Customer details that are not carried forward.
  4. Review both records' contact, Vehicle, and Invoice counts. For an ordinary merge, resolve the identity, address, birthday, preferred-channel, fleet, label, notes, tax, payment-term, on-account, and portal-payment conflicts. Notes may be combined, and when only one record has a value it is preselected so a blank survivor field never discards it. When preserving an Additional person, the survivor's Customer details stay unchanged and the source's other Customer-only details are discarded. Phones and emails are not a choice: every Contact Point moves to the survivor, with the source person's distinct points attached to their Additional person and exact duplicates consolidated.
  5. Add an optional audit note and confirm the selected outcome.

The source Customer's Contacts, Contact Points, Vehicles, Appointments, Tasks, scheduled messages, Conversations, Estimates, Repair Orders, Invoices, overpayment resolutions, credit memos, counter sales, and Customer Credits move atomically to the survivor. When the two Customers sit at different shops, the Contacts and Vehicles move to the survivor's shop with them. Exact duplicate endpoints are consolidated; communication history and consent evidence remain intact, with suppression winning when consent state conflicts. Active work does not block Customer Merge. Editable document tax totals follow the selected Customer tax setting; finalized financial facts do not change.

The source record is archived with a canonical pointer, so old bookmarks route to the survivor. Booking Submissions and other immutable historical evidence remain exactly as captured. Customer Merge cannot be undone in the app, so use the audit note to record how you confirmed the identity.