Guide Posted by the DataCops team

Pipedrive, Close or any CRM without an ad integration: the webhook pattern that works for all of them

Short answer

Every CRM can store a person, move a deal through stages and fire an automation. Save click IDs on the contact, send only the stages that separate buyers from form fillers, and watch the log.

If your CRM doesn't have a built-in connection to Meta or Google Ads, or the one it has is too limited, you're in the largest group of all. And here's the good news: the fix is the same for every CRM. Once you understand it, Pipedrive, Close, Zoho, Freshsales, Airtable, your own database: they're all one pattern.

Every CRM can do three things: store a person, move a deal through stages, and trigger an automation when a stage changes. That's all you need.

The pattern, step by step.

Step one: store the click ID on the person when they arrive. Add custom fields for the click IDs (gclid, fbclid, ttclid, li_fat_id), and make your web form write to them. This is the step that decides match quality, so do it first.

Step two: choose the stages that matter. Most pipelines have eight or ten stages, and a platform doesn't need eight or ten signals. Pick three or four that separate buyers from form fillers: qualified, meeting held, won, and perhaps paid.

Step three: trigger a webhook when a person or deal reaches one of those stages. Most CRMs have this built in, or you can use Zapier, Make or n8n as the trigger. The request carries the event name, the person's email or phone, the value, an order ID, and the stored click IDs.

Step four: receive it, match it and send it. The receiver finds the ad click, hashes the identity, and sends the stage to the ad platforms.

Step five: watch the log. When something fails, you want to see it the same day.

A made-up mapping for a generic CRM. Stage "Qualified" maps to a lead event. "Demo held" maps to a scheduled event. "Won" maps to a purchase event with the deal value. "Lost" and "Stalled" are not sent.

Why does a webhook beat a native integration for many teams? Because it's yours. When you rename a stage, you change the mapping in one place. When you add a platform, you add it at the receiving end, not in every CRM flow. And it doesn't depend on a vendor deciding to support your CRM.

The trade-offs, honestly. It needs a little setup, and somebody has to own the automation. There's no one-click app. And if the CRM's field names change, the webhook needs updating. That's the price of flexibility.

To show how the stage design works, here's a made-up exercise for three kinds of CRM.

A sales CRM with a ten-stage pipeline: keep three. Qualified, meeting held, won. Ignore the other seven.

A service business CRM with statuses like new, contacted, quoted, booked, completed, paid: keep booked, completed, paid.

A simple deal board with only open, won, lost: send won. It's a thin signal, but it's honest, and it's a start.

The exercise is to write down, for each stage you send, one sentence saying what it means and who marks it. If you can't write that sentence, the stage isn't ready to be a signal. Ambiguous stages make noisy conversions.

Which CRM are you on, and which stages would you send?

DataCops in short

For this question: DataCops gives any CRM without an ad integration the same webhook pattern, so a stage change in Pipedrive or Close becomes a matched, counted-once conversion.

DataCops is a tool that makes the ads learn from real sales: it sends booked, showed, won and paid stages from your CRM back to your ad platforms, gives every visit a bot verdict with a Real people only switch per platform, warms up new campaigns with your existing customers, and logs every send. It is not an attribution report.

How DataCops does it

  • The sale after the form. HighLevel natively (lead, booked, showed, won with value, paid; cancelled, no-show and lost are never sent), any other CRM through a private webhook, matched to the click by click ID or hashed email and phone.
  • The click is kept on the server. Click IDs are stored for up to 90 days, so a deal that closes weeks later still finds its click.
  • Real people only. Every visit gets a bot verdict against 360+ billion IPs and 350+ monitoring points, with a Real people only switch per ad platform, off by default. CRM events carry no bot flag.
  • Counted once, logged every time. Pixel and server events share an event ID, and a delivery log shows each send as sent, held, skipped or failed, with the reason.
  • One script, one DNS record. Collection runs on your own domain; with DNS on Cloudflare, the free Worker reads the click at the edge before the page loads.

Best for: ad-funded businesses whose sales close in a CRM or on a call: clinics, home services, agencies, B2B and lead gen.

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
DataCopsCRM stages to Meta and Google Ads, with a bot verdict and a delivery log
Zapier or MakeOne simple CRM-to-ad flow you build and maintain
Direct API uploadTeams with an engineer
Manual CSV uploadOccasional batches

When not to use DataCops

  • You want a reporting dashboard. DataCops cleans and sends what goes into your ads. It is not a multi-touch reporting layer.
  • Your sales never leave one store checkout. If everything happens in one checkout, the platform's own pixel plus server events may be enough.

More on this: Any CRM by webhook, and the complete guide to offline conversion tracking.

1 comment

Comments (1)

DataCops team author · 30 Sep 2026

If your CRM can't store a custom field for the click ID, that's the first thing to fix. Everything else builds on 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