Projects / Roofing CRM
A Product-First Approach to Roofing Workflow Management
Priority Roofing ran its entire operation across QuickBooks, Roofr, and a stack of Excel sheets, none of which talked to each other. We designed and built a single CRM that carries a job from a knock on the door to a paid commission.
- Company
- Priority Roofing (USA)
- Timeline
- Jun 2024 - 8 weeks
- Team
- Developers, Stakeholders, Tester, Product Designer

THE OUTCOME, UP FRONT
One system now carries every job from the first door-knock to the final commission, the spreadsheets, the drift, and the dead-ends between tools, gone.
3 → 1
disconnected tools collapsed into one source of truth
100%
off spreadsheets for Back Office & PM teams
40%
faster job coordination, handoff to first action
A growing business where no system owned the whole job
As the sole product designer on this project, I led research, information architecture, and UI design; developers built to spec. “We” below refers to the wider project team on the decisions we made together.
Priority Roofing is a residential and insurance roofing contractor operating in the United States. Their business runs the full trade cycle, canvassing neighborhoods for storm and replacement work, estimating and closing homeowners, ordering materials, dispatching crews, passing inspections, and settling insurance claims and rep commissions. As volume grew, that operation outpaced the tools running it. A single job's truth was scattered across disconnected software, each good at one slice of the work, none aware of the others, plus whatever lived in someone's head. No one place could tell you where a job actually stood.
Quickbooks
Accounting & finance
Customer records, invoicing, the financial book of record.
No operational data and no idea a job had a lifecycle, it saw money, not work.
Roofr
Sales & estimating
Roof measurements, proposals, and homeowner invoices.
Stopped at the sale. Nothing carried a won job into production.
Excel
Everything operational
Material orders, crew scheduling, crew & office fees, PM assignments, audits, commissions, draws.
Manual, unlinked, and unreadable to anyone but its author, one tab out of sync broke the job.
“QuickBooks knows the customer. Roofr made the proposal. Everything in between lives in a spreadsheet only one person can read.”
No system owned the whole job
The tools weren't the problem, the seams between them were. Every handoff meant re-keying the same job into another system, and every gap between tools was patched by hand. Four fault lines showed up again and again.
Three systems, one job
The customer lived in QuickBooks, the proposal in Roofr, and everything that moved the job in Excel. No system held the whole picture.
Re-keyed at every handoff
The same job was typed into each tool in turn. Numbers and addresses drifted apart, and no version was authoritative.
No modeled lifecycle
Nothing represented the real sequence a job moves through, so status was a manual guess maintained in a spreadsheet column.
Field work was invisible
Canvassing and new leads lived on paper and phones, disconnected from the pipeline until someone re-entered them by hand.
Following a job, not an org chart
Before designing a single screen, I traced one job end-to-end and sat with every role that touched it. The goal was to map how work actually moved from role to role and where it fell into the cracks between systems.
WHO THE WORK RUNS THROUGH
3 personas

Diego Alvarez
Sales Rep · canvassing → close
- Age
- 29
- Location
- Dallas, TX
- Tools
- Roofr, phone, texts
- Tech
- High, phone-first
Three years canvassing storm-damaged neighbourhoods. Builds the proposal in Roofr on a tailgate, gets the signature, and hands the job off to whoever picks up the phone. Once it leaves him there is no record he can open, so when the homeowner calls a week later he calls the office to find out what happened.
MOTIVATIONS
- Commission is the job, and it only pays on a completed install
- Referrals come from homeowners he kept informed
- Wants to be the rep the office never has to chase
GOALS
- Turn a door-knock into a signed job without typing it twice
- Confirm a closed deal actually reached production
- Answer a homeowner's status call without phoning the office
FRUSTRATIONS
- The Roofr proposal, the QuickBooks customer and the Excel row never match
- No signal when a signed job stalls after handoff
- Commission is a spreadsheet he cannot see until payout day
“I close it, and then it disappears. The next thing I hear is the homeowner asking me when the crew is coming.”
STAKEHOLDER SESSION
3 roles · 9 questions
I sat with each role and walked their actual day rather than a documented process, anchoring every session on a few core questions about how work really moved.
Sales Reps
Canvassing → close
- How does a door-knock or a lead actually become a job in the system?
- After you close, how do you know it moved into production?
- Where do you look when a homeowner calls for a status update?
Back Office
Materials, audits, commissions
- Walk me through everything you touch after a job is submitted.
- What still lives in a spreadsheet that no tool holds for you?
- How do commissions and draws get calculated and paid out?
Project Managers
Scheduling, crews, inspection
- How do you decide which job to schedule and which crew to send?
- When a job stalls between tools, how do you even find out?
- What would you need to see the moment you open a job?

A job never lived in one place, it lived across three
Every role kept a private mental map stitching the QuickBooks customer to the Roofr proposal to the right Excel rows. Any absence or staff change tore a hole in that map instantly.
The seams, not the tools, were the failure
Each tool did its job well in isolation. The cost was every handoff between them: manual re-entry, drift, and no way to trust that any record was current.
Every role touched the same job through a different lens
Reps needed lead and status context; PMs needed crews and materials; back office needed audits, invoices, and commissions. One job, but no shared view of it anywhere.
THE GUIDING QUESTION
What if a job had one home from the first knock on the door to the last commission paid?
Decide what to own, what to keep, what to kill
The biggest early decision wasn't a screen. It was scope. Ripping out the whole stack at once would have been a political and financial fight we'd lose. So we drew a clear line around what the CRM would own.
QuickBooks as the financial book of record
The team trusted it and the accountant depended on it. Replacing it would start a fight we didn't need to win, so we sync from it instead.
Roofr's post-sale gap and the Excel stack
Roofr ended at the proposal; Excel patched everything after. The CRM absorbs the entire operational middle, the part no tool truly owned.
The job lifecycle, from lead to commission
One record the whole company reads the same way, carrying a job through every phase and role without ever leaving the system.
One record, many lenses
A single job object, presented differently to each role, never duplicated across tools.
Sync finance, own ops
Read customer and money from QuickBooks; own every operational service the business runs on.
Model the lifecycle
Store the real sequence a job moves through, not just a bag of fields. Structure is the feature.
Start in the field
Capture leads where they happen, canvassing and the map, so the pipeline begins at the first knock.
THE CALL THAT SHAPED IT
Sync from QuickBooks, don't replace it
It was the trusted source for money → keep it read-only, own everything else.
Make the job the atomic unit
"A job" was reassembled by hand from three tools → one object now carries it all.
Begin the pipeline in the field
Leads were captured on paper, re-entered days later → now trackable from the door.
Split people out as their own group
Crews and suppliers were duplicated inside every job → now defined once, referenced everywhere.
One continuous path: knock to commission
The modules aren't a menu, they're a route. A lead enters in the field and leaves as a paid job, and every handoff between roles happens inside the same system. Four phases, each owned by the people who do the work.
- 1
Lead captured in the field
SALES REPA rep logs a door-knock or inbound lead where it happens, it lands on the map, not a notepad.
CanvassingMap - 2
Prospect created
SALES REPThe lead becomes a tracked prospect, with contact and property details attached to a real record.
ProspectsContacts - 3
Prospect progresses through status
SALES REPThe prospect moves through its pipeline, Contacted, Appointment Set, Inspection Complete, Proposal Sent, as a single status change, no request or paperwork re-entered at each step.
Prospects - 4
Job Won → sent to submittal
SALES REPThe moment status flips to Job Won, the prospect is automatically routed into job submittal for review, it doesn't become a job on the rep's say-so alone.
Prospects - 5
Back office verifies & approves
BACK OFFICEBack office checks the submittal against contract and scope; on approval, the prospect converts into a live job with its own number and Job Cycle.
Jobs - 6
Materials ordered
BACK OFFICEPurchase orders go to the right supplier and manufacturer, raised from inside the job so spend stays tied to it.
Material OrdersSuppliersManufacturers - 7
Production scheduled
PROJECT MANAGERAn install date is committed on the calendar and any required permits are pulled and tracked.
SchedulesPermits - 8
Crew dispatched
PROJECT MANAGERA crew is assigned and sent, defined once in the People group and reused across every job.
Crews - 9
Materials audited
BACK OFFICEDelivered material is verified against the order before a crew ever starts the work.
Job Cycle - 10
Work order audited & inspected
PROJECT MANAGERScope and crew work are confirmed, then a final inspection signs off on quality.
Job Cycle - 11
COC generated & invoiced
BACK OFFICEThe Certificate of Completion is issued and the job is invoiced, reconciling against QuickBooks.
Invoices - 12
Commission & draws settled
BACK OFFICEThe rep's commission is released and any 7% draws taken along the way reconcile automatically.
Final Commissions7% Draws
Seventeen modules, three groups, one job at the center
The architecture follows how the business thinks, not how software is usually organized. The navigation splits into three groups, the daily work, the money, and the people, each pointing back to the job.
Every spreadsheet became a first-class module
Material management was the heaviest lift. Inventory, purchase orders, and reconciliation all ran by hand across tabs. Alongside fees, sales reps, PMs, and territory, each spreadsheet was replaced by a structured module tied back to the job.
Prospects: everything before a job exists
A Prospect is the module for the whole Acquire → Qualify stretch, from a captured lead through status changes to Job Won. It's the busiest screen for Sales Reps and the gate Back Office checks before a submittal becomes a real job.
The Job Cycle: a pipeline everyone reads the same way
Every job runs on an eight-stage pipeline pinned to the top of its record. It replaced the Excel status column no one trusted: the current stage is unmistakable, each stage has a clear owner, and "Next Step" is a first-class field instead of something you deduce.


The money moves with the job
QuickBooks stays the book of record, but the operational money that used to live in Excel (commissions, draws, and material spend) now sits inside the CRM, tied to the job that generated it.




Decide it once, not again on every screen
I built the design system to create a shared foundation for the product and reduce the time spent solving the same design problems across screens. Reusable components, patterns, and tokens helped me streamline repetitive tasks while keeping the experience visually consistent and making it easier to maintain as the product evolved.
It also improved how I worked with developers and stakeholders. With clearly defined components, variants, and usage guidelines, I could communicate design decisions more clearly and hand off work with less ambiguity. This created better alignment between design and development, reduced inconsistencies, and made future changes much more efficient to implement.
Before it shipped company-wide, we asked the team if it actually worked
A system this central to daily work couldn't be judged on adoption metrics alone. Ahead of the full rollout, we ran a structured pilot with the three roles that live in the CRM every day, then used what came back to decide what shipped as-is, what got reworked, and what got cut before it reached everyone else.
Executive summary
Priority Roofing's operations ran on three disconnected tools patched together by spreadsheets no system owned. I traced one job end-to-end, audited the stack, and evaluated four off-the-shelf CRMs before concluding a focused custom build was the only option that could absorb the team's real workflow. We shipped a pilot to the three roles that touch a job daily, measured confidence and trust before and after, and used that evidence, not just our own conviction, to greenlight the full rollout.
Before and after a two-week pilot, we asked every Sales Rep, Project Manager, and Back Office user to self-rate four things, 1-5. The gaps told us where the design was working and where it wasn't.
Job status confidence
Commission Trust
Self-serve info
Daily comfort
All four metrics rose sharply, led by trust in commission numbers and self-serve access to job info.
These were the biggest drivers of the coordination-speed gains below. Daily comfort moved the least, the one gap the rollout plan addressed directly.
“I stopped keeping my own tracker. If it's not in the CRM, I don't trust it, and now everything is in the CRM.”
Jack Cella
Back Office Lead
Three tools became one, and the work became visible
The spreadsheet dependency that patched every gap between tools disappeared. For the first time, a job's whole life (lead, production, and money) was legible to everyone who touched it.
3 → 1
tools replaced by one system, QuickBooks synced, Roofr's gap and Excel retired
100%
reduction in spreadsheet dependency across Back Office & PM teams
40%
faster job coordination, from Sales handoff to first Back Office action
min → sec
to locate a contract, scope, or crew inside the job record

