Module 04 · Closed-Loop ROAS & Attribution

Stop optimizing for cheap form leads. Track every euro from ad click to cleared clinic deposit.

Ad platforms reward the campaign with the cheapest leads — even when none of them ever pay. ClinicSuite joins every click to the WhatsApp chat, the treatment proposal and the receipt from your cash desk, then teaches Meta, Google and TikTok to find patients who actually bank.

  • Click ID, WhatsApp chat, proposal and cash desk receipt on one patient timeline
  • 'Deposit Cleared' and 'Treatment Paid' sent back to Meta, Google and TikTok in seconds
  • ROAS measured on money in the bank — not on form fills or pixel guesses

ROAS simulator · last 30 days

2 Meta campaigns · equal split

Pixel
Monthly ad spend
Leads reported
2,210
Blended CPL
€11.31
Platform ROAS
5.3×

ROAS by campaignPixel value ÷ spend

  • UK · Hair · Instant Form7.5×

    1,894 leads · CPL €6.60

  • DACH · Veneers · Click-to-WhatsApp3.0×

    316 leads · CPL €39.60

Platform says scale “UK · Hair · Instant Form”. It has the cheapest leads — but are they paying?

True ROAS measured on banked cash, not platform-reported leads
4.8×–9.2×
Ad budget optimised towards ghost leads that never reply
€0
From cleared deposit to conversion event in Meta CAPI
<30 s
Reconciliation with the in-clinic cash desk and POS terminals
100%
Inside the ROAS engine

One patient timeline. Four engines that close the loop.

Attribution, conversion feedback, cash desk reconciliation and leaderboards — working together on every euro, from the first ad click to the final receipt.

  • 01

    True Banked Revenue Attribution

    The click ID, UTMs, WhatsApp conversation, treatment proposal ID and cash desk invoice are unified into one patient timeline — so every euro that reaches your account is credited to the ad that earned it.

    • fbclid, gclid, ttclid and Click-to-WhatsApp referrals captured at first touch
    • Proposal, deposit and in-clinic invoices linked to the same patient
    • No cookie windows — month-four balances still roll up to the original ad
    Sabine K. · patient #P-104821 timeline
    1. Ad click · Reels “Smile in 5 days”fbclid IwAR3x…9Qk3 Sep
    2. UTM · meta / dach_veneers / ugc_v2utm_campaign=dach_veneers3 Sep
    3. WhatsApp chat with Ayşectwa_clid ARAk…7Fd3 Sep
    4. Proposal sent · €4,840TP-24815 Sep
    5. Cash desk invoice paid in fullINV-2026-091712 Oct

    Banked revenue credited to ad€4,840

  • 02

    Bidirectional Conversions API

    When a deposit clears or a treatment is paid, ClinicSuite pushes the real value back to Meta CAPI, Google Offline Conversions and TikTok Events — training each algorithm to find high-ticket patients, not form fillers.

    • 'Deposit Cleared' and 'Treatment Paid' events with true euro values
    • Server-side delivery in under 30 seconds, deduplicated with your pixel
    • Value-based bidding finally optimises towards revenue
    • Deposit Cleared→ Meta CAPI · €500 Accepted12 s
    • Offline · Deposit→ Google Ads · €500 Accepted21 s
    • CompletePayment→ TikTok Events · €500 Accepted18 s
    • Treatment Paid→ Meta CAPI · €4,340 Accepted9 s

    Hashed IDs + value only · deduplicated with pixel event ID

  • 03

    Multi-Currency Cash Desk & POS Reconciliation

    Patients pay the balance in the clinic — in euros, pounds, dollars or lira, in cash or on your card terminals. Every payment is recorded against the digital proposal and reconciled to the cent.

    • Cash in EUR, GBP, USD and TRY converted at the day's rate
    • Clinic card terminal settlements matched to proposal balances
    • Under- and over-payments flagged before the patient flies home
    TP-2481 · balance €4,840
    • Online deposit€500
    • Cash · GBP€1,755
    • Cash · USD€920
    • Cash · TRY€555
    • Card terminal · POS 2€1,110

    Collected €4,840 · balance €0Reconciled

  • 04

    Coordinator, Market & Channel Leaderboards

    See real banked revenue and conversion velocity per sales coordinator, target country and creative ad set — so you scale the people, markets and ads that actually bring patients through the door.

    • Revenue and click-to-deposit speed per coordinator
    • Market and language performance on collected cash, not leads
    • Creative-level ROAS to brief your next round of ads
    1. 1Ayşe Demir€184.2k

      Click → deposit in 6 days (median)

    2. 2Elif Şahin€141.9k

      Click → deposit in 9 days (median)

    3. 3Mehmet Kaya€97.4k

      Click → deposit in 14 days (median)

Interactive ROAS engine

Six campaigns. Two ROAS numbers. Only one of them pays your rent.

Toggle channels, compare what the ad platform reports with what your cash desk banked, and open any campaign to trace a real patient from the ad click to the POS receipt.

Vanity ROAS · pixel value Banked ROAS · cash collected

Spend
€34.8k
Leads
2,526
Deposited
75 · €37.5k
In-clinic collected
€203.9k
Vanity ROAS
5.0×
Banked ROAS
5.9×
  • Patient journey traceSabine K. · €4,840 banked

    1. 1Meta ad click3 Sep · 21:02fbclid ctwa ARAk…7Fd
    2. 2WhatsApp chat · Ayşe3 Sep · 21:02Sabine K. · München
    3. 3Proposal TP-24813 Sep8 veneers + 2 implants · €4,840
    4. 4Deposit cleared4 Sep€500 online
    5. 5Conversion sent4 SepMeta CAPI · 12 s
    6. 6Arrived in clinic6 OctTransfer & check-in
    7. 7POS receipt12 Oct€1,110 card · POS-2 #90377

    12% of this campaign's 212 leads never replied — excluded from the conversion signal sent to Meta.

Collected includes online deposits plus cash and card payments recorded at the clinic cash desk, converted to EUR at the day's rate. Sample data for illustration.

Side by side

Traditional agency vanity CPL reports vs. ClinicSuite Closed-Loop ROAS Engine

The same ad budget, measured two very different ways.

  • Success metric

    Traditional agency CPL report: Cost per lead and platform-reported ROAS

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Banked ROAS on deposits and in-clinic cash actually collected

  • What the algorithm learns

    Traditional agency CPL report: Find more people who fill in free forms

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Find more patients who pay deposits and complete treatment

  • WhatsApp leads

    Traditional agency CPL report: Invisible once the chat opens — counted as a click

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Click-to-WhatsApp referral stamped on the conversation and proposal

  • In-clinic payments

    Traditional agency CPL report: Cash and card balances never reach the report

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Cash desk and POS payments in EUR, GBP, USD and TRY reconciled

  • Conversion feedback

    Traditional agency CPL report: Monthly spreadsheet, if anyone uploads it

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Server-side events to Meta, Google and TikTok in under 30 seconds

  • Granularity

    Traditional agency CPL report: Campaign totals, blended across markets

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Per creative, market, language and sales coordinator

  • Who owns the data

    Traditional agency CPL report: The agency's dashboard and their login

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Your workspace, with scoped agency access and an audit log

  • Privacy

    Traditional agency CPL report: Pixels firing health intent from treatment pages

    ClinicSuite Closed-Loop ROAS

    ClinicSuite: Hashed identifiers and value only — no clinical data leaves

ROAS & Attribution FAQ

What marketing teams ask before trusting a new ROAS number

Conversions API setup, WhatsApp ad tracking, cash desk payments, agency access and privacy — answered. Anything else, we'll walk you through it with your own ad accounts.

You authorise your Meta Business Manager, Google Ads and TikTok Ads accounts once with OAuth — no pixel code or developer time. ClinicSuite then sends server-side events from our backend: 'Lead Qualified', 'Deposit Cleared' and 'Treatment Paid' to Meta CAPI, the matching offline conversion actions to Google Ads (keyed on GCLID, GBRAID or WBRAID, with Enhanced Conversions for Leads as fallback) and the equivalent Events API calls to TikTok. Events carry the real euro value and are deduplicated against any browser pixel with a shared event ID, so the platforms optimise on banked revenue instead of form fills.

Yes. When a patient taps a Click-to-WhatsApp ad, Meta passes the ad's referral data — ad ID, campaign and a click ID (ctwa_clid) — into the first message. ClinicSuite reads it from the WhatsApp Cloud API webhook and stamps it on the conversation, so the chat, the treatment proposal and every later payment trace back to the exact ad and creative. For Google and TikTok traffic that lands on a WhatsApp button, a short tracked link carries the GCLID or TTCLID and UTMs into the conversation before it opens.

Coordinators open the patient's proposal at the cash desk and record each payment against it: cash in EUR, GBP, USD or TRY, or a card payment from the clinic terminal, with a receipt number. ClinicSuite converts every line to your reporting currency using the day's rate, closes the proposal balance and flags under- or over-payments. Card terminal settlements and bank exports can be imported to reconcile automatically, and the end-of-day cash count is matched against what the system expects in each drawer.

Yes, because ClinicSuite doesn't depend on a browser cookie or a platform's 7-day attribution window. The click ID, UTMs and WhatsApp referral are written to the patient record at first contact and stay there, so a deposit in week three and an in-clinic balance paid in month four both roll up to the original campaign. Meta, Google and TikTok each accept offline events within their own lookback windows, and anything outside them is still counted in your ClinicSuite reports.

Yes. Invite your agency with an Agency role that sees campaign, ad set, market and creative performance — spend, leads, deposits, collected revenue and banked ROAS — in aggregate only. They can build saved views and export reports, but they cannot open patient profiles, read WhatsApp conversations, see clinical photos or view individual payments. You can scope access to specific ad accounts or brands and revoke it in one click; every login and export is recorded in the audit log.

ClinicSuite is built to keep health data out of ad platforms. Conversion events contain only the click ID, an event name such as 'Deposit Cleared', a value, a currency and SHA-256 hashed contact identifiers — never treatment names, diagnoses, photos or clinical notes. Events are sent only for patients whose marketing consent is recorded, consent withdrawals stop future events immediately, and you can choose generic event names per market. Everything is covered by a data processing agreement, with EU data residency, encryption at rest and a full audit trail.

Audit your real ROAS

Spend every euro where patients actually pay.

Book a demo and we'll connect a read-only view of your ad accounts, match last quarter's spend to deposits and cash desk receipts, and show you which campaigns are quietly burning budget.

WhatsApp us
Next feature · 05Clinical Operations & VIP Logistics