Guide · Dialing technique

Roofing cold calling scripts that survive contact with a storm week

Word-for-word scripts for hail-response calling, estimate follow-up and the off-season rehash, each with the cadence and connect-rate math behind it, the compliance layer Canadian crews work under, and a real 15-rep Calgary roofing sales floor as the worked example.

Quick answer: the 60-second version

The roofing script that works is specific to a street and a date: name the storm, name the neighborhood, and ask for one small next step (a free inspection slot), not for the roof. Expect roughly 350 to 400 dials per booked inspection on generic homeowner data. Call weekdays 9:00 to 21:30 local time in Canada, scrub against the National DNCL, and cap each number under about 60 to 100 dials a day. A storm opener beats a claim-pitch opener on friendliness; neither works if the list is three weeks stale. The worked example below is Good Roofing, a Calgary roofer whose storm-season sales floor scales to 15 reps.

What the SERP gets wrong

The top-ranking roofing script pages share three habits. They invent a generic customer ("Hi, this is John from ABC Roofing"), they hand you an opener and a couple of rebuttals with no cadence behind them, and they skip the compliance layer entirely, which is the part that gets a roofing campaign's numbers flagged three days into a storm week. This page does the opposite: every script here is written to be worked by a real floor, with local-number and list-hygiene discipline attached, and the proof is a roofing company whose playbook is public.

Script 1: the hail-response opener

Used within roughly the first 10 days after a hail event, while roofs are still going into claim territory and before the best inspection slots fill. Fill the bracketed parts before the rep dials; a script with holes reads as a script.

"Hi, is this Dana? This is Marcus with Summit Roofing, we're the crew working Willow Park after the hail on the 14th. We've got free drone inspections on your street this week, we count every strike per square and send you the photo report the same day. Did anybody get your roof looked at yet?"

Why each piece is there: the neighbor's street and the storm date prove this is not a purchased script being read at random; the drone detail gives the homeowner something concrete to expect; and the closing question is answerable in one word, which is what keeps a stranger on the line. If the homeowner says no inspection yet, the rep books a slot on the call, in writing, the same way Good Roofing books its estimates.

The common variation, and where it fails: the claim-pitch opener ("You may qualify for a full roof replacement covered by insurance") books more inspections per conversation on fresh lists, but it puts every call in the frame of money and claims, which pulls a much larger share of hang-ups and "how did you get my number" responses than the inspection-first frame. The inspection-first opener spends the same dial on a conversation that starts friendlier, which matters because the same homeowner list gets reworked for weeks after a storm. A reputation-damaging call pattern shows up in the same week the floor is dialing hardest.

In the second sentence, name one specific: the number of strikes per square the drone count found nearby, or a date the crew is already on that street. Specifics are the only part of a script a homeowner cannot get from the next roofer who calls at dinner.

Script 2: the estimate follow-up

The quote-follow-up call is where roofing floors quietly lose the most revenue: the estimate went out, nothing happened, and nobody called. Work it in this order, exactly.

"Hi Mrs. Singh, this is Marcus at Summit Roofing. I sent the written quote for your place on Fairmount Drive on Tuesday, did that reach you okay? ... Two things while I have you: the quote is fixed for 30 days, and our crew is on your side of the city the week of the 21st, so if you want that slot I can hold one now and you decide after you have read it. Should I pencil you in?"

Three mechanics do the work. The rep asks whether the quote arrived before pitching, which catches the silent failure (it went to spam) instead of assuming the homeowner is stalling. The rep gives a reason for urgency that is true and specific (crew adjacency and a written quote validity window), never a fake "price goes up Friday." And the ask is small: pencil in a slot, cancel free. Log the outcome on the record with a callback date, and the next follow-up happens on schedule instead of whenever someone remembers. A software bill is not the constraint here; the follow-up discipline is, which is why Good Roofing keeps every callback promise on record in DialSheet rather than in a rep's pocket notebook.

Script 3: the off-season rehash

January to April is dead time for storm-response pitch calling and the best window for rehash calling: homeowners who filed a claim last season, got a patch, and have a remaining deductible or deferred repair worth quoting properly. Off-season dialing also warms up the numbers the floor will depend on when the next storm lands, which matters more than any script on this page.

"Hi, this is Marcus with Summit Roofing. We replaced three roofs on your street after last summer's hail, and one of them was the Class 4 impact-rated upgrade that usually knocks a chunk off the insurance premium. While the weather is good, we do free drone inspections, no obligation. Would it be alright if we put your address down for a look this week?"

The rehash opener works because it is verifiable and local. If the street does not actually have three of your roofs, do not write the number into the script; use "a few roofs on your street." A rep who inflates a script detail the homeowner can disprove has spent the one call that season gets with that household.

Objection responses

Three objections carry most roofing cold calls. Respond to the concern, not the words.

The cadence that books inspections

Scripts fail without a cadence behind them. This is a six-touch cycle that leaves the list honest: nobody gets called twice in a day, every promise to call back sits on the record with a date, and a rep picking up a lead cold sees the whole story.

WhenTouchWhy
Day 1Call, no message. Call again in the afternoon.Two touches, both logged in the CRM.
Day 2Call and leave the voicemail.Reference the storm by date, not "the recent weather".
Day 4Call. Try a different number on file first.Many storm lists carry a second line.
Day 7Call. Text a photo of a neighbor's documented strike if your rep is on site nearby.One text, not a sequence.
Day 14Call. Offer the re-inspection slot before adjuster deadlines.Last attempt of the cycle.
Day 30One call, then retire the record to next season's list.Re-verify the number before next season.

The published benchmarks behind the numbers: roughly 400 dials per booked meeting on generic B2B data (Gong's 5.4 percent connect and 4.6 percent set rates, and Salesfinity's 8,671 meetings from 3.57 million dials, are the two largest published datasets), with the full benchmark breakdown here. It takes about 8 attempts to reach a given prospect, so the same list gets worked several times over its life, which is exactly why dispositions and callback dates have to live on the record.

The compliance layer (Canada and the US)

This is the layer the ranking pages skip, and it is the one that ends campaigns. Canada: register with the National DNCL (registration is free; the telemarketing rules still apply to exempt B2B callers), scrub consumer lists, call weekdays 9:00 to 21:30 and weekends 10:00 to 18:00 in the homeowner's local time, identify yourself and your company, and honor a do-not-call request immediately, keeping your internal list for three years. A dialer that connects a live human on every call is not an automatic dialing-announcing device; robocall and ringless-voicemail campaigns are a different legal category. The US layer is separate: scrub against the National Do Not Call Registry (free up to 5 area codes with a SAN), watch state-level rules, and expect TCPA exposure of $500 to $1,500 per violation. The full DNC and TCPA walkthrough is here and the Canada rules page covers the CRTC version. Neither page is legal advice; storm-season rosters built from purchased homeowner lists deserve a compliance check before the first dial.

Deliverability: the part that kills storm campaigns

A storm week is a reputation event by default: dialing volume jumps 3 to 5 times overnight, and carriers score lines on behavior, so a floor that ran fine in June can wake up flagged in July. Three habits keep the lines alive.

First, cap each number at roughly 60 to 100 dials a day and run a pool of 2 to 4 local numbers per full-time rep (about $1.15 per number per month on your own Twilio account) rather than pushing 150 dials through one line. Second, warm numbers before you need them: off-season rehash dialing is warm-up dialing, and a number pushed to full volume on day one of a storm week starts its life flagged. Third, when a line does get labeled, fix it the same day. The Spam Likely fix sequence is here, and it starts with the free registry form, not a new number.

The honest reversal for a storm floor: during a genuine surge, some of this discipline loses to speed. Crews dial harder and longer than any warm-up schedule recommends, some flagged numbers are left flagged because the alternative is not calling storm victims at all, and an imperfect campaign that reaches homeowners while the claim window is open beats a pristine one that starts after it. Good Roofing runs up to 15 reps through exactly this trade-off during hail season, and its published playbook on how it books estimates is the honest version of what a storm week actually costs a phone system.

The worked example: a 15-rep Calgary storm floor

Good Roofing is a Calgary roofing company with more than 2,800 roofs installed or repaired since 2014, a 4.9-star rating from 237 verified reviews, and a sales team that scales to 15 reps during hail season. The whole book, every homeowner call, callback promise and booked inspection, runs through a power dialer with a built-in CRM, so the follow-up discipline above is enforced by the system rather than by whoever remembers. The company publishes its own playbook, which is the strongest signal that the numbers are real: when a roofer tells you exactly how its sales floor works, it is because the floor works. The full production story is here.

The pattern generalizes beyond roofing. GarageScape books same-day garage cleanouts across Calgary, Airdrie and Okotoks phone-first, because the first company to answer wins the job; Barber Garage fills its chairs by having a person answer the phone; and FestiveLights compresses a year of installations into roughly six weeks of hanging weather. Different trades, same mechanism: the phone is the sales floor, and the dialer is the coordination layer. The bill for a floor like Good Roofing's runs about $295 a month in software at 15 seats ($29 for the first seat, $19 for each teammate) plus metered telephony on the company's own Twilio account, against $1,000 to $2,500 a month for the same 15 seats on licensed per-seat platforms before a single minute is billed.

When NOT to run these scripts

The honesty section, because the scripts are not always the right tool.

Do not cold call consumers who are on the National DNCL or the US registry; scrub first, every batch. Do not run storm-response scripts outside a storm window: a "recent hail" pitch in a month with no hail is a lie the homeowner can check, and it poisons the brand in exactly the neighborhood you will canvass next spring. Do not use ringless voicemail or robocalls for this work without legal review; both sit in a different regulatory category from a live rep dialing one-to-one in Canada, and the FCC has held ringless voicemail is a call under the TCPA. And do not buy a list of storm victims from a data broker and call it blind: verify the event, verify the addresses, and assume the same list has been sold to several roofers already, which is why connect rates on resold storm data sit well below the averages above.

The last failure mode is internal. A script without a dispositions habit decays in month two: reps cherry-pick the rows that look easy, callbacks slip, and the same homeowner gets called twice by two different reps in a week, which is the fastest way a roofing brand turns a storm opportunity into a run of one-star reviews. The floors that last measure connect rate by list age and keep every callback promise on one record.

Keep reading