← All articles

How to Automate Estimate Approvals So Roofing Jobs Close Without Phone Tag

Automate estimate approval for roofing companies with e-signature, tiered follow-up, deposit collection, and instant scheduling handoff — no phone tag.

A roofing contractor reviewing an approved digital estimate on a phone in a driveway

You inspected the roof, climbed down, priced the job, and sent a clean estimate. Then nothing. Three days later you call — voicemail. You text — no reply. Meanwhile the homeowner collected two more bids and signed with whoever followed up first.

That silent stretch between “estimate sent” and “estimate approved” is where roofing companies quietly lose 20 to 40% of revenue they already earned by showing up. The fix isn’t a prettier PDF. It’s closing the whole loop automatically: sign, nudge, collect deposit, and drop the job onto the calendar without you touching your phone.

First, measure where your money is actually leaking

Before automating anything, get one number: your estimate-to-approval rate over the last 90 days.

Pull every estimate you sent. Count how many turned into signed, deposited jobs. Divide.

  • Sent 60 estimates, closed 24 → 40% approval rate.
  • At a $12,000 average job, 40% of 60 estimates books $288,000.
  • Move that to 52% — a realistic lift once follow-up stops being manual — and you book $374,400 from the same 60 estimates. That’s $86,400 with zero extra lead spend.

Now find your second number: median time from estimate sent to approval. If it’s over 48 hours, you’re losing to faster competitors, not to price.

Most owners can’t produce either number, which is the real problem. You can’t fix a leak you can’t see. Once you have both, everything below has a scoreboard.

Build a digital estimate the customer can approve from the driveway

The homeowner shouldn’t have to print, sign, scan, or “get back to you.” They should approve from their phone while they’re still standing in the yard talking to you.

Here’s the build:

  1. Use an estimate tool with native e-signature and mobile acceptance. Jobber, Housecall Pro, ServiceTitan, and JobNimbus all do this. On a general CRM, DocuSign or PandaDoc handle the signature layer and fire a webhook when signed.
  2. One estimate, three clear options. Good / Better / Best (3-tab vs. architectural vs. premium shingle) closes better than a single take-it-or-leave-it number. People approve faster when they’re choosing which, not whether.
  3. One-tap Approve button at the top, not buried under four pages of line items. Scope details go below the fold.
  4. Deposit terms on the estimate itself: “Approve and pay a $500 deposit to reserve your install date.” No surprise at checkout.
  5. Send it while you’re on site. The trigger is you tapping “send” from your phone before you drive off. A quote sent 20 minutes after the inspection converts far better than one sent that evening from your desk.

The task you just killed: no back-office person retyping the quote into Word and emailing a PDF. The estimate is the signable, payable document.

The follow-up cadence that runs without you

This is where the revenue actually gets recovered. A single “did you get my quote?” text is not follow-up. You need a tiered sequence that runs on its own until the customer approves or clearly says no.

Wire it to a single trigger — estimate status = sent — in your CRM or an automation layer like n8n, Make, or Zapier. The clock starts the moment the estimate goes out.

Day 0, immediately on send — Text: “Hi [Name], your roof estimate from [Company] is ready — review and approve it here: [link]. Reply with any questions.” SMS gets read in minutes; email gets buried.

Day 1, if status still “sent” — Email with the estimate re-attached plus one trust element: a photo from the inspection, or “We can hold your install slot for [date] once approved.” Scarcity that’s true, not fake.

Day 3, if still unapproved — Text addressing the real objection: “Any questions on the estimate? Happy to walk through the options or adjust the scope. Most folks pick the architectural shingle option — want me to explain why?”

Day 7, last automated touch — Text: “Just closing the loop on your roof estimate — should I keep your file open, or are you going another direction? Totally fine either way.” This one is a gift. It flushes dead leads and converts a surprising number of people who felt no pressure. A polite exit line often gets a “no, we still want it — sorry, life got busy.”

Two hard rules:

  • Any inbound reply pauses the sequence and pings you. Nothing worse than an automated nudge landing after the customer already texted “we’re in.” Set the condition so a reply flips status to “in conversation.”
  • Approval kills the sequence instantly. The signed webhook stops all pending messages.

This is the same follow-up backbone in automating quote follow-up for service businesses — the roofing version just leans harder on SMS, because that’s where homeowners actually respond.

Collect the deposit the second they approve

An approval without money down is a maybe. The deposit separates a real job from a tire-kicker, and it should happen in the same tap as the signature.

The flow:

  1. Homeowner taps Approve.
  2. The e-sign tool immediately shows a payment step — a flat $500–$1,000, or 10% of the job, via Stripe or your CRM’s built-in payments.
  3. Payment success is the true trigger for everything downstream. Not the signature — the money.

Why gate on payment, not signature? A signature costs the customer nothing. A card does. Filtering on deposit collected means every job that reaches your schedule is real, and your crews stop showing up to installs that “aren’t quite ready yet.”

Set the deposit low enough to be a no-brainer, high enough that a non-serious buyer won’t pay it. For most residential work, $500 hits that line. It’s not about cash flow — it’s a commitment filter.

Turn an approved estimate into a booked crew slot — automatically

Here’s the part almost every “send a nicer quote” article skips. The approved estimate should book itself.

The moment the deposit clears, this chain fires:

  1. Job created in your scheduling system with customer, address, scope, and selected tier already populated from the estimate — no re-entry.
  2. Available install slot offered. Either the customer picks from open dates on a booking link, or your dispatcher gets a task with the job pre-loaded. If you run crew routing, this feeds your board — the principle behind automated dispatch and scheduling.
  3. Confirmation to the customer: “You’re booked for [date]. Here’s what to expect on install day.”
  4. Internal alert to you or your PM with deposit amount and job value logged.
  5. Materials/measurement task auto-created so ordering starts before install day, not the morning of.

Before: a signed estimate sat in an inbox until someone noticed it, retyped it into the calendar, and remembered to call the customer. That gap was often another 2–4 days of drift.

After: signed and paid at 2:14 p.m., booked slot and confirmation sent by 2:15. The customer’s excitement — the highest it will ever be — gets captured instead of cooling off.

What breaks in the real world

The build is straightforward. Keeping it from annoying people is the craft.

  • Double-texting. If your CRM sequence and a separate automation both send day-1 messages, customers get two nudges and think you’re a mess. Pick one system to own the cadence. Test it by sending yourself a real estimate and watching every message land.
  • The reply that never pauses the sequence. The #1 failure. A customer texts “we’re thinking about it” and gets a robotic day-3 nudge two days later. Build the pause condition first, before you turn on any messages, and test it by replying to your own test estimate.
  • Deposits that scare off good customers on big jobs. On a $40k full replacement, 10% ($4,000) up front can stall a real buyer. Cap the deposit at a flat amount on large jobs and take the balance on a milestone schedule.
  • Stale estimate links. If you edit the estimate after sending, make sure the link updates — otherwise the customer approves the old price. Version control matters.
  • Over-automating the human moment. On a $30k+ job, the day-3 touch often lands better as a real call from you, not a text. Let the automation remind you to call rather than replacing the call. Automate the chasing; keep the closing human on your biggest jobs.
  • No fallback for non-repliers. After day 7, don’t just drop them. Route them into a longer-term reactivation list so they resurface in a few months — the idea behind automated customer reactivation.

The honest takeaway

This system pays off hard when you send at least 15–20 estimates a month and lose deals to slow follow-up rather than price. If you already close 90% of what you quote, or you do two big commercial jobs a year, the ROI isn’t there — a shared spreadsheet and a phone call will do.

It also assumes your estimates are good. Automation makes a strong offer close faster; it won’t rescue a quote that’s overpriced or vague.

First concrete step, doable this week: pull your last 90 days of estimates and calculate your approval rate and median time-to-approval. That’s your baseline. Then set up just the Day 0 SMS + one-tap approval link — nothing else yet. That single change — a signable link by text within an hour of the inspection — usually moves the needle more than the rest of the stack combined. Build the deposit and scheduling handoff once you’ve watched the approval rate climb.

You did the hard part when you climbed the ladder. Stop letting the easy part — getting a yes — leak out the back.