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
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
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.