Why GoHighLevel Duplicate Contacts Keep Showing Up

GHL Prime TeamOctober 10, 20263 min readGoHighLevel

GoHighLevel duplicate contacts rarely show up by accident. They appear because a form, a Zapier submission, a Facebook message, or a WhatsApp reply reached the account before the deduplication settings were configured to catch it. Fix that setting and most of the problem goes away before it starts.

GoHighLevel gives you three tools for this: a setting that decides whether a duplicate gets created, a manual merge screen for cleaning up what already exists, and a workflow action that merges contacts automatically inside an automation.

How the Allow Duplicate Contact Setting Decides What Happens

The setting lives in Settings, then Business Profile, then Contact Deduplication Preferences, in the lower-left corner of the dashboard. Business Profile settings work differently depending on whether you're in the agency view or a sub-account, so check you're editing the right one.

Switch Allow Duplicate Contact on, and a new submission with a matching email or phone creates a fresh record next to the old one. Leave it off, and that same submission updates the existing contact instead.

You also pick a primary matching field, email by default or phone, plus an optional secondary field. With email primary and phone secondary, GoHighLevel checks email first and only falls back to phone when no match turns up.

That logic doesn't reach every channel the same way.

ChannelHow duplicates are handled
Forms and ZapierFollow the Allow Duplicate Contact toggle exactly
Facebook and Instagram MessengerMerge automatically once details match if the toggle is off; can leave separate records if it's on
CSV importsAlways merged on phone or email, no matter how the toggle is set
WhatsAppNeeds phone set as the secondary matching field, or duplicates slip through even with the toggle off

That CSV row catches people out: it ignores the toggle entirely. Importing a contact list merges on phone or email regardless, so a messy CSV can quietly erase records you meant to keep separate.

Where GoHighLevel Duplicate Contacts Actually Come From

WhatsApp is the clearest example of the setting failing silently. A reply from an existing contact creates a second record whenever the contact search preferences aren't configured to include phone as a secondary criterion, even with Allow Duplicate Contact switched off.

The fix is narrow: open Business Profile, find Contact Duplicate Preference, and set the second preference for search to phone. HighLevel's own walkthrough for the WhatsApp issue lays out exactly those three steps.

Merging Contacts by Hand or Inside a Workflow

Once duplicates exist, the Manage Duplicates tool finds them by email, phone, or name, and lets you combine up to ten matching contacts into one master record at a time.

The master contact's own values stay as they are. Custom fields fill in only where the master was blank, existing values are never overwritten, and tags, notes, tasks and opportunities all combine onto the surviving record, which matters if tag-based segmentation drives your campaigns.

Only Agency Admin and Sub-Account Admin roles can run a merge. And it can't be undone, so check the master contact before confirming.

For duplicates that keep appearing on their own, the Merge Contact workflow action handles it without anyone opening the Contacts screen. Add it to a workflow and choose email, phone, or both as the match criteria.

It merges the newer record into the older one automatically. The older contact always survives, which protects whatever history it already has.

That action has real limits. Goals can malfunction after a merge, and trigger link tracking can break since the tracking ID still points at a contact that no longer exists on its own.

Building that logic into a workflow is worth doing carefully, not bolted onto an existing automation and left to hope.

Set the deduplication preferences correctly first. A merge tool only ever cleans up contacts that shouldn't have been duplicated to begin with.

Cover photo by Gustavo Fring on Pexels

Sources (4)

Need help implementing this in GoHighLevel?

Our team builds, automates, and scales GoHighLevel systems for agencies every day. Book a free call and we'll map out exactly what to ship next.

Book a free call