✎ Awaiting Dakota's review and the GHL webhook URL.
Pages are built and QA'd but nothing goes live until the GHL_WEBHOOK_URL constant in each page is set to the real Pryor GHL inbound webhook. Until then the form runs in demo mode: full UX works, lead logged to browser console only.
⚠ Open decisions blocking launch:
- GHL inbound webhook URL from Dakota, paste into
GHL_WEBHOOK_URL constant at bottom of each page
- Subdomain decision, publish at
go.azsmiles.com or offers.azsmiles.com. Requires DNS access to the azsmiles.com zone.
- GTM container ID + GA4 measurement ID from Dakota
- Google Ads account access for conversion tag on thank-you.html
- Practice review + approval of copy, offer terms, disclaimers
Landing pages and keyword mapping
| # | Page | Campaign / ad group targets | Offer code | Priority |
| 1 | membership.html | dental membership plan, no insurance dentist, dental savings plan + Gilbert AZ / Chandler / Mesa / Queen Creek / East Valley / 85234 | AID-CLERRI-MEMBERSHIP | Launch first |
| 2 | veneers.html | veneers, no-prep veneers, smile makeover, cosmetic dentist + Gilbert AZ / Chandler / Mesa / East Valley | | Launch second |
| 3 | sleep-apnea.html | sleep apnea appliance, CPAP alternative, airway dentistry, TMJ + Gilbert AZ / East Valley | | Launch third |
Offers used
| Code | Contents | Price anchor |
AID-CLERRI-MEMBERSHIP | Membership plan (VIP / in-house savings) (membership) | $46/mo |
| Service-line consultation (veneers) | $/mo |
Conversion paths on every page
| Path | Destination | Attribution |
| Multi-step eligibility form (primary) | 6-step wizard on every page (anchor #lead-form), submits to GoHighLevel via inbound webhook, redirects to thank-you.html | Full UTMs and click IDs (utm_*, gclid, gbraid, wbraid, fbclid, msclkid) captured first-touch and persisted in localStorage for 90 days |
| Call (mobile sticky bar) | tel:+14805071993, swap for CallRail dynamic number at launch | Pending CallRail |
Tracking & measurement, to implement
| Item | Detail | Status |
| Google Tag Manager | Install container in <head> of all pages. Manage GA4, Ads, CallRail through GTM. | Needed |
| Google Analytics 4 | Property + measurement ID via GTM. Events: page_view, form_start, form_step (per wizard step), generate_lead on thank-you.html, click_to_call. | Needed |
| Google Ads conversions | Primary conversion = generate_lead on thank-you.html. Enable Enhanced Conversions (form supplies name, email, phone). | Needed |
| CallRail | Dynamic number swap + call conversion import to Google Ads. Deploy via GTM. | Needed |
| Consent + privacy | Confirm whether Google Consent Mode v2 is required. TCPA disclosure already on every form. | Confirm |
Hosting & DNS
| Item | Detail | Status |
| Hosting | Cloudflare Pages project . Must be served over HTTPS (GHL webhook + Google Fonts require a real origin). | Live at |
| Custom domain | Recommend go.azsmiles.com or offers.azsmiles.com. Keeps paid traffic isolated from main site analytics and SEO. | Decide |
| DNS CNAME + TLS | Add CNAME for chosen subdomain pointing at Pages deployment, validate TLS issuance. | Needed |
| Redirects and noindex | All pages ship noindex, nofollow. | Done |
Lead capture form and CRM wiring
Every page carries the same multi-step form: 6 qualification questions → name / email / mobile + TCPA consent → POST to GHL webhook → redirect to thank-you with UTMs on the URL.
| Item | Detail |
| CRM destination | GoHighLevel inbound webhook. Paste URL into GHL_WEBHOOK_URL at bottom of each page. Until set, form runs in demo mode. |
| Payload fields | first_name, last_name, email, phone, insurance_situation, last_dental_visit, coverage_for, budget_priority, urgency, notes, service, offer_code, consent, consent_text, consent_timestamp, submitted_at, source |
| Attribution fields | utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, gbraid, wbraid, fbclid, msclkid, landing_url, page_url, referrer, captured first-touch and persisted in localStorage for 90 days |
| Consent | Disclosure above submit button; consent + timestamp stored on every lead for TCPA records |
| Thank-you page | thank-you.html sets expectations. Fire Google Ads conversion + GA4 generate_lead event here. |
Brand
Palette pixel-sampled from azsmiles.com's live homepage: primary #D86018, ink #686059, gold #F09048, cream #FFFFFF. Font: Lato. Logo from locations/artistry-in-dentistry/.
Note: The locations/artistry-in-dentistry/BRAND.md files in the DAM specify a different palette (see BRAND (7).md). Those files disagree with each other and with the live site, we sourced from the live site instead. Worth having that DAM file corrected separately.
Launch checklist
| Item | Status |
| Landing pages built (3 pages) | Done |
| Multi-step lead form + UTM/click-ID capture on all pages | Done |
| Practice brand palette derived from live homepage | Done |
| Custom fields + tags provisioned in GHL sub-account | Done |
| Practice logo uploaded to GHL Media Library | Done |
| GoHighLevel inbound webhook URL | Blocked |
| Google Tag Manager container | Needed |
| GA4 property + measurement ID | Needed |
| Google Ads conversion tracking + Enhanced Conversions | Needed |
| CallRail dynamic number swap | Needed |
| Custom subdomain + DNS CNAME + TLS | Needed |
| Practice review + approval | Needed |