Offline conversion tracking for law firms, accountants and financial advisers
Firms want ads that bring clients, not form fills, without passing on what clients tell them. DataCops sends consultation booked and retained back to your ad platforms with hashed email or phone and the ad click, and nothing about the matter.

Trusted by agencies and brands running paid media










From enquiry to retained client
The smallest signal that teaches your campaigns, sent at the right moment.
- Step 01Saved on yourdomain.comfbclid from Meta Keptgclid from Google Ads Keptttclid from TikTok KeptKept for up to 90 days
The script on your own subdomain keeps the ad click with the visitor for up to 90 days.
- Step 02
Stages your CRM reports
Booked call ReportedShowed up ReportedWon, with value ReportedThe enquiry becomes a booked consultation, then a retained client, in your CRM.
- Step 03Finding the ad click againWon dealby email or phoneAd click, 23 days earlierMatched
DataCops matches the stage to the click, with email and phone hashed before sending.
- Step 04Won deal sent
Meta Sent once
Google Ads Sent once
TikTok Sent once
LinkedIn Sent once
Consent is checked again, then a neutral event goes to the ad platforms you connected.
Every send is logged per platform with its status and reason, so you can show exactly what left.
Why professional services need a careful approach
Law firms, accountants and financial advisers buy ads like everyone else, and they have the same problem: the form fill is not the client. A person who fills in a form about a tax problem might never book. A person who books a consultation might never sign. The ad platforms only see the first step unless you tell them about the rest.
The difference is what you are allowed to say in the telling. What a prospective client shares with a firm can be private, sometimes protected by professional duty. So the approach on this page is simple: send the smallest signal that does the job, and nothing that describes the matter.
The two stages that matter: consultation booked and retained
For most firms two stages carry almost all the value. Consultation booked means a real person agreed to a real time. Retained means they signed an engagement letter and became a client. Everything else is either too early to trust or too late to be useful.
If you can only send one, send consultation booked. It happens often enough to teach a campaign, and it is far better than a form fill. Add retained once you have a steady number a month. If you have a value for the engagement, such as a fixed fee or a first-year estimate, it can travel with the retained event, so the ad platforms learn which clicks bring larger clients. Lost, no-show and cancelled are best left unsent, so the platforms are not taught to find more of them.
Example, made up: an accountancy practice gets 40 form fills a month. Fourteen book a consultation and five sign an engagement letter. Sending consultation booked gives the campaign 14 real signals a month instead of 40 noisy ones, and the practice still counts the 5 retained clients in its own monthly review.
What to send, and what never to send
Matter details never go to an ad platform. That means the type of case, the facts a client told you in confidence, names of other parties, amounts in dispute, an assessment of their finances, and anything typed into a notes field. None of it is needed to match a conversion. Do not put the practice area in the event name either. Use neutral names.
Because your CRM posts only the fields you map, the safest setup is also the simplest one. A webhook post with an event, an email or phone, a click ID and maybe a value is all DataCops needs.
How DataCops keeps the click
The DataCops script loads from a subdomain of your own site, set up with one DNS record. It keeps the Google, Meta, TikTok, Microsoft, LinkedIn and X click IDs with each visitor. When the visitor shares an email on your enquiry form, DataCops links that email to their visit. Weeks later, when your CRM posts consultation booked with the same email, the original ad click is found.
If the prospect returns on a new device and uses the same email, the earlier click can still be credited. For returning visitors on the same browser, a first-party server cookie can keep them recognised for up to 400 days, even on Safari. It is a per-site switch and starts off.
Getting stages out of your CRM
Practice management systems and CRMs differ, so DataCops uses one private sales webhook that any of them can call. When a matter moves to consultation booked or retained, your CRM, or Zapier, Make or n8n, posts a short JSON message with the event and the client's email or phone. Add an order_id, such as the matter number, so the same engagement counts once even if the automation fires twice. Send the test flag while you set it up, and the post is logged without being sent.
If your firm runs on HighLevel, there is a free native app instead. Booked, showed and won in HighLevel go back to your ad platforms as conversions, with no automation to build.
Hold enquiries until someone has spoken to them
Many firms screen enquiries before treating them as real. DataCops can hold a lead rather than send it. The held lead keeps its original click IDs and hashed details. When your team marks it a genuine prospect, your CRM posts a release with the event name and email, or someone releases it from the lead list in the dashboard. Marking it not a fit drops it. HubSpot users get the release automatically, checked every 5 minutes. Held leads expire after 14 days, so stale enquiries never reach your ads.
An intake checklist that keeps it clean
Most leaks are not deliberate. They happen because a workflow copies a whole contact record. A short checklist prevents it.
- Give your intake form only the fields you need: name, email, phone and a general enquiry type from a short list.
- Keep free-text descriptions in your case system, not in the marketing tool.
- Map only the event name, email or phone, order_id and value into the webhook post.
- Use one clear notice on the form that says what you share with advertisers.
- Test with a fake enquiry, using the test flag, and read the log to confirm what left.
- Review it every quarter, and after any change to the intake form.
Consent, hashing and Health mode
DataCops includes a cookie banner built to the IAB TCF v2.2 standard. It shows in Europe by default and turns on Google Consent Mode v2. The server checks consent again before every send. For EU, UK and Swiss visitors, no conversion goes to an ad platform until the visitor opts in. If a visitor accepts a moment after landing, their ad click is still delivered.
Email, phone and names are cleaned and SHA-256 hashed before they leave our servers. For firms that also touch health topics, such as clinical negligence or personal injury, Health mode sends ad platforms only the click, the value and your homepage address: no page paths, no titles and neutral event names on Meta. It is on every plan.
Clients are handing over something private. A short, true sentence on your intake page helps: "We tell advertising platforms that an enquiry led to a consultation, using a scrambled version of your email. We never share what you tell us." Make sure your setup matches it first.
Long cycles and platform time limits
Professional services close slowly. A probate matter, a business sale or a tax review can take months between the first click and the signed letter. Google Ads ignores uploads more than 90 days after the click, and Meta rejects events more than 7 days after they happened. So send each stage on the day it happens, and lean on consultation booked as your main signal. It usually lands well inside both limits and still says the lead was real. Use retained with value where it arrives in time, and in your own reporting.
Keeping spam enquiries out
Legal and finance forms attract spam and fake enquiries. LeadCops forms, the DataCops lead forms, keep the ad click with every lead and can block disposable emails, free email addresses, domains that cannot receive mail and VPN submissions. High-risk submissions are saved as blocked and are never delivered. On your own forms, the Real people only switch, set per ad platform, stops conversions from bots and datacenter traffic reaching that platform. It is off until you switch it on.
A record of every send
Every conversion is logged per platform as sent, skipped or failed, with a plain reason: held, duplicate, consent rejected, event not mapped and so on. History goes back up to 400 days. If a regulator or a partner asks what your marketing shares, you can show it line by line. Email alerts warn you when deliveries fail or an ad platform connection is about to expire, and a new-lead email can reach the intake team the moment a form enquiry arrives.
A note on advertising rules
Legal, accounting and financial advertising is regulated, and the rules differ by country, state and professional body. What you may say in an ad, how you may target, and what you may pass to a third party is your responsibility as the advertiser. Ask your regulator or compliance adviser about your own setup before you switch anything on. DataCops keeps what leaves your systems small, consented and visible.
Good to know before you start
- Consultation booked is the best first signal; add retained once you have steady volume.
- Map only an event, email or phone, order_id and value. Matter details stay in your case system.
- Send each stage the day it happens, to stay inside Meta's 7-day and Google's 90-day limits.
- Any CRM connects through the private sales webhook; HighLevel has a free native app.
What runs behind each consultation you send

One first-party script, served from your own domain
- Runs first-party from datacops.yourdomain, not a blockable third-party host
- One script, one CNAME, live in about 5 minutes, no container to host
- Server-side collection on Cloudflare's edge, close to every visitor
- Captures click IDs at the network level, so fbclid and gclid still reach your CAPI feed after browsers strip them
- Recovers 15 to 25% of the sessions other setups lose
Traffic Visibility
First-Party Script
Blockers and ITP cut your sessions
Set up offline conversions for your firm
About 5 minutes for the site, then one automation in your CRM.
- Step 1code
Add the DataCops script
One script and one DNS record keep every ad click on your own domain. - Step 2ads_click
Connect your ad accounts
One-click sign-in for Meta, Google Ads, TikTok and LinkedIn. An API key for Microsoft Ads, Reddit and Pinterest. - Step 3hub
Post stages from your CRM
Send consultation booked and retained to your private webhook, test flag on first.
Offline conversions for law firms and accountants with DataCops, in short
DataCops is a tool that sends consultation booked and retained from your CRM back to your ad platforms with hashed email or phone and the ad click, and nothing about the matter.
How DataCops does it
Send only what is needed
Map only an event, email or phone, an order ID and a value. Emails and phones are hashed. Matter details stay in your case system and are never sent.
Consultation booked first, retained later
A booked consultation is the best first signal. Add retained once you have steady volume. HighLevel sends booked, showed, won and paid natively, and any CRM posts to the private webhook.
Matched to the ad click
DataCops keeps the click on your own domain for up to 90 days, with a signed server-set cookie up to 400 days where enabled, so a client who retains weeks later still finds their click.
Send the day it happens
Stay inside Meta's 7-day and Google's 90-day limits by sending each stage the day it happens. Send an order ID so repeats count once.
Keep fake enquiries out
Every visit gets a bot verdict against 360+ billion IPs and 350+ monitoring points, with a Real people only switch per platform, off by default. CRM posts carry no bot flags, so the check applies to the site visit. Every form email is checked for disposable providers, domains with no mail server and an email risk score, and LeadCops can hold a lead.
Past clients and proof
Ads Warmup can send a list of past clients as hashed identifiers, up to 20,000 rows with a 0 to 10 match score, dated when you send. Check your confidentiality rules first; you choose what to upload. A delivery log row shows each send with its reason.
Best for: law firms, accountants and financial advisers who want ads that bring clients, not form fills, without passing on what clients tell them. This page is not legal advice.
Free to start. See pricing.
When not to use DataCops
Your rules do not allow sharing identifiers with ad platforms
If your professional obligations stop you sharing even hashed identifiers, do not use it. Ask your regulator or lawyer.
You need matter details in the ad data
DataCops never sends matter details. Only the event, hashed email or phone, order ID and value go.
You need refunds sent to Meta or TikTok
Refunds do not reach Meta or TikTok. Google Ads is corrected: a full refund retracts the conversion and a partial one lowers its value.
You need bot checks on CRM stages
CRM posts carry no browser bot check. Qualify enquiries before the stage you send.
Sources
Platform rules checked October 2026. Rules change; check the platform's own page before you build.
FAQ
Start with consultation booked. Add retained when you have a steady number a month. Both can use neutral event names. Lost, no-show and cancelled are best left unsent.
Works with the rest of DataCops
Conversion API
Server-side conversions to Meta, Google Ads and TikTok, no code.
See Conversion APIAds Warmup
Feed your customer list to the ad platforms before you spend.
See Ads WarmupLeadCops
Verified leads, and conversions only once a lead qualifies.
See LeadCopsOffline Conversions
CRM, store and CSV sales matched back to the ad click.
See Offline ConversionsLet your ads learn from real clients
Send consultations and retained clients to your ad platforms, with nothing about the matter. Start free.
Setup in 5 minutes. No credit card.