Facebook offline conversions tell Meta which ad leads became customers: the booked call, the show-up, the deal your team won. DataCops sends them from HighLevel, HubSpot or any CRM to Meta through the Conversions API, within Meta's 7-day window, matched to the ad click.
Facebook offline conversions, now Meta offline conversions, are sales or steps toward a sale that happen away from your website and are sent back to Meta: a booked appointment, a phone sale, a deal won in your CRM, a paid invoice. Meta matches each one to the person who clicked or saw your ad, counts it as a result of that ad and learns to find more people like the ones who bought.
DataCops keeps the ad click on your own domain when the visitor lands. When the lead books, shows up, qualifies or buys in HighLevel, HubSpot or any CRM, DataCops finds that click again and sends the stage to Meta through the Conversions API, the same day. No weekly CSV, no code.
DataCops sends Facebook offline conversions from HighLevel, HubSpot or any CRM to Meta through the Conversions API, matched to the ad click that started each sale.
What Meta learns from
Leads and clinics on HighLevel
What your ads see todayForm→Booked→Showed→Won→Paid
With DataCopsForm→Booked→Showed→Won→Paid
B2B on HubSpot
What your ads see todayForm→Qualified
With DataCopsForm→Qualified
Salesforce or any CRM by webhook
What your ads see todayForm→Sale, with value
With DataCopsForm→Sale, with value
Why Meta misses the sale
Why Meta optimizes for form fills
Meta learns from what it is told. For most lead businesses that is the form, and nothing after it.
Events Meta received
LeadReceived
Booked callvisibility_offNever seen
Deal wonvisibility_offNever seen
The pixel stops at the form
The Meta Pixel stops at the form
The pixel sees the form fill and the thank-you page. The booked call, the show-up and the won deal happen where it cannot follow.
Opportunity in your CRM
StageWon
ClosedOn a sales call
Came fromA Meta ad
notifications_offMeta never hears about it
The sale happens in your CRM
Deals close in HighLevel, HubSpot or Salesforce, on the phone or in person. Nothing tells Meta that the lead became a customer.
The ad click, in the browser
Day 1Ad click saved
Day 8Safari clears the cookie
Day 23Deal won
link_offNo click left to match
The click is gone when the deal closes
Safari clears cookies set by a browser script after 7 days. A deal that closes three weeks later has no fbclid left to match.
Leads sent to your ads
personReal leadarrow_forwardCounted
smart_toyBot leadarrow_forwardCounted
personReal leadarrow_forwardCounted
Your ads now look for more bots
Fake leads teach Meta
Bot form fills count as leads too. Every one tells Meta to find more people like it.
What changed at Meta
Meta offline conversions after the API shutdown
The Offline Conversions API is gone
Meta shut down its separate Offline Conversions API and offline event sets in May 2025. Offline and CRM sales now go through the same Conversions API as website events, into a dataset.
Events older than 7 days are rejected
Meta turns away events sent more than 7 days after they happened. A monthly or weekly CSV of won deals loses its oldest rows, so each stage should go out on the day it happens.
Matching runs on customer details
Meta matches an offline sale to a person by hashed email and phone, and by the click ID when there is one. The more of these you send, the more sales Meta can credit to an ad.
Day 0Day 2Day 4Day 6Day 8Day 10
7-day limit
Weekly CSV, deal won on Day 0, sent Day 9Rejected
DataCops, deal won on Day 0, sent Day 0Accepted
Offline Conversions API endpointShut down May 2025
How DataCops sends Meta offline conversions
Four steps from the ad click to the won deal, with nothing to wire in HighLevel or HubSpot.
Step 01
Saved on yourdomain.com
fbclid from MetacheckKept
gclid from Google AdscheckKept
ttclid from TikTokcheckKept
Kept for up to 90 days
The visitor clicks your Facebook or Instagram ad. DataCops keeps the fbclid on your own domain for up to 90 days.
Step 02
Stages your CRM reports
Booked callboltReported
Showed upboltReported
Won, with valueboltReported
The lead books, shows up, qualifies or buys, and your CRM reports it.
Step 03
Finding the ad click again
Won dealby email or phone
arrow_downward
Ad click, 23 days earlierlinkMatched
DataCops matches the lead by click ID or hashed email and phone.
Step 04
Won deal sent
MetacheckSent once
Google AdscheckSent once
TikTokcheckSent once
LinkedIncheckSent once
The stage goes to Meta through the Conversions API, and to Google Ads, TikTok and LinkedIn if connected.
Each stage goes out as your CRM reports it, well inside Meta's 7-day limit.
“15 minutes to get server-side tracking live. After 3 days failing with another app and a DIY server-side Google Tag Manager, that alone sold me. Then support jumped on a Google Meet with me on a Sunday afternoon to finish the job. Nothing else comes close.”
The six places people ask about most. Each card shows what actually reaches Meta.
Lifecycle stage: SQL→Sent
HubSpot to Meta
Pick the lifecycle stage that means a lead is qualified. DataCops holds each lead from your site, checks HubSpot every 5 minutes and sends the conversion to Meta when the lead reaches that stage. Leads that never qualify expire after 14 days. Deal stages are not read.
Install once for your agency and pick the sub-accounts to connect. The form or survey lead, the booking, the show-up, the won deal with its value and the paid invoice each reach Meta as HighLevel reports them. Cancellations, no-shows and lost deals are never sent.
There is no native Salesforce connector. When an opportunity closes, a Salesforce flow, Zapier, Make or n8n posts it to your private DataCops webhook with the customer's email or phone, the value and the order ID. DataCops finds the ad click and sends it to Meta.
Meta getsPurchase, with value
email or phone to match
Order paid→Sent
Shopify orders
The DataCops Shopify app sends each paid order to Meta as a server-side purchase with its value, so orders the browser pixel missed, blocked or lost still count against the ad that brought the buyer.
Meta getsPurchase, with value
sent once per order ID
table_viewsales.csv, 20,000 rows→Sent
Google Sheets and CSV
On a paid plan, Ads Warmup takes a CSV of up to 20,000 past customers or sales and sends them to Meta and the other platforms you pick. Rows are dated when you send them, so use it to warm up an ad account, not to rewrite past reports. For a sheet you add sales to every day, send each new row to your webhook through Zapier or Make.
Any tool that can post a webhook can send offline sales. Add one webhook step to your Zap with the email or phone and the value. DataCops matches the ad click and sends the sale to Meta, Google Ads, TikTok and LinkedIn, so you need no separate Zap per platform and no click ID in your CRM.
Meta getsAny stage you post
one Zap, every platform
Real people only
Filter fake leads before you send
A bot that fills in your form becomes a lead your ads try to find more of. DataCops checks every visit
for bots and datacenter traffic, and for VPNs and proxies if you choose. Switch on Real people only for a
platform and flagged visits never reach it.
With HubSpot, each lead waits until your team marks it qualified, so your ads only learn from leads a
person accepted. Sales that come straight from your CRM are sent as your CRM reports them, so qualify
them there.
Facebook offline conversions, now called Meta offline conversions, are sales or steps toward a sale that happen away from your website and are sent back to Meta: a booked call, a show-up, a deal won in your CRM, a paid invoice. Meta matches each one to the person who saw or clicked your ad, so your campaigns learn from buyers and not only from form fills.