Troubleshooting Posted by the DataCops team

Why does Meta show Website events when I only send CRM events through Zapier, GoHighLevel and CAPI?

Short answer

The action source field decides how Meta labels an event. Set it to match where the action happened and check one event in Test Events.

Meta labels the channel by how the event is sent, and an event sent through the Conversions API can carry an action source of website even if the sale happened in a CRM. If your automation sets the action source to website, or if it is left at a default, Meta will list the events as website events.

The action source is a field on each Conversions API event. Its values include website, email, phone call, chat, physical store, system generated and others. It tells Meta where the action took place. If your workflow does not set it, or sets it to website, the report will show website.

Does it matter? Partly. It affects how Meta reads the event and how it appears in reports, and for website events it expects some browser details, such as a source URL, which CRM events do not have. Missing details on a 'website' event can lower match quality or trigger warnings.

Choose the value that matches reality. For a stage change inside a CRM, 'system generated' or 'other' is usually closer. For a phone call or chat outcome, there are specific values. Check Meta's current documentation for the options and what each requires.

Check the other fields too. For CRM events you generally send the event name, the time of the event, hashed email and phone, and where you can, the click ID. Do not add a fake website URL just to satisfy a warning.

Then confirm in Events Manager. Open the dataset, filter by event, and look at the action source and the match keys shown. You can also use Test Events with a test event code to send one CRM event and read exactly what Meta received.

If you use GoHighLevel, look at which action sends the event. Its built-in Meta action has its own rules, and a Zapier step sending a separate event can duplicate it. Make sure the same stage is sent once, by one route.

DataCops sends CRM stages through the Conversions API from HighLevel natively or any CRM by webhook, matched by click ID or hashed email and phone and counted once, and its log shows what was sent for each event. Check the action source against Meta's documentation for your setup.

Which tool sets the action source in your flow today, if any?

DataCops in short

For this question: DataCops sends CRM stages through the Conversions API, matched by click ID or hashed email and phone and counted once, and its log shows what was sent for each event.

DataCops is a tool that counts every paid order once on every ad platform: the DataCops Shopify app reads the paid order from Shopify's own order webhook and a Web Pixel reports the shopping steps, with a bot verdict on every visit and a log of every send.

How DataCops does it

  • The paid order from the server. It comes from Shopify's order webhook, so Shop Pay, Apple Pay and closed tabs still count.
  • Counted once. The pixel and the server share an event ID, and the same order ID twice counts once.
  • Every ad platform. Meta, Google Ads, TikTok and LinkedIn are live, with more connectable.
  • Real people only. A bot verdict on every visit, with a switch per platform, off by default.
  • A log you can read. Each send as sent, held, skipped or failed, with the reason.

Best for: Shopify and other online stores that want paid orders counted once on every ad platform, and CRM or phone sales counted too.

Ads Warmup: tell the ads who pays

Ads Warmup, DataCops' flagship feature, sends customers you already have to Meta, Google Ads and TikTok before a new campaign spends: upload a CSV (only email is required, up to 20,000 rows), see a 0 to 10 match score per person, pick the event, and send. Rows are dated when you send, and Google Ads credits only people who clicked a Google ad. Preview is free; sending needs a paid plan. Check your own consent basis for the list first. See Ads Warmup.

Ways to do this job

OptionBest for
DataCopsPaid orders to every ad platform, with a bot verdict and a log
Shopify's Facebook and Instagram appOne Meta pixel and server events on Shopify, Meta only
A store tracking app (such as Elevar)A managed data layer for a Shopify store
Hosted server GTM (such as Stape)A team that already owns a GTM container

When not to use DataCops

  • Your only ad platform is Meta and your store is small. Shopify's own Facebook and Instagram app at Maximum data sharing may be enough.
  • You need custom tag logic. DataCops sends to ad platforms and is not a Google Tag Manager container.

Sources and further reading

More on this: GoHighLevel conversion tracking, and the complete guide to offline conversion tracking.

1 comment

Comments (1)

DataCops team author · 30 Sep 2026

Send one test event with a test code and read it in Test Events. It shows exactly how Meta classified it.

1
Replies from DataCops account holders are coming soon. Until then, questions about your own setup can go to the team.

More threads

See what your own setup is missing

Send CRM sales back to the ad click that started them, logged per send.

Setup in 5 minutes. No credit card.

Live traffic quality

Updated just now

Visits · last 24h

487
Real users
35873.5%
Bots · auto-filtered
12926.5%

Without filtering, 26.5% of your reported traffic is bot noise inflating dashboards and draining ad spend.

Don't trust your analytics!

Make confident, data-driven decisions withactionable ad spend insights.

Setup in 2 minutes
No credit card