From basic web forms to a full lead-to-review system in one week
A young cleaning company had no CRM, a slow website, inconsistent business details across the web and no visibility in search or AI answers. I built their GoHighLevel system from an empty sub-account, got their texting approved, fixed the site's technical SEO, and set up a blog agent that can't publish anything unchecked.
The lead system
- Foundation: 19 custom fields, 18 tags, Sales and Jobs pipelines, 15 products with size variants, invoice and estimate templates with HST.
- Capture: a 7-field quote form styled to match the site with hidden UTM fields, a chat widget, three booking calendars on a booking subdomain, and the site's phone number swapped to a tracking number on all 29 pages.
- Follow-up: speed to lead, missed-call text back, a 7-touch follow-up that stops once the lead moves, quote follow-up that closes as lost on day 8, confirmations and 48 h / 2 h reminders.
- Reviews and retention: a 1–5 rating ask where 4–5 go to Google and 1–3 get a private feedback text and an owner alert, plus rebook, care and win-back campaigns.
- Reporting: a KPI dashboard for booked rate, funnel, revenue won, leads by source and reviews.

Getting texting approved (A2P 10DLC)
The first campaign was rejected because carriers couldn't verify how people opt in. I found two causes: the privacy policy and terms had no SMS wording, and a caching plugin was rewriting the chat widget's script so carriers couldn't see it. I wrote the SMS policy sections, excluded the widget from caching, temporarily left the chat widget as the only phone opt-in, and removed promotional texts from customer-care workflows. The re-submitted campaign was approved, and the forms went back with matching consent wording.
Technical SEO and the blog agent
A full audit covered crawl, speed, Search Console, 13 citation sites, 13 search results pages, 3,636 autocomplete suggestions and AI-answer visibility (0 of 11 answers mentioned the brand). Fixes included schema, security headers, redirects, removing a false review claim and publishing 20 service and city pages with valid structured data.
A scheduled agent writes two articles a week from a 120-row research queue. Before anything publishes, a separate checker script enforces word count, allowed prices taken from the pricing page, banned claims, section order and live links. The publisher can only touch posts and media on one site, under an author-level login that can't delete.
Guardrails
Approval before production
DNS changes, live saves and the A2P re-submission each waited for the owner's explicit OK. Every change log has an undo column.
Checked, not assumed
Every workflow re-opened in a fresh tab after building. GoHighLevel's AI builder had left empty fields and a trigger with no filter, all fixed by hand.
Consent done right
Consent boxes never pre-ticked, no duplicate STOP lines, and re-entry off so a chat reply can't restart the welcome sequence.
Leads never lost
A copy of every form lead is also saved in the website's admin, so a lead survives even if an email fails.
Results so far
The system went live within the first week, so lead-volume and ranking results are still too early to report. What's measured: a text reaches the customer about 4 seconds after they submit the form, A2P is approved, 11 of 12 workflows are live with no errors, 20 SEO pages are published, and the homepage dropped from 12.4 MB to about 1.8 MB.