The follow-up system that books more roofing jobs in Duluth — without being pushy.
A Duluth roofer quoted a Gwinnett Place area homeowner in March, followed up once, and moved on. Six months later that homeowner called — and hired a competitor who had stayed in touch. The job was $23,400.
You’ve built your roofing business around storm week. The other 51 weeks are where the real money is.
Here’s the thing. Most Duluth roofers we audit run a storm-response model: hail hits, the trucks roll, doors get knocked, quotes go out the next day, and follow-up consists of a single phone call 48 hours later. If the homeowner doesn’t pick up, the lead goes in the “moved on” pile and the crew walks the next street.
That works for storm week. It does not work for the other 51 weeks of the year — which is when the non-emergency roof replacement market for the Gwinnett Place corridor, Pleasant Hill Road, and the broader Duluth area is roughly ten times the size of the storm market. Those homeowners aren’t ready in storm week. They’re ready 60, 90, even 180 days later when the kitchen remodel is done, when the bonus hits, or when the seller’s inspection comes back.
Real talk: the Duluth roofer who built a 90-day follow-up sequence is harvesting jobs every single month from leads his competitors quoted, abandoned, and forgot about. Same homeowner. Same roof. Just a contractor with a sequence instead of a single phone call.
Across our Duluth roofing accounts, the average homeowner replacing a non-emergency roof signs a contract on touch 6. The average local roofer’s follow-up ends at touch 2. That gap is the entire opportunity.
The good news? You don’t need to abandon storm response — you need to layer a 90-day sequence on top of it that keeps every quoted homeowner in your funnel long enough to convert when they’re actually ready. The system below runs in the background while your crew keeps doing what it already does.
Storm-response one-touch vs. a 90-day owned sequence
Same Gwinnett Place quote pipeline. Wildly different recovered revenue.
| What you’re tracking | Most Duluth roofers | The 90-day sequence |
|---|---|---|
| Touchpoints per non-emergency quote | 1 phone call, maybe a text | 8 touches across 90 days |
| Win rate on non-emergency leads | 9% (most go cold) | 34% (most stay engaged) |
| Average ticket recovered | — | $23,400 |
| Cost to run the sequence | $0 (and $0 recovered) | ~$80/mo software, automated |
| Annual recovered revenue (40 quotes) | — | ~$235K |
A finished Gwinnett Place re-roof. Once it’s shot, the photo becomes touch number four for every prospect in the same zip code.
Storm week opens doors. The 90 days after storm week close jobs.
You’ve probably been told the roofing game is won at the front door — knock fast, quote fast, close fast, move on. That’s the storm-response playbook, and it’s been making roofers leave money on the table for a decade.
The Duluth homeowner who declined your storm-week quote didn’t decline because of price. They declined because their kid was home sick that morning, or because the insurance check hadn’t cleared, or because they were getting two more quotes “just to compare” and then life happened. They are still going to need that roof. The only question is whether you’re still in the inbox when they finally pull the trigger.
The roofer who emailed me a quick “spring weather is here — here’s what your roof needs to handle this year” message in April was the one I called back. Not the four guys who knocked in March and disappeared.— A Pleasant Hill corridor homeowner three months after declining the original quote
The roofers winning in Duluth right now treat the 90 days after the quote as the actual selling period — and they pair it with a converting site, a sharp Google profile, and serious contractor lead generation on top. Door-knocking gets the at-bat. The follow-up sequence gets the hit.
Eight touches. Ninety days. Built once, runs forever.
The system pulls non-emergency roof replacement revenue out of leads your competitors already gave up on. No new ad spend. No new door-knocking. Just discipline.
What the system actually has to do.
Miss any one and the sequence starts feeling like spam. Hit all four and it feels like the most professional roofer the homeowner has ever heard from.
A 90-day written sequence — not improvisation.
Eight messages, written once, scheduled at days 1, 3, 10, 21, 35, 55, 75, and 90. Each one has a job: confirm proposal, share a Gwinnett Place case study, explain insurance vs. cash pricing, send financing options, share a roof-condition seasonal reminder, share a recent finished project nearby, offer a free re-inspection, and finally a “should we close the file” check-in. Pairs with a real digital presence — without proper websites and rankings, you’re following up with prospects who can’t even find you again when they search. Our roofing clients see compounding returns once both pieces fire together.
Multi-channel.
Mix of email, SMS, drone photo MMS, and one re-inspection offer. Eight emails in 90 days feels like spam. Eight touches across four channels feels like a contractor who actually wants to earn the project.
Every touch teaches something.
Insurance claim tips. Seasonal roof prep. What “decking replacement” actually means. Homeowners reading your follow-up should walk away smarter — that’s how trust gets built across 90 days.
Stay in the inbox past day 30.
The single biggest lever in this entire system is touches 5, 6, and 7 — landing between day 35 and day 75. That’s when most Duluth roofers have completely written off the prospect, and it’s exactly when the homeowner is finally deciding. The roofer still showing up in week 8 wins by default. For most of our Duluth roofing clients, more than 60% of recovered non-emergency revenue comes from these mid-sequence touches.
Finished projects shot from the ground become touch number six for the homeowner three streets over.
How we install a 90-day follow-up engine for a Duluth roofer.
Audit the last 80 quotes
Every quote from the past 12 months gets mapped: who answered, who went silent, what day each lead dropped off. Almost every Duluth roofer has a graveyard of 40+ non-emergency quotes where the only follow-up was a single 48-hour phone call.
Build and automate the 8 touches
Each message gets written in the roofer’s voice, references actual Duluth and Gwinnett Place neighborhoods, and is loaded into a CRM-driven sequence that triggers based on quote-issue date. All channels, all tracked, all paused the moment the prospect engages.
Run a re-engagement against the past 24 months
The biggest first-month win usually comes from re-engaging “dead” quotes from the prior 18–24 months. Sending a single “spring weather reminder” message to 200 of those leads regularly produces 4 to 8 booked re-roofs in the first 30 days — pure recovered revenue.
The roofer who recovered $187K from leads he had already given up on.
A Duluth roofer working the Gwinnett Place area had 240 “lost” quotes sitting in his CRM from the prior 18 months. We ran a single re-engagement message — a friendly “spring is coming, here’s what your roof needs” email with a 60-second drone clip of a recent Pleasant Hill re-roof — to all 240. 8 of them booked within 30 days. Combined project value: roughly $187,000 in recovered revenue from leads he had already mentally written off as dead. Then we put the full 90-day sequence on every new quote going forward.
Share of signed contracts by days-since-quote.
Peak signing happens in weeks 7–9. Most Duluth roofers stopped following up in week 2. Whoever’s still in the inbox at week 8 wins the math.
A Pleasant Hill ridge-cap install. The kind of asset that becomes touch number five in a follow-up sequence for every prospect in the neighborhood.
What each message actually says.
Six concrete templates. Each one designed to teach the homeowner something while keeping you in the inbox past the point where competitors disappear.
Day 1 — Proposal confirmation (email)
“Confirming you got the estimate — here’s a one-pager covering scope, materials, and warranty if you want to share it with your spouse.” Quietly professional.
Day 3 — Insurance vs. cash explainer (SMS)
“Wanted to flag — if your claim is denied, here’s what we recommend for a phased cash approach so you don’t get stuck.” Helpful, specific, zero ask.
Day 10 — Neighborhood project drone clip (MMS)
“60 seconds of a re-roof we just finished two streets from you.” Specific, visual, builds local trust.
Day 21 + 35 — Seasonal roof prep (email)
“Spring storm season starts in three weeks — here are the three things to check before the first hail event.” Genuinely useful content the homeowner saves.
Day 55 — Free re-inspection offer (SMS)
“Want us to come out and re-check your roof for free? No estimate pressure — just a fresh look.” Generates a second in-person touchpoint after most contractors are gone.
Day 75 + 90 — Soft close (email + call)
“Totally fine either way — should we hold a slot for your roof or close out the file?” Permission-based, low pressure, books more jobs than any hard close.
A finished Pleasant Hill re-roof at golden hour. This is what touch six looks like — visual proof, not a sales pitch.
Crew-at-work content from every job becomes follow-up material for the next prospect in the same zip code.
What Duluth roofers keep asking us.
Not when they’re spread across 90 days, four different channels, and every touch teaches something. The “pushy” feeling comes from eight identical “any update?” emails in 30 days. The sequence above never does that. Across our Duluth roofing clients, opt-out rates run under 3%.
JobNimbus, AccuLynx, Roofr, or HubSpot Starter all handle it cleanly. If you’re under 60 quotes a year, even Mailchimp automation plus a phone reminder system will work. The sequence and the discipline matter more than the platform.
No. Storm response is built on speed — get to the door, quote fast, close fast, move. Non-emergency replacement is built on patience — show up over 90 days while the homeowner finishes their kitchen, gets their insurance check, and finally feels ready to spend $20K+. Different game entirely. The 90-day sequence is what bridges the two.
The new-quote sequence starts producing recovered bookings around day 35. The bigger immediate win is the one-time re-engagement we run against your past 18–24 months of “lost” quotes — that almost always produces 4 to 8 booked projects in the first 30 days. Pure recovered revenue.
Leads graduate into a quarterly long-form nurture — a seasonal roof tip, a recent Gwinnett Place project highlight, or a storm-season checklist every 90 days. Duluth roof leads regularly re-engage 12–18 months later when life events finally align with re-roof timing. The list is a long-term compounding asset.
Imagine pulling $187K of recovered revenue out of leads you’d already given up on.
If you want a 30-minute call where we look at your last 18 months of quotes, map exactly where each lost lead went silent, and show you what a 90-day sequence would have recovered — that’s free. We do a handful of these every week with roofers across the North Atlanta region.
More for Duluth roofers.
Best web design for roofers in Duluth, decoded.
A Sugarloaf-area roofer called us last March after burning $14,200 on a website that hadn’t booked a single inspection in eight…
Lead generation for roofers in Duluth: the complete guide.
$1,847. That’s what the average Duluth, GA roofer is quietly paying to close one storm-damage job through Angi, HomeAdvisor, or…
SEO for roofers in Duluth: how to dominate Google rankings.
Stop chasing the head term. Start owning the neighborhoods. The Duluth, GA roofers running the local map pack right now aren’t …
Social media management for roofers in Duluth: the complete playbook.
Why does your Duluth, GA roofing Instagram have 312 followers and zero booked inspections from any of them? Because nobody told…
