[ Case study ]
The provider couldn't see which campaigns produced consultations: the booking flow sits behind a patient portal, client tags had once collected form input that legal had to remediate, and marketing measurement had been frozen since as 'too risky to touch.'
CLIENT a telehealth dermatology provider — FOCUS Funnel events without the portal
Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.
The provider delivers dermatology consultations by video, with new patients starting from paid search and social, passing an intake, and booking inside a patient portal built on validated clinical software. Marketing owns the top of that journey but has no code access to the portal itself, and a past incident — form input collected by a script — had left legal scar tissue deep enough that all measurement was frozen. The tension is structural: marketing needs funnel granularity to buy consultations efficiently, and legal needs prohibition on anything identifiable, and both positions are correct.
The provider couldn't see which campaigns produced consultations: the booking flow sits behind a patient portal, client tags had once collected form input that legal had to remediate, and marketing measurement had been frozen since as 'too risky to touch.'
We proposed keeping the portal untouched and letting its existing integration layer emit coarse, anonymous funnel events — consultation started, intake step passed, consultation completed — under the portal team's normal change control. A server-side layer would forward only allowlisted, de-identified event shapes; anything resembling an identifier is dropped and logged. The architecture satisfies both requirements at once: marketing gets its funnel, legal gets structural refusal rather than promises. The third piece was procedural — a one-page measurement policy stating what is collected, what is refused, and who approves changes, converting an unmanageable veto into a governed process.
Just as important is what we ruled out, and why:
Consultation starts and completions are emitted by the portal's existing integration layer under change control as coarse, anonymous events — marketing gets the funnel, the portal stays untouched otherwise.
A server-side layer forwards only allowlisted, de-identified event shapes; anything resembling an identifier is dropped and logged.
A one-page measurement policy — what is collected, what is refused, who approves changes — turned 'too risky to touch' into a governed process.
Delivered by the growth pod — analytics specialist over 6 weeks, with working increments reviewed with the client every week.
Obstacle
Legal joined in week three instead of week one and imposed two structural requirements — no portal code changes, refusal before vendor egress — that forced a redesign of nearly everything.
Handled: We discarded three weeks of design rather than negotiate around it, rebuilt on the integration-layer approach, and from then on legal reviewed architecture sketches before anything was built.
Obstacle
The portal team's change-control board met monthly, and the first event-emission ticket missed the cutoff by two days, threatening the engagement's timeline.
Handled: We drafted the resubmission with the board's own template pre-filled — risk assessment, rollback plan, test evidence — and it passed without amendment at the next sitting.
The headline: campaign-to-consultation funnel measurable with the de-identification policy in force — Frozen measurement → governed funnel, read from Policy document + funnel reports. A second check: policy violations logged since the tagging layer went live at 0.
Marketing started proposing funnel improvements again — the frozen vocabulary thawed, and the first experiment in over a year shipped within a month of handover. Legal's posture changed from blanket prohibition to auditing a policy, which is a role they can sustain. The portal team, initially wary of anything touching their perimeter, ended the engagement owning the event emissions as ordinary work in their own backlog. The organization gained something it had never had: a funnel number both marketing and legal will defend in the same meeting.
The result was read from Policy document + funnel reports against the pre-engagement baseline over the stated window, with a guardrail check on policy violations logged since the tagging layer went live. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.
What we would do differently
We would involve legal in week one, not week three — their two structural requirements shaped the whole design, and three weeks of work preceded them.
[ Related service ]
[ Related builds ]
11 disconnected properties 1 with attributionSingle property reporting campaign-to-test-drive journeys per rooftop
Monday spreadsheet ritual one standing reportLeadership reviewing from the live report with definitions on record
[ Next step ]
Next case study