Roofing has a structural problem no other trade shares: the customer cannot inspect the work. They cannot see the damage before, they cannot see the repair after, and in between they are dealing with an insurer who is looking for reasons to pay less. Everything below follows from that.
Photographs are the product
The photo set is not documentation of the job. For a roofer it is closer to being the job — it is what wins the claim, justifies the price and settles any later dispute. A blue-bubble thread carries them at full resolution and keeps them attached to the customer, which beats a folder on someone's laptop.
export const claim = { inspection: (c: Ctx) => `${c.company}: finished the inspection at ${c.address}. ` + `${c.findingCount} areas of damage — photos attached, full report ` + `by email. Short version: ${c.summary}`, claimReady: (c: Ctx) => `${c.company}: your claim pack is ready — photos, measurements and ` + `our scope of work. Sent to ${c.email}. Forward it to your adjuster, ` + `or reply and we'll deal with them directly.`, adjusterScheduled: (c: Ctx) => `${c.company}: your adjuster is coming ${c.dayDate}. ` + `${c.tech} will be there too — it's worth having us both on the roof ` + `at the same time so nothing gets missed.`,};Being on the roof with the adjuster is the highest-value message you send
Most homeowners do not know they can ask for this. Telling them — and turning up — is the difference between a claim that covers the work and one that covers half of it. It is also the moment they decide you are on their side.
Storm surge: speed is the whole competition
After a storm, every roofer in the county is knocking on the same doors, and a share of them are transient crews who will be gone by spring. Two things separate you: how fast you respond, and how obviously local you are.
A text from a real number that answers when they reply does more for the second than any amount of van signage. Speed-to-lead matters more here than almost any other trade — see the speed to lead playbook.
export const storm = { // Sent within minutes of an inbound enquiry, not the next morning. firstTouch: (c: Ctx) => `${c.company} here — ${c.rep}. We're local, ${c.yearsTrading} years ` + `on ${c.街 ?? c.town}. Can get someone up to look ${c.firstAvailable}. ` + `Free inspection, no obligation. Want it?`, tarp: (c: Ctx) => `${c.company}: crew's coming to tarp it today so it stops getting worse ` + `while the claim goes through. That's covered — we don't bill you for ` + `emergency mitigation.`,};Do not text people whose roofs you have not been asked to look at
Storm-chasing by text is both a good way to lose a number and, in many places, a regulatory problem. Consent rules do not relax because there was weather. Consent before you text applies exactly as normal.
The long wait is where jobs get lost
Between the claim going in and the material arriving, weeks pass in which nothing visible happens. That silence is when customers start wondering whether they picked the wrong company. Fill it with small, honest updates — even the ones that say nothing has changed.
- Claim submitted — what happens next and roughly how long.
- Adjuster response — approved, partially approved, or disputed, in plain words.
- Materials ordered — colour confirmed, lead time given.
- Install scheduled — the date, the crew size, and what happens to their driveway.
- Weather change — the day it slips, said before they notice.
That fifth one matters most. Roofing slips for weather constantly, and the customer forgives it easily — as long as they hear it from you first.
Next step
Browse the other industry playbooks, compare the services that can send this on the providers page, or tag your links with the UTM builder.