GoHighLevel duplicate contacts: how to stop and merge them

Short answer
GoHighLevel creates a duplicate contact when Allow Duplicate Contact is on, or when a new submission doesn't match on the field you chose, like a new email with the phone in a different format. Turn the setting off and choose the match order (email or phone, then the other). That only affects new contacts; merge existing duplicates under Manage Duplicates. CSV imports always match on email or phone.
How to fix it
- Turn off duplicates. Settings > Business Profile > Contact Deduplication Preferences: turn Allow Duplicate Contact off.
- Choose what to match on. Set Find Existing Contacts Based On (email or phone) and the second preference. If the first doesn't match, HighLevel checks the second.
- Know what it covers. It applies to new contacts from forms, Zapier and Facebook and Instagram messages. It doesn't merge anyone already there.
- Find the duplicates. Contacts > ⋮ > Manage Duplicates, choose to find by email, phone or name, then Find Duplicates.
- Pick the record to keep. Choose the master record. Tasks, opportunities and notes move to it, and its empty fields fill from the others. Up to 10 merge at once.
- Be sure first. HighLevel says merges can't be undone.
Common questions
- Why do I still get duplicates from one lead?
- Often the lead used a different email, and the phone didn't match because of formatting. Matching on phone first, with clean phone numbers, helps.
- Do imports follow these settings?
- CSV imports always match on email or phone, whatever the setting.
Rather we set it up?
We set this up for you as part of a done-for-you package, quoted on a free call.
GoHighLevel rescue
A messy account someone else built, gone through and fixed: duplicate workflows, broken automations, bad data and texts that don't send.
More contact and pipeline fixes
GoHighLevel opportunities not moving pipeline stages
Usually a workflow trying to move a deal backward, no opportunity to update, or several opportunities on one contact.
GoHighLevel CSV contact import errors
Usually rows with no name, email or phone, phones without a country code, a date format mismatch, or owners listed by name.
GoHighLevel leads not being assigned to users
Usually the trigger never ran, unassigned-only skipped contacts that had an owner, or the notification ran before the assignment.
Related fixes
GoHighLevel sending duplicate text messages
Usually two triggers firing on one event, re-entry left on, or the same person saved as two contacts.
Read the fixGoHighLevel form not submitting, or not creating a contact
Check Submissions first. Then deduplication settings, an out-of-date embed code, sticky contact on shared devices, or a form HighLevel didn't build.
Read the fix
Want GoHighLevel set up and running for you?
Book a free 15-minute call. Tell us what you sell and where your leads come from, new account or the one you have, and we'll tell you what we'd set up, how long it takes and what it costs.