WorkDental6 min read

Every Marketing Source and Patient Outcome in One Dashboard You Can Just Ask

Meta, Google, Search Console, GA4, and Dentally unified into one live custom dashboard, with an LLM that answers plain-English questions tied to booked patients and treatment.

The group markets across paid (Meta, Google), organic and local search (tracked in Search Console), and watches its site behavior (GA4), with bookings and treatment recorded in Dentally. All of it lived in five separate logins, none of it connected to actual patients, and every report was a manual export-and-stitch job. Five dashboards is not a dashboard.

Client profile
A multi-location dental group running marketing across paid, organic, and web
Industry
Dental
Region
UK

01 The Challenge

Marketing scattered across five logins, none of it tied to patients

5 loginsThe "marketing dashboard"Exported and hand-stitched, never tied to patients

To see how marketing was doing, someone logged into Meta, then Google Ads, then Search Console, then GA4, exported from each, and stitched a spreadsheet, which still could not connect a campaign or a search query to a patient who actually booked and got treated. Paid sat apart from organic; web behavior sat apart from outcomes. The owner could not answer a simple question, "how many new patients did Google bring last month, and what treatment did they book?", without making it a project. As spend spread across more channels, the reporting got slower and the picture got blurrier.

Five dashboards is not a dashboard.

02 The Approach

One marketing model, served as a dashboard and as something you can ask

The governing rule: every marketing source plus the patient outcomes from Dentally land in one model, served two ways, a live custom dashboard and a plain-English LLM interface, so the team sees paid, organic, web, and patient outcomes together and gets answers without exporting anything.

Two decisions shaped it. A custom dashboard rather than an off-the-shelf BI tool, because the group wanted a branded, purpose-built marketing view built around patient outcomes, not a generic chart gallery. And a governed LLM interface: it answers by querying the defined set of metrics in the model, not by writing raw SQL against raw tables, so a question asked in plain English always returns a number that matches the dashboard.

The privacy boundary is explicit: only marketing-relevant fields come from Dentally (bookings, treatment value, source), never clinical detail, and the LLM answers over the marketing model, not patient records.

What we deliberately did not do: no revenue feedback to the ad platforms (that is the attribution engine's job, a separate build), no clinical data in the dashboard or within the LLM's reach, and no raw text-to-SQL free-for-all.

03 The Build

Connect five sources, model them once, serve a dashboard and an LLM

Managed connectors (Airbyte) pull Meta Ads, Google Ads, Search Console, and GA4 (GA4 through its native BigQuery export); a Python connector pulls bookings and treatment outcomes from Dentally. Everything lands in BigQuery, where dbt builds one marketing model that joins spend, organic search, and on-site behavior to booked patients and treatment value, with a defined set of metrics. A custom TypeScript dashboard on Cloud Run serves the live view across all five sources. An LLM interface, Claude Opus 4.8 for analytical questions and Claude Haiku 4.5 for simple lookups, turns plain-English questions into governed queries over those defined metrics and returns the answer with a chart, so "how many new patients did Google bring last month, and what treatment did they book?" is one question, not a spreadsheet.

  • Airbyte
  • Python
  • BigQuery
  • dbt
  • Cloud Run
  • Opus 4.8
  • Haiku 4.5
  • GCP

04 The Results

One live picture, and answers in plain English

8 hrs/weekReclaimed from manual reportingFive exports and a spreadsheet, gone

The group now has one live dashboard across all five sources, with roughly eight hours a week of manual reporting eliminated. For the first time marketing is tied to booked patients and treatment value, so the owner sees which channels, paid and organic alike, actually produce patients, in one place. And anyone can ask the data a question in plain English and trust the answer, because it is computed from the same defined metrics the dashboard uses.

05 What's Next

The marketing model the rest plugs into

The unified marketing model is the foundation. It pairs naturally with the patient-attribution engine when the group wants to move from seeing performance to optimizing spend and feeding value back to the platforms. The same model and the same natural-language interface extend to new locations and to operational KPIs, so one command center grows with the group rather than being rebuilt per practice.

DTC E-commerce5 min read

True Net Profit in One Number, Pulled From Every Sales and Cost Source

A reconciled, automated P&L for a small brand: sales, every variable cost, and overhead from the books, combined into the real net profit the founder can finally trust, refreshed daily.

+5 ptsNet margin, after the real number exposed the leaks
  • Profit
  • dbt
  • Metabase
  • QuickBooks
Read

DTC E-commerce6 min read

Profitable Growth Decisions With True Contribution Margin by Channel, Refreshed Daily

A warehouse-native cost model that loads every order with its real variable costs, so CAC, payback, and contribution margin are finally true by channel, campaign, and cohort.

+6 ptsBlended contribution margin after reallocating spend
  • Contribution Margin
  • BigQuery
  • dbt
  • Marketing Data
Read

Engineering edge,
without hiring a team.

Numbers you can trust, operations that run themselves, all built into your stack and owned by you. Tell us where you want the edge, and we'll build it.

Have a project in mind?

  • Quick response

    You'll hear from an engineer the same working day, not a sales sequence.

  • Clear next steps

    A short call, then a plan, and we start with Proof Week or a full build.

  • Fixed fee first

    A fixed fee agreed before anything starts, for Proof Week or the full build.