Skip to content
AZ Media
Case study

Home-Improvement Contractor Collects $950K With an Automated CRM

A home-improvement contractor operating in three states. Now the team sends the estimate, and the system runs the rest of the job: the deposit, the updates, the reminders and the final payment.

Works with

  • GoHighLevel
  • Stripe
  • QuickBooks
  • Slack
Solution
CRM Implementation

Live since September 2025

At a glance · As of Oct 2026, from their CRM

  • $950K

    collected through the system

The Problem

Picture one job.

A rep sends an estimate. A week goes by with no answer, and following up depends on the rep remembering. The customer finally signs, and someone has to build the deposit invoice and send it. The deposit comes in, but materials don't get ordered until the estimator hears about it. The materials arrive, and the customer is still waiting for a call about delivery. The job gets done, and the second half of the money gets chased by phone.

Now multiply that by three regions, a rep in each, one estimator and one person running deliveries. Every handoff was a chance for a job to stall.

And underneath all of it, their emails were landing in spam. Contractors paying through a parent company couldn't approve an estimate at all.

What the Team Does Now

  1. Send the estimate.
  2. Order the materials when the task shows up.
  3. Book the delivery.
  4. Do the job.

That's it.

What Happens on Its Own

When the estimate goes out

  • The job appears in the pipeline, assigned to the rep for that region.
  • No signature after a week? The customer gets a reminder, and a last one before the estimate expires.

When the customer signs

  • They go straight to the deposit invoice and pay by card or bank in the same step.
  • The region's team sees it in Slack, with the job's value.

When the deposit is paid

  • The customer gets a thank-you and hears their order is being placed.
  • The job moves forward on its own.
  • The estimator gets a task to order materials, due in two business days.
  • Finance sees it in Slack.
  • If the deposit doesn't come in, the customer gets a reminder on day 3 and again on day 7.

As the job moves

  • Materials ordered, materials received, delivery booked: the customer gets an email at each step, and the team's order channel follows along.
  • The delivery email carries the date and a link to pay the final balance.

When the job is done

  • If the final balance is still open, reminders go out until it's paid.

When the final payment lands

  • The job is marked won, the customer is thanked, finance sees it, and the payment goes into QuickBooks.

If a job is declined

  • It's archived with its estimate attached, and every reminder for it stops.

What Made It Work

We fixed the basics first. The emails now land in the inbox, and the estimate shows who's paying and where the job is, so every contractor can approve it. Then everything moved into one place, so a job can't fall between apps. And they came back for more: GoHighLevel and QuickBooks are now connected, so every job is its own project in the books.