Skip to main content

How to Combine Canvassing, Direct Mail, and CRM Into One Roofing Workflow

Emily Crawford, Home Maintenance Editor··31 min readRoofing Business Operations
On this page

Walk into ten roofing offices and you will find the same three machines running in three different rooms, none of them talking to each other. The canvassing crew has a stack of clipboards and a route some manager drew on a paper map last spring. The marketing person has a direct-mail vendor sending 5,000 postcards a month to a ZIP code list nobody has touched since 2019. And the CRM — whether it is JobNimbus, AccuLynx, Leap, or a spreadsheet that should have been a CRM five years ago — is sitting there holding thousands of old estimates, dead deals, and past customers that nobody ever calls back.

Three channels. Three budgets. Three people who don't share notes. And the homeowner on the receiving end gets a postcard on Tuesday, a knock on Thursday, and a voicemail in three weeks — all from the same company, all acting like the other two never happened. That is not a marketing program. That is three leaks running at once.

The shops that pull ahead are not the ones spending more on any single channel. They are the ones that stitched canvassing, mail, and the CRM into a single loop, where every door knocked feeds the database, every mail drop is timed to a knock, and every old estimate gets a reason to be re-opened. When those three move as one system, the same dollars produce two or three times the appointments, because each channel warms the next instead of starting cold.

What follows is the operating manual for building that loop — how the data flows, who owns each handoff, how to time a mailer against a route, how to mine a CRM that everyone forgot about, and the specific places this falls apart in real shops. There is real money sitting in the gaps between your three channels. The whole point is to stop letting it fall through.

Why three channels run as three silos (and what it costs you)

The silo problem is not a discipline problem. It is a structural one. Each channel grew up on its own, hired its own person, and bought its own tool, and nobody ever drew the lines between them.

Think about how a typical residential shop adds these channels over time. Year one, the owner knocks doors himself. Year three, he hires two canvassers and buys a CRM to hold the estimates. Year five, a marketing rep talks him into a direct-mail subscription. Each addition solved a real problem at the time. But none of them were designed to feed the others, so you end up with three pipelines that each start from zero every morning.

Here is what the disconnect actually costs, line by line:

  • Wasted impressions. Your mail vendor blankets a ZIP code. Forty percent of those roofs are under eight years old and will not need you for a decade. You paid full postage to reach a homeowner with a brand-new roof.
  • Cold knocks on warm doors. A canvasser knocks a street with no idea that the company mailed it three weeks ago, or that the homeowner requested an estimate in 2021 and ghosted. He opens cold on a door that should have opened warm.
  • Dead money in the CRM. The average residential roofer has hundreds to thousands of "lost" or "no decision" estimates sitting in their system. That is work the company already paid to generate — the gas, the labor, the climb — and it is rotting because no process ever brings it back.
  • Double-touch and no-touch at the same time. With no shared view, one homeowner gets hit by all three channels in a week (annoying, looks desperate) while the house next door — same age roof, same storm exposure — gets nothing.
  • No attribution. When mail, knocks, and CRM calls all run separately, you cannot tell which channel actually produced the signed job. So you cannot cut what's losing or feed what's winning. You are flying blind on the one number that matters: cost per signed contract.

The U.S. Census Bureau's American Housing Survey shows roughly two-thirds of owner-occupied homes were built before 2000, which means a huge share of the housing stock is sitting on at least one aging roof. The opportunity is enormous. The problem is precision: a blanket approach treats a 4-year-old roof and a 24-year-old roof exactly the same, and pays the same to reach both.

The fix is not a fourth channel. It is a connective layer that lets the three you already run share one list, one timeline, and one record of every touch.

The one-list principle: a single source of truth

Everything in an integrated workflow hangs off one idea: there is exactly one list of addresses, and every channel reads from it and writes back to it.

Not a canvassing list, a mail list, and a CRM. One list. A canvasser knocking a door, a postcard landing in a box, and a sales rep calling an old estimate are three different actions taken against the same record. When you accept that, the architecture gets simple.

Each address record needs to carry, at minimum:

Field Why it matters Where it comes from
Full address + geocode The anchor every channel keys on County parcel / address data
Owner name (when available) Personalizes mail and the door open Public records / skip-trace
Roof age range Tells you if the roof is even a candidate Aerial imagery analysis
Storm exposure Hail/wind history modeled at that roof Weather + physics modeling
Last contact + channel Prevents double-touch, times the next one Your own activity log
Disposition Knocked-no-answer, quoted, lost, won, DNC Canvasser app + CRM
Priority score Ranks the door against every other door Computed from the above

The two fields most shops are missing are the two that change everything: roof age range and storm exposure. Without them, your "one list" is just an address dump and you are still guessing which doors are worth a knock. With them, the list sorts itself — the oldest, most weather-worn roofs float to the top, and the new roofs drop out of the route entirely.

That one list becomes the spine. Canvassing reads the top of it. Mail reads a slice of it. The CRM holds the history of every touch against it. And critically, every action writes back — a knocked door updates the record, a returned mail piece updates the record, a signed job updates the record. The list is alive, not a static export you pulled in March.

A quick note on what "source of truth" means in practice. Your CRM is almost certainly going to be the system of record for contacts and deals, because that is what it is built for. The targeting list — the prioritized addresses with roof age and storm data — feeds into it. You do not want two databases fighting over who is right. Decide early: the CRM owns people and deals; the targeting layer owns which addresses deserve attention and why. They sync; they don't compete.

Map the workflow before you touch a tool

Before buying or wiring anything, draw the loop on a whiteboard. Most integrations fail because a shop bolts software together without agreeing on who does what when. Tools don't fix an undefined process; they just automate the chaos faster.

Here is the loop, in plain order. Read it as a cycle, not a funnel — it feeds itself.

  1. Build the list. Pull addresses for the area you actually service. Enrich each with roof age range and storm exposure so the list is ranked, not merely long.
  2. Segment by readiness. Split the list into tiers: roofs clearly aging out, roofs with recent storm exposure, and roofs that are too new to bother. The too-new tier gets suppressed from every channel — that's the first dollar you save.
  3. Mail the top tiers first. Drop a postcard or letter on the highest-priority streets a week to ten days before your crew works them.
  4. Canvass behind the mail. The crew knocks the same streets the mail just hit. Now the homeowner has seen your name. The open line changes from "who are you" to "oh, you're the ones who sent the card."
  5. Log every door. Every knock — answered, no-answer, not-interested, appointment-set — gets dispositioned in the field app, which writes straight to the CRM.
  6. Route the CRM. No-answers get a mail or door-hanger follow-up. Appointments go to a closer. "Not now" gets a future date. Old estimates already in the CRM get pulled into the same routes when they sit on a street you're working.
  7. Measure and re-rank. Track cost and conversion by channel and by tier. Feed what's working back into the list priority. Then run the loop again on the next set of streets.

Write down the owner of every handoff. Who builds the list? Who approves the mail drop and confirms the timing? Who assigns routes? Who audits dispositions at end of day? Who pulls the old estimates into the route? If a handoff has no named owner, it will silently break, and you will not notice until a month of mail went to streets nobody knocked.

A worked example of the timing makes this concrete. Say you are working a 600-home pocket of a neighborhood:

  • Day 0: Mail drops to the top 250 homes (the aged/storm-exposed tier). The other 350 are too new; you skip them and pocket the postage.
  • Day 7–10: Mail is landing. Canvassers start knocking those same 250 homes, hitting roughly 50–70 doors a day.
  • Day 10–14: No-answers from the knock get a door hanger or a second, different mail piece. Answered-but-not-now get a CRM task dated 30–60 days out.
  • Day 14+: Any appointment set goes to a closer within 48 hours. Every disposition is already in the CRM, so the closer walks in knowing the roof age and storm history before he rings the bell.

That is the entire integration in one neighborhood. Mail warms, knock converts, CRM catches everyone who didn't say yes the first time, and the new roofs never cost you a stamp or a step.

Channel 1: Targeted canvassing that reads from the list

Door knocking is still the highest-intent, lowest-cost channel a roofer has — when it is aimed. The problem is almost never the knocking. It is the aiming. A canvasser who walks a street cold, knocking every door regardless of roof age, burns six hours to set what a targeted route would have set in two.

The shift is from "walk the street" to "work the list." Your canvassers should never get a street; they should get a ranked set of houses on that street, with the order already decided by roof age and storm exposure. The new roofs are simply not on their sheet.

Build the route off priority, not geography alone

Geography still matters — you don't want a rep driving across town between doors. But within a tight cluster, the order should be priority-first. A good field app shows the canvasser a map with pins colored by tier: the worn-out roofs are the bright pins, and those are the doors he commits to. The too-new houses are either greyed out or absent.

This does two things at once. It raises the hit rate, because the rep is only spending energy on roofs that could realistically need work. And it shortens the learning curve for new hires, which matters more than most owners admit — canvasser turnover is brutal, and a green rep who knocks the right doors closes something in week one, makes money, and stays. A green rep who knocks 80 random doors and sets nothing quits by Friday.

Give every door a reason

The difference between a knock that gets the door shut and one that gets a conversation is having something true and specific to say. "We're doing roofs in the neighborhood" is noise. "We've been documenting roofs on this street that are getting up there in age, and based on the aerial imagery yours looks like it's in the range where it's worth a look" is a reason.

Notice the careful language there. You are not telling the homeowner their roof is 19 years old as a fact — roof age from imagery is a range, not a birth certificate. You say "in the range where it's worth a look," because that is honest and it is enough. Overclaiming precision you don't have is how you lose trust on the doorstep and how you end up in an argument about a date you can't actually prove.

Capture everything in the field

The canvasser's job is half selling, half data entry — and the data half is what makes the whole loop work. Every door gets a disposition before the rep moves on:

  • Appointment set — pushes to the CRM, assigned to a closer.
  • Not now / call back — CRM task with a future date and the reason.
  • No answer — flagged for a mail or door-hanger follow-up.
  • Not interested — recorded with a soft reason if given.
  • Do not contact / no soliciting — honored permanently across every channel.

That last one is not optional. If a homeowner asks not to be contacted, or the property posts a no-soliciting sign that your local ordinance enforces, that record needs to suppress mail and future knocks too. Check your municipality — many cities require canvassers to register or carry a solicitation permit, and a do-not-knock list is often legally binding. A unified list is the only way to honor that across channels; in three silos, the mail vendor never gets the memo.

A canvassing-day checklist

  • Routes built from the ranked list the night before, new roofs excluded
  • Each rep has the day's homes on a phone app, not paper
  • A true, specific talking point tied to roof age range and storm exposure
  • Branded leave-behind for no-answers (door hanger with a QR to a homeowner report)
  • Every door dispositioned in-app before the rep walks away
  • End-of-day sync confirmed — no dispositions stuck on a device
  • DNC and no-soliciting honored and written back to the master list

Channel 2: Direct mail timed to the route

Direct mail is the channel roofers most often run on autopilot and most often waste. The waste comes from two habits: mailing by ZIP code instead of by roof, and mailing on a calendar that has nothing to do with where the crew is knocking.

Integrated mail fixes both. It pulls its list from the same ranked source the canvassers use, and it drops on a schedule synced to the route.

Mail the roof, not the ZIP

A ZIP code is a postal convenience, not a sales segment. Inside any ZIP you have brand-new construction, recent re-roofs, and 20-year-old shingle nobody has touched. Mailing the whole ZIP means paying to reach every one of them equally.

When your mail list is a slice of the ranked address list, you only pay to reach roofs that could plausibly need you. On a 600-home pocket where 250 roofs are aging or storm-exposed and 350 are too new, ZIP mail costs you 600 pieces; targeted mail costs you 250. At a realistic blended cost of roughly $0.60 to $1.00 per piece for a printed-and-mailed postcard, that is real money saved on every single drop — and the saved budget can go toward a nicer piece or a second touch on the homes that matter.

Time the drop to the knock

This is the part most shops never do, and it is where the channels actually combine instead of just coexist. A postcard that lands a week before the canvasser knocks turns a cold door into a warm one. The homeowner has seen your name, your colors, maybe your reputation. When the rep says "we're the company that sent you the card about roof age in the neighborhood," recognition does the first thirty seconds of the sale for free.

The sequence that works:

  1. Mail drops on the top-tier homes.
  2. Seven to ten days later, the crew knocks those exact homes.
  3. No-answers from the knock get a second, different piece — often a door hanger left at the door plus a follow-up mailer keyed to "we stopped by."

The two pieces should not look identical. The first is an introduction. The second references the attempted visit. Variety reads as persistence; a repeated identical postcard reads as a machine.

What goes on the piece

Keep it honest and specific. The strongest mailer speaks to the actual reason this house is on the list — an aging roof, recent storm activity in the area — without overpromising:

  • A headline about roofs in the neighborhood reaching the age where they're worth a look
  • A clear, single call to action (book a free inspection, scan a QR to a homeowner roof report)
  • Your license number and real contact info — trust signals matter on a roofing mailer
  • No fabricated urgency, no "act before Friday" gimmicks; roofers in a tight market talk, and fake scarcity gets noticed

A note for any shop doing storm-restoration mail: keep the message strictly on inspection and documentation. You can say you'll inspect the roof, photograph any damage, and prepare an accurate repair estimate. You cannot promise the insurance will pay, promise a "free roof," promise the deductible is waived or absorbed, or imply you'll handle the claim. More on that line below — it matters on the doorstep and on the postcard equally.

A direct-mail checklist

  • List pulled from the ranked master list, new roofs excluded
  • Drop scheduled 7–10 days ahead of the canvass route
  • Two distinct pieces ready: introduction, then "we stopped by" follow-up
  • License number and real phone on every piece
  • QR or short URL to a homeowner-facing roof report for tracking
  • Suppression list (DNC, won jobs, no-soliciting) applied before the drop
  • A way to attribute responses back to the specific drop and tier

Channel 3: The CRM as the engine, not the filing cabinet

The CRM is where most of the buried money is, and where most shops do the least work. It is treated as a place estimates go to die — a filing cabinet you open only when a customer calls back on their own. Run correctly, it is the engine of the whole loop: it holds the history, routes the follow-up, and surfaces the old work that's worth reviving.

Mine the old estimates first

Before you spend another dollar on mail or another hour knocking, look at what's already in the system. Every roofer's CRM is full of estimates that went nowhere: "thinking about it," "getting other quotes," "not this year," "insurance denied," then silence. That is work you already paid to create — the lead, the drive, the climb, the measure, the bid. Letting it sit is like throwing out inventory.

A simple revival pass:

  1. Pull every open or lost estimate older than 90 days. Filter out the ones that genuinely closed elsewhere or said never.
  2. Re-enrich them against the current list. A roof you quoted at "borderline, maybe two more years" three years ago is now squarely in replacement range. A house you bid before a hailstorm rolled through has new storm exposure on its record.
  3. Prioritize by what changed. The estimates worth calling first are the ones where the roof aged into the range or took a storm since you last talked.
  4. Work them into existing routes. When an old estimate sits on a street your crew is already canvassing, the rep knocks it in person with the history in hand: "We quoted your roof a few years back — it's aged into the range now, and there's been weather since. Mind if I take another look?"

That re-knock is one of the highest-conversion actions in the entire workflow, because the homeowner already let you on the roof once and the roof is objectively older. You are not cold-calling a stranger; you are following up on your own past work with a new, true reason.

Make the CRM the hub every channel writes to

For the loop to close, the CRM has to receive from all three channels:

  • From canvassing: every disposition, in real time, from the field app. JobNimbus, AccuLynx, Leap, and most modern roofing CRMs have mobile entry or integrations that push door results straight into the deal record.
  • From mail: which homes got which piece and when, plus any response (QR scan, inbound call tagged to the campaign).
  • From the targeting list: roof age range and storm exposure attached to each address record, so a closer sees it before the appointment.

When all three write to the CRM, the deal record tells the whole story: mailed on the 3rd, knocked on the 11th, no-answer, door hanger left, called back on the 14th, appointment set, roof age 18–22, two hail events on record. A closer who opens that record walks in informed. A closer working from three silos walks in blind.

Automate the follow-up, not the relationship

Use the CRM's automation to make sure nobody falls through — task creation, follow-up reminders, drip sequences for "not now" homeowners with a future date. But keep the actual touch human. Roofing is a high-trust, high-dollar decision on someone's house. Automated reminders that a human then acts on convert; fully automated spam does not. The automation's job is to make sure the right rep contacts the right homeowner at the right time, not to replace the rep.

A CRM checklist

  • Every open/lost estimate older than 90 days pulled and reviewed quarterly
  • Old estimates re-enriched with current roof age and storm data
  • Field dispositions flowing into the CRM in real time
  • Mail touches logged against the address record
  • Roof age range + storm exposure visible on the deal before any appointment
  • Automated tasks for follow-up; human action on every touch
  • One unsubscribe/DNC action suppresses the contact across all channels

Where the data comes from: ranking the list by roof age and storm

Everything described so far depends on one input the typical roofer does not have: a list where the addresses are already ranked by which roofs are actually due. Without it, you are back to blanketing — mailing the ZIP, knocking the street, and hoping. With it, every channel gets sharper at once.

This is the specific gap RoofPredict was built to fill. It takes aerial imagery and reads roof age as a range per address — an 18-to-22-year estimate, not a fake exact date — and it models storm physics on each roof, scoring hail and wind impact house by house rather than just showing where a storm passed. A hail map tells you where it hailed across a county; modeling the storm on each roof tells you which specific roofs in that county likely got worn out. Pair the age range with the storm exposure and you get a per-address priority score: the roofs that are both aging and weather-hit rise to the top, the brand-new roofs drop out, and your one list sorts itself.

That ranked list is exactly what the three channels read from. The mail vendor mails the top tiers. The canvassers knock the bright pins. The CRM re-enriches old estimates against the same data so you can see which past bids just aged into range or took a storm. It is not a lead service — nobody is selling you a homeowner who already got resold to five competitors. It enriches your own streets and your own customer book with the two signals you were missing, so the outbound you already run stops wasting itself on roofs that don't need you.

Be clear-eyed about the limits, because honesty is the whole pitch. Roof age from imagery is a range, not a guarantee — a roof flagged 18–22 might be 17 or 24. Storm modeling gives you odds a roof was affected, not proof of damage; the inspection still decides that. The data does not replace getting on the roof, and it does not write your estimate. What it does is point your three channels at the right doors instead of all of them, which is the difference between a workflow that compounds and three budgets that leak. You can hand it a roof you already know the truth about and check whether it called the age and exposure right before you trust it with a whole route.

Storm restoration: combine the channels, stay on the right side of the line

Storm work supercharges the integrated workflow, because a hail or wind event creates a sudden, dated, location-specific reason to hit a neighborhood across all three channels at once. Mail drops referencing the recent weather, crews canvass the hardest-hit streets, and the CRM pulls every past estimate in the affected area for a re-knock. The storm exposure data tells you which roofs in the path likely took the worst of it, so you work those first instead of the whole ZIP.

It also drags you toward a legal line that has put a lot of roofers in trouble, so build the guardrails into your workflow before your reps and your mailers cross it.

What a roofing contractor may do is straightforward. You can inspect a roof. You can document and photograph damage thoroughly. You can prepare an accurate repair estimate for your own scope of work, aligned to standard estimating practice, and hand that documentation to the homeowner. You can state facts about your scope to the carrier. That documentation-and-estimate work is exactly where the integrated workflow adds value: the more precisely you target storm-worn roofs, the more real damage you find, and the better your photo and estimate package is.

What a contractor may not do — in most states, this is unlicensed public adjusting and it carries real penalties — is, for a fee, negotiate or "handle" the homeowner's claim, interpret what their policy covers, promise a specific payout or approval, promise the deductible is waived, absorbed, or gone, advertise a "free roof," or represent the homeowner against their insurer. The homeowner files the claim. The insurer decides coverage. You document and estimate.

Bake that line into every channel:

Channel Safe Not safe
Mail piece "Free storm inspection. We document damage and prepare a repair estimate." "We get your roof covered" / "free roof" / "we waive your deductible"
Doorstep script "We'll inspect, photograph any damage, and write you an accurate estimate to hand to your insurer." "We'll handle your claim" / "don't worry about the deductible" / "guaranteed approval"
CRM follow-up Notes on documentation, scope, inspection findings Promises about coverage, payout amounts, or claim outcomes

Train every canvasser and every closer on the do-not-say list. The fastest way to undo a great targeted-marketing program is to have a rep promise a homeowner a free roof on the doorstep. Document thoroughly, estimate accurately, hand it over, and let the homeowner and the insurer do their parts. Your edge is precision and documentation, not claim handling.

Tooling: how to actually wire it together

You do not need a single all-in-one platform, and you should be skeptical of anyone selling you one as the only path. What you need is for your tools to share the one list and write back to the CRM. Most shops can assemble this from pieces they already own plus one or two additions.

The minimum stack

  • A CRM that holds contacts, deals, and history, with mobile field entry. JobNimbus, AccuLynx, and Leap are common in roofing and all support field dispositioning and integrations. The specific brand matters less than whether your reps will actually use it in the field.
  • A canvassing/field app that pushes dispositions to the CRM. Some CRMs have this built in; some shops bolt on a dedicated canvassing tool. The non-negotiable is that a door knocked at 2 p.m. shows up in the CRM by 2:01, not on a clipboard that gets typed in next week.
  • A targeting/list source that ranks addresses by roof age and storm exposure. This is the enrichment layer that turns an address dump into a ranked route. It feeds the canvassing app and the mail list.
  • A mail vendor that accepts a custom, filtered list and can hit a schedule. Not a ZIP-blast subscription — a vendor that mails the list you hand it, on the date you specify.

How they connect

The practical glue is usually one of three things: native integrations between tools, a connector like Zapier or Make for the gaps, or a flat CSV handoff on a schedule when nothing else fits. CSV is unglamorous and it works — exporting the top tier of the ranked list to the mail vendor every two weeks is a perfectly good integration if the timing is disciplined.

Avoid two failure modes. First, do not let two systems both think they own the contact record; pick the CRM as the system of record and have everything sync into it. Second, do not buy a tool because it has a feature you'll never configure — an integration nobody set up is worse than a CSV someone actually sends, because it creates the illusion of connection while the data sits stranded.

A rollout you can actually do

Don't try to wire all of this in a month. Sequence it:

  1. Weeks 1–2: Get the ranked list. Enrich your service area by roof age and storm exposure. This alone improves every channel immediately, even before any integration.
  2. Weeks 2–4: Point your existing mail at the ranked list instead of the ZIP. Suppress the new roofs. Measure the cost-per-piece savings.
  3. Weeks 3–6: Move canvassing onto a field app fed by the same list, with real-time dispositioning into the CRM.
  4. Weeks 4–8: Time the mail drops to the routes. Add the second "we stopped by" piece.
  5. Weeks 6–10: Run the CRM revival pass on old estimates and work them into live routes.
  6. Ongoing: Add attribution. Track cost and conversion by channel and tier; feed it back into list priority.

Measuring the combined workflow

The entire reason to integrate is to be able to see the system clearly and improve it. Three silos hide the truth; one loop exposes it. Once the channels share a list and write to one CRM, you can finally answer the questions that decide where your money goes.

Track these, by tier and by channel:

  • Cost per door reached — what it costs to touch a home via mail vs. knock.
  • Contact rate — share of touches that reach a live homeowner conversation.
  • Set rate — share of contacts that become a booked inspection.
  • Close rate — share of inspections that become signed jobs.
  • Cost per signed contract — the only number that ultimately matters, by channel and combined.
  • Lift from timing — set rate on mail-then-knock streets vs. cold-knock streets.
  • CRM revival yield — jobs signed from re-knocked old estimates vs. the cost to revive them.

The timing-lift number is the one that proves the integration is working. If mail-then-knock streets set appointments at a meaningfully higher rate than cold-knock streets, you have evidence the channels are combining, not merely coexisting. If there's no difference, your timing is off — the mail and the knock aren't actually landing in sequence — and you should fix the handoff before scaling.

Review these monthly with the people who own each handoff in the room. The list-builder, the mail owner, the canvassing manager, and whoever runs the CRM should all see the same numbers. That shared scoreboard is what keeps three channels behaving like one system instead of drifting back into silos.

Common mistakes that quietly break the loop

Even shops that build the workflow correctly tend to break it in predictable ways. Watch for these:

  • Mailing and knocking on unrelated schedules. If the mail goes out the first of the month and the crew knocks wherever the manager feels like, you have two channels, not a combined one. The timing is the integration. Lose the timing and you've just spent money on both.
  • Letting dispositions die on the device. A canvasser who doesn't sync, or who writes "no answer" for a not-interested to save a tap, poisons the CRM. Audit dispositions daily at first.
  • Never running the CRM revival pass. The old estimates are the cheapest jobs you'll ever sign, and they're the first thing busy shops ignore. Put it on the calendar quarterly or it never happens.
  • Mailing the whole ZIP "to be safe." The instinct to reach everyone is what the integration exists to kill. Trust the suppression. New roofs don't need you; paying to reach them is the leak.
  • Two systems fighting over the contact. Pick one source of truth for people and deals. Let the targeting layer own which addresses matter; let the CRM own the relationship.
  • Crossing the claims line on storm work. One rep promising a free roof or a waived deductible can undo a whole program and expose the company. Train the do-not-say list as hard as the talking points.
  • No attribution, so no learning. If you can't tell which channel and tier produced the signed job, you can't improve. Build attribution in from the start, even a crude version.
  • Overclaiming roof age precision. Telling a homeowner their roof is exactly 19 years old when you have a range invites an argument you'll lose. Say "in the range," stay honest, keep the trust.

Putting it together: a 90-day picture

Imagine the workflow running for a full quarter in a mid-sized residential shop.

The service area is enriched once: every address carries a roof age range and storm exposure, and the list is ranked. Mail now goes only to aging and storm-exposed roofs, cutting the drop size by roughly a third to a half and freeing budget for a nicer piece. Crews knock the bright pins seven to ten days behind the mail, opening warm instead of cold, and every door they touch lands in the CRM the same minute. No-answers get a door hanger and a second mailer. "Not now" gets a dated task. The closer who runs the appointment already knows the roof's age range and storm history before he knocks.

Meanwhile, the revival pass pulled three years of dead estimates, re-ranked them by which roofs aged into range or took a storm, and folded the best ones into the live routes — so reps re-knock their own past work with a true new reason. By month three, the monthly scoreboard shows the mail-then-knock streets setting appointments well above the cold streets, the cost per signed contract dropping as the new-roof waste disappears, and a steady trickle of signed jobs coming from old estimates that cost almost nothing to revive.

That is the difference between three channels and one system. Same crews, same mail budget, same CRM — but pointed, timed, and connected so each one warms the next. The roofs that are actually due float to the top, the new roofs stop costing you, and the work you already paid to generate stops rotting in the database.

If the missing piece is the ranked list — knowing which roofs are due, house by house, with the storm modeled on each one — that is exactly what RoofPredict feeds into the loop. Hand it a street you already know and check whether it calls the roof age range and storm exposure right; if it does, point your canvassing, your mail, and your CRM at the same ranked list and let the three of them finally work as one. You own your streets and your customer book already. The workflow just stops you from leaving money in the gaps between them.

FAQ

How do I actually connect canvassing, direct mail, and my CRM if they're separate tools?

Make the CRM the single system of record for contacts and deals, then have every channel write to it. Your canvassing field app should push door dispositions into the CRM in real time, your mail vendor should mail a filtered list pulled from the same ranked source and log which homes got which piece, and your targeting list should attach roof age and storm data to each address record. Connect them with native integrations, a connector like Zapier or Make, or a disciplined CSV handoff on a schedule. The glue matters less than the rule: one list everyone reads from, one CRM everyone writes to.

What's the single biggest reason these three channels stay disconnected?

They grew up separately. Most shops added canvassing, then a CRM, then a mail subscription over several years, each solving a problem at the time, none designed to feed the others. The fix isn't a new channel or a giant platform — it's a connective layer: one ranked list of addresses that every channel reads from and writes back to, with the CRM holding the full history of every touch.

How far ahead of door knocking should the direct mail drop?

Seven to ten days. That gives the postcard time to land and register before the canvasser knocks, so the homeowner recognizes your name and the door opens warm instead of cold. Sooner than a week and the mail may not have arrived; much later and the recognition fades. The timing is the whole point of combining the two — mail-then-knock streets should set appointments at a measurably higher rate than cold-knock streets, and if they don't, your timing is off.

How do I get value out of old estimates sitting in my CRM?

Run a revival pass quarterly. Pull every open or lost estimate older than 90 days, re-enrich each against current roof age and storm data, then prioritize the ones where the roof aged into replacement range or took a storm since you last quoted it. Work those into routes your crew is already canvassing so a rep can re-knock in person with the history in hand. It's the cheapest job you'll ever sign because you already paid to generate the lead the first time.

Why not simply mail the whole ZIP code to be safe?

Because a ZIP code is a postal boundary, not a sales segment. Inside any ZIP you have new construction, recent re-roofs, and 20-year-old shingle, and blanket mail pays full postage to reach all of them equally. A large share of those roofs are too new to need you for years. Mailing only the aging and storm-exposed roofs typically cuts drop size by a third to a half, and the saved budget can fund a better piece or a second touch on the homes that actually matter.

What does roof age data from aerial imagery actually tell me?

It gives you a range, not an exact date — for example, an 18-to-22-year estimate per address. That range is enough to decide whether a roof is even a candidate worth a knock or a mailer, which is what you need to rank a list. It is not a birth certificate, so don't tell a homeowner their roof is exactly 19 years old; say it looks to be in the range where it's worth a look. Honest range language keeps trust on the doorstep.

How is storm data different from a regular hail map?

A hail map shows you where a storm passed across a county or ZIP. Modeling the storm on each roof estimates hail and wind impact house by house, so you get the odds a specific roof was affected rather than just a broad swath. That lets you work the hardest-hit roofs first instead of blanketing the whole storm footprint. It's odds, not proof of damage — the inspection still decides what actually happened up there.

You can offer a free inspection, say you'll document and photograph any damage, and prepare an accurate repair estimate for your own scope to hand to the homeowner. You cannot promise the insurance will pay, promise a specific approval or payout, advertise a free roof, say you'll waive or absorb the deductible, or say you'll handle or negotiate the claim — in most states that's unlicensed public adjusting. The homeowner files the claim and the insurer decides coverage. Train every rep on that do-not-say list.

Do I need a single all-in-one platform to combine these channels?

No. You need your tools to share one list and write back to one CRM, which you can assemble from pieces you already own plus a targeting/list source. A native integration is nice, but a disciplined CSV export to your mail vendor every two weeks is a perfectly good integration. Be more skeptical of buying a platform for a feature nobody will configure than of a simple handoff someone actually executes — an unconfigured integration is worse than a CSV that gets sent.

How do I prove the integration is actually working?

Track cost per door, contact rate, set rate, close rate, and cost per signed contract — broken out by tier and by channel — and review them monthly with the people who own each handoff. The clearest proof is the timing-lift number: the set rate on mail-then-knock streets versus cold-knock streets. If sequenced streets convert higher, the channels are combining. Also watch CRM revival yield: jobs signed from re-knocked old estimates against the small cost to revive them.

The Roofline by RoofPredict

Stay Ahead of Roofing Market Changes

Join The Roofline by RoofPredict for weekly roofing intelligence: material price signals, storm demand, insurance and regulatory updates, sales tactics, and local contractor opportunities.

By signing up, you agree to receive The Roofline by RoofPredict. Unsubscribe anytime.

Sources

  1. American Housing Surveycensus.gov
  2. QuickFacts: Housingcensus.gov
  3. NRCA Roofing Resourcesnrca.net
  4. IBHS Hail Researchibhs.org
  5. NOAA Storm Prediction Centerspc.noaa.gov
  6. NWS Severe Weatherweather.gov
  7. NOAA Storm Events Databasencdc.noaa.gov
  8. FTC Telemarketing Sales Rule & Do Not Callftc.gov
  9. FTC Guidance on Truthful Advertisingftc.gov
  10. Texas Department of Insurance: Public Adjusterstdi.texas.gov
  11. NAIC Public Adjuster Informationnaic.org
  12. OSHA Fall Protection in Constructionosha.gov
  13. BLS: Roofers Occupational Outlookbls.gov
  14. RoofPredictroofpredict.com

Related Articles