Birdwink Header
Birdwink Home
Marketing analytics for clinics

Marketing performance, measured in patients.

Connect your campaigns, leads and appointments in one place to understand what is actually driving patient acquisition.

5 min Median setup, start to first number
Hourly Spend and lead sync from every source
No dev One snippet, pasted once by anyone
Clinic Torch · Overview
Last 30 days · updated 14:00
Workspace
Overview
Leads
Campaigns
Inbox
Reports
Integrations
Al Waha Dental
4 locations
Cost / lead
AED 78
−12% vs prev
Cost / booking
AED 412
−3% vs prev
Leads
213
61 booked
Spend
AED 16.6k
3 channels
Leads, last 14 days
Funnel
New
213
Contacted
175
Qualified
130
Booked
86
Attended
61
Top campaigns
CampaignChannelLeadsCPLBooked
Implants — Search BrandGoogle64AED 6124
Invisalign — ReelsMeta58AED 7417
Braces — Performance MaxGoogle51AED 8812
Whitening — StoriesMeta40AED 1038
What it replaces

The monthly reconciliation

Someone exports two ad platforms, opens the practice management system, and tries to match names by hand. It takes a day and it is wrong by the time it is finished.

Leads with no origin

A WhatsApp message arrives with no campaign, no keyword and no landing page. It gets treated the same as every other message, and the ad that produced it keeps running unmeasured.

Budget decided on feel

Without a cost per attended appointment, the campaign that books implants and the campaign that books nothing look identical on the invoice. Spend follows opinion instead of outcome.

How it works

Connect it once. It keeps score from then on.

01

Authorise your accounts

Google Ads, Meta Ads and WhatsApp Business sign in through their own consent screens. Read access to spend and lead data, nothing else.

02

Paste one snippet

A single line on your site stamps every form submission and click-to-chat with the campaign, keyword and page that produced it.

03

Reception works the queue

Enquiries arrive deduplicated and assigned. Your team moves them New to Attended in the same board they already answer messages from.

04

Read the real number

Every status change flows back to the campaign that started it, so cost per attended appointment is current to the hour, per campaign and per location.

Capabilities

Built for the front desk and the person paying for ads.

Source of truth per enquiry

Channel, campaign, ad set, keyword, landing page and device, stored on the lead record and never overwritten.

Deduplication across channels

The same person filling a form and then messaging on WhatsApp counts once, with both touches on one timeline.

Multi-location roll-up

Each branch has its own numbers and its own team; owners see the group total without switching accounts.

Response-time tracking

Time to first reply on every lead, by agent and by hour, so slow windows are visible before they cost bookings.

Roles that match the practice

Owner, marketing, manager and reception. Reception works leads without seeing spend; marketing never edits clinical notes.

Bring the spreadsheet

Import your existing lead log as CSV with column mapping, so historic months sit alongside tracked ones.

Offline conversions back to ads

Attended appointments are sent back to Google and Meta, so their bidding optimizes toward patients rather than form fills.

Scheduled reporting

The Monday report builds itself and lands in the inbox as PDF and CSV, with the same figures the dashboard shows.

Treatment-level value

Tag leads by treatment and enter its value once. Return on ad spend is then calculated per campaign, not guessed.

Inside the platform

Six screens, one chain of custody.

An enquiry enters through the inbox or a form, becomes a card on the pipeline, gathers a timeline on its own record, and lands in the campaign table as a number. Nothing is typed twice.

01 · Pipeline

The queue reception actually works from

Five columns, drag to advance. Every card carries the campaign that produced it and the time since the last reply, so the oldest untouched enquiry is always the one at the top.

  • Assignment by rota or round robin
  • Ageing highlighted past your reply target
  • Lost reasons captured in one click
Leads 213 open · Al Waha Dental — Jumeirah Board Table
New38
Fatima A.
Implants — Search
4 min · unassigned
Omar K.
Invisalign — Reels
22 min · Layla
R. Menon
WhatsApp — direct
1 h · Layla
Contacted62
S. Haddad
Braces — P-Max
Callback 16:30
J. Pereira
Whitening — Stories
Sent price list
Qualified45
A. Nasser
Implants — Search
AED 9,500 est.
L. Chen
Invisalign — Reels
AED 14,000 est.
Booked86
H. Al Suwaidi
Implants — Search
Thu 09:15 · Dr Reem
M. Iqbal
Braces — P-Max
Sat 11:00 · Dr Adel
Attended61
K. Prasad
Implants — Search
AED 11,200 booked
N. Farouk
Whitening — Stories
AED 1,800 booked
Hessa Al Suwaidi Booked Lead #40118 · created 12 Aug, 09:41
Source
Google Ads
Campaign
Implants — Search Brand
Keyword
dental implants jumeirah
Timeline
Clicked ad · landing page /implants
12 Aug, 09:39 · mobile · Safari
Submitted enquiry form
12 Aug, 09:41 · "Cost for two implants?"
WhatsApp reply sent · Layla
12 Aug, 09:47 · first response 6 min
Consultation booked · Dr Reem
12 Aug, 10:12 · Thu 15 Aug, 09:15
Conversion sent to Google Ads
12 Aug, 10:13 · offline conversion
Add a note for the clinical team…
Owner
Layla M. · Reception
Treatment
Implants · 2 units
Value
AED 11,200
Attributed cost
AED 61
Consent
Marketing contact accepted at form submission.
02 · Lead record

One page that answers "where did this patient come from?"

Click, form, reply, booking and the conversion pushed back to the ad platform, in order, with the attributed cost beside the treatment value. Notes stay with the record for whoever picks up the call next.

03 · Campaign performance

Spend next to attended appointments, not clicks

The table every budget conversation ends at. Sort by cost per attended appointment, compare against the previous period, and drill into any row to the leads behind it.

Campaigns All channels Last 30 days All locations Sorted by cost / attended
CampaignChannelSpendLeadsCPLBookedAttendedCost / att.ROAS
Implants — Search BrandGoogle3,90464612419AED 20514.2×
Invisalign — ReelsMeta4,29258741713AED 3309.6×
Braces — Performance MaxGoogle4,4885188129AED 4996.1×
Whitening — StoriesMeta4,1204010386AED 6872.6×
WhatsApp — direct / organicDirect311414
Total16,804244787561AED 4128.4×
04 · WhatsApp inbox

The shared number, with the campaign attached

Messages from your WhatsApp Business number land in one queue instead of one receptionist's phone. Each conversation shows which ad the person came from, and replying advances the lead without leaving the thread.

  • Saved replies for price and directions
  • Full history kept when staff change
Inbox +971 4 XXX XXXX · WhatsApp Business 7 unanswered
Fatima A.4 min
Cost for two implants?
Implants — Search
Omar K.22 min
Do you take insurance?
Invisalign — Reels
R. Menon1 h
Saturday morning possible?
Direct
S. Haddad3 h
Thanks, see you Thursday
Braces — P-Max
Fatima A. New lead Open lead record
Hello, I saw your ad. What is the cost for two implants, and do you have a consultation this week?
09:41
Attribution captured
Google Ads · Implants — Search Brand · "dental implants jumeirah" · /implants
Good morning Fatima. Consultation is AED 250, credited against treatment. Dr Reem has Thursday 09:15 free — shall I hold it?
09:47 · Layla
Write a reply…
Reports Monthly marketing review · August 2026 CSV PDF Schedule
Include
Spend & leads by channel
Cost per attended
Funnel by campaign
Response times
Treatment mix
Delivery
Every Monday, 08:00
3 recipients
Spend by channel
Google
Meta
Other
Cost / attended, 6 months
LocationLeadsAttendedCost / att.
Jumeirah9627AED 361
Al Barsha7118AED 428
Sharjah4616AED 470
05 · Reports

The Monday report, already written

Choose the blocks once and it arrives on schedule as PDF and CSV, split by location and channel. Agencies get the same file the owner does, so nobody is reconciling two versions of the month.

Integrations

It conneBirdwink to what you already run.

Authorise in your own accounts, revoke whenever you like. Read access to spend and lead data, write access only for the offline conversions you switch on.

Integrations Last sync 14:00 · hourly
Google AdsConnected

Spend, campaign and keyword data in. Attended appointments back out as offline conversions.

2 accounts · 14 campaigns
Meta AdsConnected

Ad set and creative level spend, plus lead-form submissions pulled in as they arrive.

1 account · 9 campaigns
WhatsApp BusinessConnected

Inbound conversations become leads with click-to-chat attribution intact.

1 number · 4 agents
Website snippetActive

One line on every page. Tags forms and chat buttons with the campaign that sent the visitor.

Verified on 3 domains
Call trackingAvailable

Dynamic numbers on landing pages so phone enquiries carry the same attribution.

Add-on
CSV & APIAvailable

Import a historic lead log, or push statuses from your practice management system.

REST · webhook
Pricing

Priced per clinic, not per seat.

Everyone at the practice gets a login on every plan, because attribution breaks the moment someone works outside the system. 14-day trial, no card.

Single

One location.

AED 1,490 / month
  • Unlimited users and leads
  • Google, Meta, WhatsApp, website
  • Pipeline, inbox, dashboard
  • Scheduled PDF and CSV reports
Get started
Most clinics

Group

Multi-location clinics.

From AED 3,990 / month
  • Everything in Single
  • Per-location and group reporting
  • Offline conversions to Google and Meta
  • Treatment values and ROAS
  • Agency access with scoped roles
Get started

Network

Six+ locations and hospital groups.

Quoted
  • Everything in Group
  • API and practice-management sync
  • Single sign-on and audit export
  • Named onboarding and migration
Talk to sales
Security & compliance

Patient data stays a clinical matter.

Clinic Torch is a marketing system, so it holds the minimum it needs: who enquired, what they asked about, and which campaign brought them. Diagnoses, records and images stay in your practice management system.

Encryption

TLS in transit, AES-256 at rest, keys rotated and managed by the platform.

Regional hosting

Choose the region your workspace is stored and processed in at signup.

Role-scoped access

Reception sees leads, not spend. Agencies see campaigns, not patient contact details.

Audit trail

Every view, edit and export is logged with user and timestamp, exportable on demand.

Consent recorded

Marketing consent is captured with the lead and travels with any export.

Deletion on request

Erase a lead or a whole workspace, with a signed confirmation of removal.

Questions

Asked before every trial.

No. The ad accounts connect through their own sign-in screens, and the website snippet is one line that goes in the same place as your existing analytics tag. Most clinics finish setup in under twenty minutes; if your site is on a platform we know, we do it on the call.
It sits in front of it. Clinic Torch handles the enquiry up to the point it becomes a booking; the appointment, the treatment plan and the clinical record stay where they are. Statuses can sync both ways over the API on the Network plan.
Reception can log a call as a lead in two fields, and it enters the same pipeline. With the call-tracking add-on, landing pages show a dynamic number so the call is attributed automatically to the campaign that produced it.
Yes, on a scoped role that sees campaign performance and spend but not patient contact details. Agencies keep working in Google and Meta; the difference is that both sides are now reading the same cost per attended appointment.
Import it as CSV with column mapping. Historic leads keep their dates and sources where you recorded them, so year-on-year comparisons work from the first month rather than a year in.
Someone moves the card, or your practice management system tells us over the API. Until that happens the lead sits at Booked, which is why the dashboard reports both numbers rather than treating a booking as a patient.

Find out what a patient actually costs you.

Track every patient from campaign to appointment and understand the true performance of your marketing. 14-days trial, no card, cancel in a click.

Included in the trial
Full platform, every integration, and a setup call with someone who has connected a clinic before. Import your spreadsheet and see last quarter in the dashboard on day one.