Client work · 2026
Rolling Suds
A central lead system for a Southwest Florida pressure-washing company: every lead gets an instant reply, is routed by business hours and is tracked from first contact to review request, alongside their existing field-service tool.
- Type
- Client work
- Year
- 2026
- Stack
- GoHighLevelWorkizZapierWebhooks
Status: built and workflow-verified. As of the September handoff no SMS had reached a real handset yet, because the account had no sending number.
- stage sales pipeline
- 0stage sales pipeline
- dashboard metrics live, plus revenue by campaign
- 0/10dashboard metrics live, plus revenue by campaign
- branches with business-hours routing
- 0branches with business-hours routing
Problem & context
Leads came in from Google Ads, Google Local Services, the website, Meta, phone calls, HOA communities and referrals. They were answered by hand and often late, and nobody could say which campaign paid off. The job was to centralize all of it in GoHighLevel without replacing Workiz, the tool the crews already use.
My contribution
- Configured (most of it): the 8-stage pipeline; source, community and campaign tags; business-hours routing for two branches; the post-job workflow with owner-approved templates; CSR permissions; and the reporting dashboard.
- Built: a community landing page, written so it can be copied for the next HOA community.
- Built: a quote form with hidden fields that write the community, campaign, page URL and campaign phone onto the contact.
- Built: the Workiz “estimate accepted” webhook, which stores the job ID on the GoHighLevel contact.
- Built: the past-customer import with de-duplication.
- Wrote the handoff documents.
How it works
Key technical work
One pipeline for every source
Ads, Local Services, the website, HOA communities and referrals all land in one 8-stage pipeline, tagged with source, community and campaign.
Routing by business hours
Leads are answered straight away and routed by each branch's business hours, with HOA leads handled as priority.
Workiz stays the field tool
When an estimate is accepted in Workiz, a webhook stores the job ID on the contact, so sales and field work stay linked without switching tools.
Reporting that ties back to campaigns
A dashboard built from tag-filtered tiles shows pipeline metrics and revenue by campaign.
Hard problems & how I solved them
- 01
A trigger that silently skipped leads
A test HOA lead never entered its workflow. The “Contact Created” trigger checks its tag filter only at the moment of creation, and the tag was added a moment later, so any source tag applied after a contact exists enrolled in nothing. Zapier now creates each contact with its tags in a single write.
- 02
An A/B split that bypassed the HOA message
The 50/50 split sent half of all business-hours HOA leads past the community-specific message. I added the same HOA condition to the B branch so every HOA lead gets it.
- 03
Dashboard numbers that looked right but weren't
An audit of the dashboard found four metrics that looked plausible but were silently wrong. I checked all ten against live pipeline and contact data before handing over.
Architecture
- GoHighLevel: pipeline, tags, workflows, permissions and the reporting dashboard.
- Workiz: field-service jobs, connected by an “estimate accepted” webhook.
- Zapier: creates contacts together with their tags in one write.
- Lead sources: Google Ads and Local Services, website form, HOA landing pages, referrals.
- Google Business Profile reviews (copied by hand) and CompanyCam (designed).
Testing & validation
- Ran the HOA business-hours test live inside Florida working hours and read the execution log for the branch taken.
- Used the workflow test runner to test a path whose form had no tag field.
- Checked that a known repeat customer merged into one contact with tags from both jobs, and that the CSV import fires no live outbound automation.
- Checked all ten dashboard metrics one by one against live pipeline and contact data.
- Submitted the landing-page form and confirmed the community field, tags and opportunity appeared within seconds.
Outcome & limitations
Finished: business-hours routing (HOA priority test passed live), the Workiz webhook, pipeline and tags, the post-job workflow, the dashboard (7 of 10 metrics plus revenue by campaign), CSR permissions, handoff documents, and the landing page and form, verified end to end.
Still open or blocked: Meta and phone lead sources; the Clarity phone integration (which also blocks the average-response-time metric); SMS to real phones, pending a business number and A2P registration; Google Local Services API access, pending a Google Ads Manager account; an agency-level dashboard, which needs a second sub-account; a real ad-spend figure for the ROI tile; and the before/after photo library.