Skip to content
All work

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.

Illustration
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

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

  1. 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.

  2. 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.

  3. 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

Testing & validation

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.

Next projectSmart Scrap