A typical trade-business tangle
AWE came to us early in their journey. They’d been running an old Squarespace site for a while and, like a lot of trade businesses, doing plenty with it themselves. The problem wasn’t effort, it was sprawl: a domain registered in Squarespace, another in Google Workspace, a half-finished migration between the two, and email running on different domains again. Before we built anything new, we had to untangle and consolidate it.
AWE began in electrical, but the business has moved almost entirely to solar in Canberra, so the new site had to do two jobs: sell solar, and qualify the people asking for it.
A bill upload that does the qualifying
We modelled the site on one we’d seen with an electricity-bill upload, the sort of thing usually reserved for manufacturers. For a solar company it’s gold: a power bill tells you most of what you need to size a system and price the job.
So we built the site on Astro with a small Fastify back end, and made the bill the hook. A visitor can optionally upload their latest bill, Mistral AI reads it, and the form fills in their usage and details for them. No typing, no friction.
For a solar company, the power bill is the whole conversation. Read it once and you know the system, the saving and the price.
The customer gets an email confirming what we captured; AWE get one telling them a new lead has landed.
One pipeline, end to end
The moment a lead comes in it lands in GoHighLevel, in the main pipeline at the “new lead” stage. From there it runs a five-stage pipeline, the same shape we set up for most clients: new lead, contacted, and on through to a job. Once a lead is qualified, creating the job in GoHighLevel creates the matching job in ServiceM8 and links the two by job number, with a bit of custom code doing the handshake in the background.
From there AWE work the job in ServiceM8 as normal, preparing the quote and talking to the customer. The automation keeps the customer in the loop along the way: every new lead with an email gets a confirmation, and when the work becomes a job they get a “we’ve started, a quote’s on the way” message. (SMS isn’t switched on for AWE, but it’s there when they want it.)
The only thing the office touches twice is the quote. Everything around it moves itself.
The loop closes at the end. When a job is marked complete or unsuccessful in ServiceM8, an n8n webhook pushes the final costs and the outcome back onto the GoHighLevel opportunity, so it lands in Complete or Unsuccessful to match. That’s the bit that makes reporting honest: AWE can see exactly what’s won, what’s lost, and why, across the whole business.
The result
One low-friction front door, every lead qualified with real bill data, a clean handoff into ServiceM8, and won-or-lost reporting that actually reflects the work. AWE spend their time quoting solar, not chasing details or re-typing them.