Blog/tools

Roofing CRM: Why It Stores Relationships But Can't Tell You Who to Call

Every roofing CRM stores relationships, not roof condition. Here's how an AI roof read on the addresses you already have turns a database into a call list.

JT
Jake Thompson
Roofbird
September 21, 2026

Your CRM is not the problem. JobNimbus, AccuLynx, Roofr and Leap are good at what they were built to do: hold the relationship, the job history, the photos, the invoices, the pipeline stages, the crew schedule. They are the system of record, and you should keep them. This is explicitly not a CRM-replacement pitch. If you're running one of these, you already have the right backbone.

The problem is what's missing from every one of them. Open any of those four and try to find a field that answers one question: what condition is the roof on this address right now?

You won't find it. Not because the vendors are lazy. Because a CRM is a relationship database, and roof condition is not a relationship fact. It's a physical fact about a building, and it changes on its own schedule whether or not you ever spoke to the homeowner.

That gap is why so many contractors have 4,000 contacts and no idea which 40 to call this week.

What a CRM actually stores (and what it can't)

Run down the standard fields in any roofing CRM and you'll see the same shape:

  • Contact name, phone, email, mailing address
  • Lead source (referral, web form, door knock, purchased lead)
  • Pipeline stage, job type, estimated value
  • Notes, attachments, photos, signed documents
  • Appointments, tasks, follow-up reminders
  • Sometimes: year built, lot size, a satellite measurement link

Every one of those is either something a human typed in or something tied to a transaction. The CRM knows the homeowner called you in 2023. It does not know the shingles on that house have gone from midlife to curled in the two years since.

Here's the test. Pick 50 addresses in your CRM you haven't touched in 18 months. Ask the CRM which of those roofs is now worse than its neighbours. There is no field to query. There is no report to run. The data isn't there, and no amount of tagging or custom-field building will create it, because nobody on your team has stood in front of those houses.

That's the honest limit of a relationship database. It records what happened between you and a person. It has no opinion about the building.

The specific missing fields

If you wanted to rank a CRM list by who to call, you'd need to sort on things like:

  1. Roof condition — replace-now, worn, midlife, or already done. Read off the shingles, not the year the house was built.
  2. Roof age — estimated from the material and wear, not the building's construction date.
  3. Active damage — a tarp, missing shingles, exposed decking, patched sections.
  4. Neighbour comparison — whether the houses either side have visibly been re-roofed while this one hasn't.
  5. A "why now" trigger — something forcing a decision on this specific house.
  6. Owner equity — whether the person who lives there can actually say yes to a $14,000 job.
  7. A DNC-scrubbed phone number — a number you're allowed to dial manually.

None of those seven exist in JobNimbus, AccuLynx, Roofr or Leap out of the box. Some of them can be added as custom fields. The problem is the value: a custom field called "roof condition" that a human has to fill in by driving past the house is just a spreadsheet with extra steps.

Why "just add a custom field" doesn't solve it

The instinct is to build the field and have someone populate it. That works for about three weeks. Then the pipeline gets busy, the field goes stale, and you're back to a database where half the rows say "needs roof" from a drive-by in 2022 and the other half are blank.

Stale condition data is worse than no condition data. It's a confident wrong answer. You'd call the wrong 40 houses and feel productive doing it.

What actually fixes it is reading the roof from imagery — the overhead tile and the ground-level Street View of the façade together — and writing the result back to the address. That's a data problem, not a CRM problem, and it belongs in a tool that does one thing: how Roofbird scores a roof from imagery.

What can actually be added to an address

This is the useful question. If you hand a system 4,000 addresses from your CRM, what can honestly be attached to each one without sending anyone to the door?

From satellite and street-level imagery: roof material, condition ranking against neighbours, estimated roof age, wear signs, roof size in squares, number of planes, pitch, active damage like tarps and missing shingles, overhanging trees, second storeys, dormers, solar panels, skylights, chimneys.

From public property records: owner name, owner-occupied vs absentee, estimated market value, year built, last sale date and price, beds and baths, living square footage, lot size, stories, garage, annual property tax, mortgage lender, and an owner-equity estimate.

From a DNC scrub: whether a phone number is clear for a manual sales call, flagged DNC, or unverifiable.

That's the full list, and it's worth reading in detail if you're planning to enrich a CRM: what can actually be added to an address. The short version is that imagery gives you the building, records give you the owner, and the scrub tells you whether you're allowed to dial.

Two scores, because "needs a roof" and "will buy now" are different questions

When you enrich a CRM list, the ranking is the whole point. Roofbird writes two numbers against every address.

NEED is how badly the roof needs replacing — condition and roof age only.

NOW is whether anything is forcing a decision on this specific house: visible active damage, hail damage on this roof, a purchase in the last 18 months, patching already attempted, or neighbours who have re-roofed.

Neighbourhood hail deliberately does not raise the NOW score. Every home in a scan shares it, so it can't separate one door from the next. It belongs in the pitch, not the ranking. A CRM list sorted by "hail hit the ZIP" is sorted by a fact that applies equally to all 4,000 rows, which means it isn't sorted at all.

That distinction is what makes a ranked list trustworthy. Most homes in a settled neighbourhood honestly have no trigger, and a good system says so rather than inventing urgency to look busy.

The payoff: owner name, DNC-scrubbed phone, and email

Here's where a scored list beats a CRM pipeline view. The full property record shows on every lead for free once it's been read — owner name, whether they live there or it's a rental, estimated value and confidence, year built, last sale, beds and baths, lot size, taxes, lender, and an owner-equity estimate. Equity is the number that decides whether someone can say yes, and it's sitting in public records the whole time.

Only the phone and email sit behind the unlock, and every number is DNC-scrubbed and labelled: clear means it was checked against the federal Do Not Call registry and is safe for a manual sales call, DNC means don't call it, verify means the scrub couldn't confirm either way so treat it as unknown. Manual dialling only. No texts, no auto-dialler. A lookup that finds no contact never costs a credit. The full detail on that is at homeowner contact details and DNC screening.

So the output of a scored CRM list isn't a dashboard. It's a name, a reason to call, and a number you're allowed to dial. That's what turns a database into a call list.

How this fits with the CRM you already run

Keep JobNimbus, AccuLynx, Roofr or Leap as your system of record. The scored list is the front end that decides who goes into it.

The workflow is simple. Export the addresses you already have. Score them. Work the top of the list. Push the ones that turn into real conversations back into the CRM as new leads with the roof read attached, so the rep who calls has the imagery date, the condition ranking and the neighbour comparison in front of them.

If you're on AccuLynx, scores can write into job priority so the pipeline reflects the ranking: roofing software that writes lead scores into AccuLynx job priority. If you're on JobNimbus, the same logic applies through the integration. There's a longer write-up on the plumbing at can I push AI-scored roofing leads into my CRM automatically, and the integration options are listed at Roofbird CRM integrations.

One honest note on pricing shape, since it comes up: a CRM seat is a seat. JobNimbus pricing explained covers the tiers and what a seat does and doesn't buy you. A seat doesn't buy you a roof read, and it never will, because that's a different kind of data.

What this costs

Roofbird runs on one meter: credits. Looking is free, acting costs.

  • Free trial: 10 credits, no credit card, no expiry.
  • Hunter $199/mo: 350 credits a month, top-ups $25 buys 37.
  • Hunter Pro $499/mo: 1,000 credits a month, top-ups $25 buys 50.

Free on every plan including the trial: asking, searching, sorting, saving lists, and scanning new ground and ranking every roof in it, at any size. Unlimited service areas.

Credits are spent on reading a roof properly — both photographs, from above and from the road, plus the property record in one go, 1 credit per 8 roofs; owner name, phone and email, 1 credit per 2 roofs; opening a house completely, 1 credit. Nothing is gated by plan. The only difference between tiers is how many doors a month you can open. Never per lead. Full breakdown at Roofbird pricing and what a credit buys.

Next steps

  1. Export 200 addresses from your CRM — the ones you haven't touched in a year. Don't overthink the selection.
  2. Score them. You can score the leads already in your CRM rather than starting from a map. Scanning the ground costs nothing, so the first pass is free.
  3. Sort by NOW, then NEED. Ignore anything the read labels as already re-roofed or wrong material for your shop. Knowing which quarter of a street is dead is worth as much as knowing which quarter is hot.
  4. Call the top 20 with a manual dial. The pitch is on the card: the condition, the neighbour comparison, the "why now" line.
  5. Push the live ones back into the CRM as new leads with the roof read attached, so the relationship record stays the system of record and the scoring stays upstream of it.

If you want to see what a scored area looks like before you connect anything, there's a live scored area you can look at without signing up.

FAQ

Q: Does Roofbird replace my roofing CRM? A: No. JobNimbus, AccuLynx, Roofr and Leap stay as the system of record for relationships, jobs, documents and pipeline. Roofbird is the layer upstream that reads roof condition from imagery and ranks the addresses you already have, so you know who to call before anything enters the CRM.

Q: Why can't I just add a roof condition field to my CRM? A: You can, but a human has to fill it in, and it goes stale the moment the pipeline gets busy. Stale condition data is worse than none, because it's a confident wrong answer. Reading the roof from imagery keeps the value current without anyone driving past the house.

Q: What can be added to an address without sending anyone to the door? A: From imagery: roof material, condition against neighbours, estimated roof age, wear signs, squares, pitch, active damage, and features like dormers or solar. From public records: owner name, occupancy, value, year built, last sale, beds and baths, lot size, taxes, lender, and an equity estimate. From a DNC scrub: whether a phone number is clear, DNC, or unverifiable.

Q: Are the phone numbers safe to call? A: Every number is DNC-scrubbed and labelled. "Clear" means it was checked against the federal Do Not Call registry and is safe for a manual sales call. "DNC" means don't call it. "Verify" means the scrub couldn't confirm either way, so treat it as unknown. Manual dialling only, never texting or auto-dialling.

Q: Does neighbourhood hail raise the urgency score? A: No, deliberately. Every home in a scan shares the same neighbourhood hail, so it can't separate one door from the next. Hail belongs in the pitch, not the ranking. NOW is raised only by something specific to that house, like a tarp, missing shingles, a recent purchase, or neighbours who have already re-roofed.

New in Roofbird

Now with the homeowner's contact details on every lead

Finding the roof is half the job — you still have to reach the owner. Roofbird now unlocks the homeowner's name, phone, email, and mailing address on any lead, every phone DNC-scrubbed so you know who's safe to call, plus whether they're an owner-occupant or an absentee owner. No skip-tracing tools, no bought lists: find the roof, get the owner, call or mail the same day.

Written by

Jake Thompson

Roofbird

Have a question about anything in this post? Reach the Roofbird team at support@roofbird.ai.

Try Roofbird — 10 free leads in your area

See a sample dashboard for DFW first, no signup needed. Trial loads 10 free pre-scored leads in your own service area.

Related reading