Done-for-you GoHighLevel setup for US businesses

GoHighLevel Duplicate Contacts: Find, Merge and Prevent Them

GoHighLevel duplicate contacts: find and merge records in the CRM

GoHighLevel duplicate contacts come from one setting and a few intake paths. When “Allow Duplicate Contact” is on, forms and Zapier create a new record even if the email or phone already exists. The fix is to find them with Manage Duplicates, merge up to 10 at a time into a master record, and then tighten your deduplication preferences.

This guide covers why duplicates appear, what the setting really controls, how to find and merge records without losing history, and how to stop new duplicates from forms, imports and integrations. It also explains why a clean list matters before you text an old database.

Why do GoHighLevel duplicate contacts appear?

GoHighLevel duplicate contacts appear when a new lead cannot be matched to an existing record. That happens when duplicates are allowed, when the lookup field (email or phone) is missing or different, or when an outside tool sends data in a way the deduplication rules do not catch.

In the accounts we audit, the causes usually fall into a short list:

  • The setting is on. With “Allow Duplicate Contact” switched on, forms and Zapier always create a fresh contact.
  • The wrong lookup field. The account matches on email, but a phone-only lead form sends no email, so there is nothing to match.
  • Different details for the same person. A lead uses a work email on one form and a personal email on another.
  • Inconsistent phone formats. An external tool sends a number without the country code or with extra characters, so the match can fail.
  • Several entry points. Facebook lead ads, website forms, calendars, chat and a CRM sync all feed the same sub-account.

None of these is a bug on its own. Each one is a configuration choice that nobody revisited after the account was set up.

What does the “Allow Duplicate Contact” setting do?

The “Allow Duplicate Contact” setting decides whether GoHighLevel creates a new contact or updates the existing one when a form, Zapier or Messenger lead matches a known email or phone. HighLevel’s help center places it under Settings, Business Profile, in the contact deduplication preferences panel.

Here is how each position behaves, based on HighLevel’s help article (modified April 2026):

Source Setting ON (duplicates allowed) Setting OFF (duplicates prevented)
Forms Creates a separate contact Updates the matching contact
Zapier Creates a separate contact Updates the matching contact
Facebook and Instagram Messenger Can stay separate from the existing contact Merges into the existing contact automatically
CSV import Not affected: always matches on phone or email Not affected: always matches on phone or email

The same panel holds two more controls. “Find Existing Contacts Based On” sets the primary lookup field, Email by default or Phone. “Second Preferences for Search” is an optional backup field that is checked only when the primary field finds no match.

Changes in this panel save automatically. There is no save button, so a quick click by a team member can change how every new lead is handled.

When does allowing duplicates make sense?

A few businesses need separate records on purpose. One example is a company where the same person deals with two departments, and each team wants its own history. A shared office phone used by several B2B contacts is another case where strict phone matching would merge different people.

For most local service businesses, the trade-off goes the other way. One person with three records means three conversations, split notes and messages sent more than once.

New to GoHighLevel? Try it free for 30 days

HighLevel's standard free trial is 14 days. Through our partner link you get 30 days plus HighLevel's free onboarding bootcamp. Rather have it built for you? Our US team sets up GoHighLevel accounts, websites, funnels and automations.

Start 30-day free trialBook a free strategy call

Partner link: we may earn a commission at no extra cost to you. Disclosure

How do you find duplicate contacts in GoHighLevel?

You find duplicate contacts in GoHighLevel with the Manage Duplicates tool. Open Contacts in the sub-account, click the three-dot menu and choose Manage Duplicates. Pick a match field (email, phone or name), run Find Duplicates, and the tool groups records that look like the same person.

A few details matter before you start:

  • Admins only. HighLevel limits Manage Duplicates to agency admins and sub-account admins. Regular users will not see it.
  • Start with email. HighLevel recommends email as the default match because it is the most unique identifier.
  • Use name matching with care. Two people can share a name. Treat name groups as suggestions, not facts.
  • Reject is permanent. Clicking Reject on a group excludes that email, phone or name from future scans, and HighLevel says it cannot be reverted.

For one-off cases, you can also select two or more contacts in the contact list, click More and choose Merge. That path suits a duplicate a salesperson spotted during a call.

How do you merge duplicate contacts without losing history?

You merge duplicate contacts in GoHighLevel by picking one master record, reviewing every field that differs, and choosing which value to keep. Up to 10 contacts can go into one merge. The merge cannot be undone, so review the master and the conflicting fields before you confirm.

According to HighLevel’s help article (modified September 2026), this is what happens in a merge:

Data What happens
Name, main email, main phone Kept from the master unless you pick another value
Tasks, opportunities, notes, products Combined into the master
Custom fields A value from another record is added only if the master’s field is blank
Appointments, payments, orders, invoices Default to the master’s values
Active workflows Can move to the master; if the master is already in the same workflow, the extra run may end
The other records Removed after the merge

To protect history, check these points before each merge:

  1. Pick the master that holds the most valuable data, usually the record with the open opportunity or the longest conversation.
  2. Look at custom fields. Because the master’s values win, a blank-but-wrong field choice can hide a better value.
  3. Check for duplicate opportunities in the review screen, so one deal does not end up twice in the pipeline.
  4. Check DND and consent status. Keep the record that carries the correct opt-out, so a contact who said stop does not start receiving texts again.
  5. Work in batches. If a group has more than 10 records, merge the first set and then run the next.

Can a workflow merge duplicate contacts automatically?

Yes. GoHighLevel has a Merge Contact workflow action that checks the enrolled contact against existing records by email, phone, or both. When it finds a match, the newer contact is always merged into the older one, and the workflow continues on the surviving record.

The action is useful for intake paths you cannot fully control. It comes with limits that HighLevel lists in its help article (modified April 2026):

  • Goal steps tied to the old contact ID may not behave as expected.
  • Wait-for-reply, email event and trigger link waits can break, because they still point to the old contact or message.
  • If the surviving contact is already in the same workflow, the merging run ends.
  • If the survivor entered the workflow before and re-entry is off, the merging run also ends.

That is why we place automatic merging early in an intake flow, before any waits or goals. A merge late in a long nurture sequence is a common reason a GoHighLevel workflow stops working for some contacts.

How do you prevent duplicate contacts from forms and imports?

You prevent duplicate contacts in GoHighLevel by turning “Allow Duplicate Contact” off, choosing the lookup field your forms collect most reliably, and adding a second lookup field as a backup. Then make every intake path send that field in a clean, consistent format.

A prevention checklist that works for most US service businesses:

  • Match on what you always collect. If your ads and forms are phone-first, make Phone the primary lookup and Email the second preference.
  • Make the lookup field required on every form and survey that creates contacts.
  • Clean CSV files before import. Imports always match on phone or email, so one consistent column per field is enough to avoid new records.
  • Review integrations. Zapier, Make and custom API connections should send email and phone in the same format your forms use. Our GoHighLevel API and integrations service fixes syncs that create a new contact on every update.
  • Limit who can change settings. The panel saves instantly, so keep admin roles to the people who need them.
  • Run Manage Duplicates on a schedule, for example once a month, and after every large import.

Duplicates are one item in a wider data hygiene routine. Our GoHighLevel CRM optimization guide covers tags, custom fields and pipelines that drift the same way.

Why clean duplicates before a reactivation campaign?

Clean duplicates before a reactivation campaign because every duplicate is a person who gets the same text or email twice. That raises opt-outs, wastes message credits and can mix a contact who opted out with a record that still looks open to messages.

The risks add up quickly on an old list:

  • Double sends. Two records with one phone number mean two SMS segments billed and one annoyed reader.
  • Consent mix-ups. A stop request saved on one record does not protect the duplicate. Our A2P 10DLC registration service gets your brand approved, but carriers still watch complaint and opt-out signals on every campaign.
  • Broken reporting. A reply on one record and the booked appointment on another make the campaign look worse than it is.
  • Split conversations. Your team answers in one thread while the lead’s history sits in another.

If you plan to text past customers, read our guide to running a win-back campaign by SMS and email after the list is clean.

What do many duplicates say about an account?

A large number of GoHighLevel duplicate contacts usually points to deeper setup problems: intake forms built by different people, integrations that were never tested, and nobody owning the account’s settings. Duplicates are often the first visible sign of an account that needs an audit.

When we find heavy duplication, we also check for:

  • forms that write to different custom fields for the same data;
  • workflows triggered twice by the same lead, which sends double messages;
  • pipelines with the same deal in two stages;
  • sub-accounts that were cloned from a snapshot without fixing its default settings.

Our GoHighLevel tech audit checklist lists what a full account review covers.

Need your contact database cleaned up?

If your sub-account has thousands of contacts, split histories and a list you are afraid to text, our database reactivation service starts with the cleanup. We merge duplicates, fix the deduplication settings and intake paths, and then build a compliant campaign to bring past leads back.

If the duplicates are part of a bigger mess left by a previous freelancer, a sub-account audit and rebuild gives you a clear list of fixes. You can compare plans on our pricing page.

Frequently Asked Questions

Can you merge contacts in GoHighLevel?

Yes. Admins can merge contacts in GoHighLevel from the Manage Duplicates tool, or by selecting two or more contacts in the contact list and choosing More, then Merge. You pick a master record, review the fields that differ and confirm. Up to 10 contacts fit in one merge, and the result cannot be undone.

Can you undo a contact merge in GoHighLevel?

No. HighLevel’s help center says a merge cannot be undone, and the confirmation dialog asks you to acknowledge that before it runs. The other records are removed once they merge into the master. That is why you should check the master, custom fields, opportunities and opt-out status before you confirm each merge.

Does a CSV import create duplicate contacts?

No. According to HighLevel, CSV imports are not affected by the “Allow Duplicate Contact” setting and always match existing contacts on phone number or email. A row with a known email or phone updates that contact. Duplicates can still appear if the file holds a different email and phone for a person who already exists.

Who can use Manage Duplicates in GoHighLevel?

Only agency admins and sub-account admins can use Manage Duplicates. Regular users and team members do not have access to the tool. If your staff need duplicates cleaned, an admin has to run the scan, or the agency that manages the account can do it for you as part of a regular data cleanup.

Should I turn off “Allow Duplicate Contact”?

For most local service businesses, yes. With the setting off, forms and Zapier update the existing contact instead of creating another one, and Messenger leads merge automatically. Keep it on only if you truly need separate records for one person, such as two departments that track the same customer apart.

Why do I still get duplicates with the setting off?

Duplicates can still appear when the incoming lead has no value in your lookup field, or when the email or phone differs from the existing record. A phone-only form will not match an account set to look up email. Add a second lookup field, make the key field required, and check the format your integrations send.

Scroll to Top
WhatsApp us