Work Omnia Physical Therapy

Turning ad clicks into CRM leads for a physical therapy clinic

For Omnia, the website's real job is the path from a paid click to a patient the clinic can call back. The Next.js site sends every enquiry straight into GoHighLevel at the right pipeline stage, and reports conversions to Google Ads accurately enough to judge the ad spend by real leads.

Role
Sole developer: build, CRM integration and ongoing Google Ads
Stack
Next.js 16 · React 19 · TypeScript · Tailwind CSS · Sanity · GoHighLevel · GA4 · Google Ads · Vercel
01

Every enquiry lands in the right CRM pipeline stage

Each submission is cleaned up and upserted into GoHighLevel, and an opportunity opens in the intake pipeline. Pipelines and stages are looked up by name, so the clinic can rename or reorder its stages freely and the site will say so clearly if anything needs updating.

Because contacts are upserted, a returning patient updates their existing record, which keeps the CRM clean and free of duplicates.

02

Every form field reaches the CRM intact

GoHighLevel accepts custom fields by key, so every key is copied straight from the CRM's own settings and documented where it is used. Every answer a patient types arrives in the right field.

The integration also handles the CRM's API versions gracefully: it uses the documented version and falls back once to the one the live accounts expect, so leads keep flowing either way.

03

Accurate Google Ads conversion tracking

The conversion event on the paid-traffic landing page fires exactly once per lead, even if a visitor double-clicks submit or the page re-renders.

That accuracy pays off directly. Google Ads optimizes bids against conversion data, so a clean count means the budget goes toward the clicks that really turn into patients.