Conversion tracking guide

One GoHighLevel lead showing twice in Meta? Fix the event identity first.

Double counting usually means the browser and server events cannot recognize each other, or more than one tool is sending the same conversion.

Updated July 2026 7 min read Practical setup guide
Quick answer

What to do

Use the same event name and event ID for the Pixel and CAPI copy of one conversion. Then remove overlapping native, workflow, GTM, plugin, and custom events that send an additional Lead with a different ID.

How browser and server deduplication works

The Meta Pixel and Conversions API are separate delivery paths. When both report the same conversion, the event name and event ID must match so Meta can treat them as one action.

The event ID must still be unique to that conversion. Reusing one ID for several different leads creates a different reporting problem.

  • Same conversion: same event name and same event ID
  • Different conversion: new event ID
  • Retry of the same conversion: reuse the original event ID
  • Different funnel stage: separate event and event ID

Find every tool that can send Lead

GoHighLevel can send events through native funnel tracking and workflow actions. A page may also contain GTM, a direct Pixel event, another CAPI provider, or custom code.

Make a simple inventory. If three systems report Lead on the same form submit, perfect deduplication between two of them still leaves the third event.

  • GoHighLevel funnel event tracking
  • GoHighLevel Meta CAPI workflow action
  • Meta Pixel event code
  • Google Tag Manager
  • Third-party CAPI provider
  • Custom JavaScript or webhook

Verify the fix in Meta Events Manager

Use Test Events and inspect the browser and server copies. Confirm the event names match and the IDs are identical for one test submission.

Then check Diagnostics and the event-source breakdown after production traffic arrives. Do not judge the final result from one screen refresh immediately after deployment.

  • One browser event
  • One server event
  • Matching event name
  • Matching event ID
  • No extra event from another workflow or script
Before you publish

GoHighLevel Meta CAPI check

01List every integration that sends the conversion

02Keep one browser path and one server path

03Match the event name exactly

04Share one event ID for the same conversion

05Test retries and page refreshes

Frequently asked questions

Common questions about this setup

Does external_id deduplicate Pixel and CAPI events?+

The normal browser-and-server deduplication plan uses matching event names and event IDs. External ID is useful for matching, but it should not replace the shared event ID strategy.

Can I disable the Pixel and use only CAPI?+

Yes, but you lose browser-side signals. Many setups use both and deduplicate them correctly.

Why are Schedule events higher than Lead events?+

A Schedule workflow may be firing more than once, or the Lead and Schedule events may come from different tracking systems. Audit the triggers and event sources.

Should a retry create a new event ID?+

No. A retry of the same conversion should reuse the original ID.

Official references

Use these official references when checking the current Meta setup and account screens.

Keep learning

Related conversion tracking guides

Simple CAPI workspace

Turn the answer into a working Meta conversion.

Choose Lead or Schedule, paste one protected script on the intended page, and verify the real conversion.

Create your script