Quick start
Two steps, about three minutes
Sign up at betterroofing.co/signup with email or Google. No credit card, and your 14-day free trial starts immediately. A short setup wizard opens the first time you reach the dashboard.
Pricing
Business info
That's the wizard. Everything in it can be changed later, and the rest of your setup — waste factor, tear-off, pitch, booking, notifications — has sensible defaults until you get to it.
Going live
Put the estimator on your website
Check the rest of your pricing
Decide what happens at the end of an estimate
Work the leads
The Getting started checklist
Until your first lead arrives, your Overview leads with a five-item checklist instead of a page of zeros: set your pricing, add your business info, install your widget, show Good/Better/Best pricing, and get your first lead. Pricing and business info are already ticked — the setup wizard is how you got here.
Each unfinished item links straight to the page that finishes it. Hide the checklist with the ✕ in its corner; that choice is remembered in that browser. Once your first lead lands, the checklist gives way to your actual work and doesn't come back.
Finding your way around
The sidebar holds your everyday pages at the top — Overview, Jobs, Calendar and Analytics — and an Instant estimates group below it with Pricing, Locations and Install widget.
Settings, Team, Billing and Sign out live in the account menu: click your company name at the top of the sidebar.
On a computer, Collapse at the bottom of the sidebar shrinks it to icons and gives the jobs board more room. Click it again to expand. The choice is remembered in that browser. On a phone the sidebar is a drawer behind the menu button and always opens at full width.
Team members don't see Pricing, Locations, Install widget, Settings or Billing — see Team access.
Install widget
Three styles, same leads
Dashboard → Install widget is one page: pick a style, see it running in a live preview beside your own settings and pricing, then choose how the code gets onto your site.
All three capture exactly the same thing: name, email, phone, property address, roof measurements, material preference, insurance situation and the estimate they were shown. You can run more than one at a time; they don't conflict.
Three ways to get it live
I'll paste the code myself
Copy your snippet and paste it into your site. The platform guides below cover WordPress, Squarespace, Wix and hand-written HTML.
Email it to my web person
Copies a ready-written email — what you're asking for, your snippet, and where it goes — to paste into Gmail, Outlook or anything else.
Just give me a link to share
Your permanent direct link. No code, no website needed. See the direct link.
Is it actually live?
The install page shows the widget's real state, and so does your Overview. It's based on the widget itself checking in from your site, not on guesswork:
The preview on the install page and the /embed link never count as a check-in — they run on our domain, not yours.
The embed snippet
Go to Dashboard → Install widget to copy your personal snippet. It looks like this:
<!-- BetterRoofing Widget --> <div id="roof-estimator"></div> <script src="https://app.betterroofing.co/widget.js" data-contractor-id="YOUR_ID" async ></script>
Paste it before the closing </body> tag on any page you want the estimator to appear on.
Platform guides
WordPress
- 1.Install the "Insert Headers and Footers" plugin (free)
- 2.Go to Settings → Insert Headers and Footers → Scripts in Footer
- 3.Paste your snippet and save
- 4.Or add a Custom HTML block anywhere on a page
Squarespace
- 1.Go to Settings → Advanced → Code Injection
- 2.Paste your snippet in the Footer section
- 3.Or add a Code Block to any specific page
Wix
- 1.Go to Settings → Custom Code
- 2.Click Add Custom Code
- 3.Paste your snippet, set location to "Body - end", apply to the pages you want
Custom HTML
- 1.Place <div id="roof-estimator"></div> where you want the widget
- 2.Paste the full snippet before </body>
- 3.The widget renders in a self-sizing iframe, so it cannot clash with your CSS
What the homeowner goes through
One question at a time, not a multi-step form. Each screen asks a single question with large, tap-friendly cards, and most answers advance on their own. A homeowner sees four steps:
Between material and contact there's a roof size and slope step, which fills itself in and skips past when the satellite measurement is good enough — see how the estimate is worked out.
AI chat bot
What it does
A round chat bubble pinned to the bottom-right corner of every page on your site. Instead of filling out a form, homeowners chat their way to an instant estimate — the most familiar, lowest-friction way to turn a visitor into a lead. This is the default choice in Dashboard → Install widget.
It captures the same lead data as the other two styles — name, contact details, address, material, insurance situation and the estimate — just through a conversation instead of tap-through cards. Chat leads show as Website chat in your dashboard so you can tell them apart.
The snippet
Go to Dashboard → Install widget, select AI chat bot, and copy your personal snippet. It's a single line:
<script src="https://app.betterroofing.co/chat-widget.js" data-contractor-id="YOUR_ID" async ></script>
Paste it in your site-wide footer, just before the closing </body> tag, so the bubble appears on every page rather than one.
WordPress: "Insert Headers and Footers" plugin → Scripts in Footer.
Squarespace: Settings → Advanced → Code Injection → Footer.
Wix: Settings → Custom Code → Body end → All Pages.
Custom HTML: before </body> in your global layout, so it loads everywhere.
No website? The direct link opens straight into the same chat and needs no install.
Floating tab widget
What it does
An orange "Get Instant Estimate" button pinned to the edge of every page on your website. Homeowners see it wherever they are on your site, and clicking it slides the estimator in without taking them off the page they were reading.
You can run both at once. They don't conflict.
The snippet
Go to Dashboard → Install widgetto copy your personal tab snippet. It's a single line:
<script src="https://app.betterroofing.co/tab-widget.js" data-contractor-id="YOUR_ID" async ></script>
The key difference from the embed widget: paste this in your site-wide footer, not one page, so the tab loads everywhere.
WordPress
- 1.Install the "Insert Headers and Footers" plugin (free) if you haven't already
- 2.Go to Settings → Insert Headers and Footers → Scripts in Footer
- 3.Paste your snippet and save. It appears on every page automatically
Squarespace
- 1.Go to Settings → Advanced → Code Injection
- 2.Paste your snippet in the Footer section
- 3.It appears on every page of your site automatically
Wix
- 1.Go to Settings → Custom Code
- 2.Click Add Custom Code and paste your snippet
- 3.Set location to "Body - end" and apply to "All Pages"
Custom HTML
- 1.Paste your snippet before the closing </body> tag in your global layout or template file
- 2.Because it is in the layout, it loads on every page automatically
Optional customisations
Two optional settings you can add to the snippet.
Change the tab label
By default the tab says "Get Instant Estimate". Add data-tab-text to change it.
<script src="https://app.betterroofing.co/tab-widget.js" data-contractor-id="YOUR_ID" data-tab-text="Free Estimate" async ></script>
Move the tab to the left side
The tab sits on the right edge by default. Add data-position="left" to move it.
<script src="https://app.betterroofing.co/tab-widget.js" data-contractor-id="YOUR_ID" data-position="left" async ></script>
Direct estimate link
A link that needs no website
Every BetterRoofing account includes a permanent link straight to your estimator. Anyone who clicks it lands on it. No install, no website required.
Find yours under Dashboard → Install widget → Just give me a link to share. Copy it with one click.
Where to put it
Email signature
Hyperlink it on text like "Get a free instant estimate". Every prospect you email can price their roof without a phone call.
Text message
Paste it in a text to a homeowner you're already talking to. They click, get an estimate, and the lead lands in your dashboard instantly.
Social and Google Business
Your Instagram bio, Facebook page, or Google Business profile. It works anywhere a URL can go.
QR code
Paste the link into any free QR code generator and print it on door hangers, yard signs or truck magnets, so homeowners can scan and get an estimate on the spot.
Pricing & the estimate
How the estimate is worked out
When a homeowner picks their address, we measure the roof from satellite data. Where the measurement covers the actual roof surface, that figure is used as-is. Where it only gives the building's footprint, the footprint is multiplied by the pitch multiplier for that roof's steepness. If neither is available, the homeowner is asked for their home's square footage and roof slope, which is the step you'll see skip past on most addresses.
From there the arithmetic is yours, and it's deliberately simple enough to check by hand:
squares × your price per square × your waste factor, plus your tear-off cost, then shown as a range from 10% under to 10% over, rounded to the nearest $100.
A square is 100 sq ft. Nothing else is added, no fee is taken out of it, and the number the homeowner sees is recalculated on our side before it's stored on the lead — so what's in your dashboard is always what your own settings produce.
Roof types and price per square
Dashboard → Pricing. Turn on only the roof types you install — the ones you turn off never appear for homeowners to choose. Each enabled type carries its own price per square (your labour and material rate per 100 sq ft).
Waste factor and tear-off
Waste factor
A multiplier covering cuts, overlaps and leftover material. Typical values run 1.10–1.20 (10–20% waste). It applies to the material and labour, before tear-off.
Tear-off cost
A flat fee added to every estimate to cover removing the existing roof. Set it to $0 if your price per square already includes tear-off, or you'll charge for it twice.
Roof pitch multipliers
A steeper roof has more surface than the footprint underneath it. These four multipliers turn a measured footprint into roof area, and they only come into play when the satellite data gave a footprint rather than the roof surface itself. The defaults are the industry-standard figures:
Change them if your market runs differently, or leave them alone — most contractors never touch these.
Good / Better / Best pricing tiers
Instead of one price per roof type, show the real products you actually sell — your own product names at your own prices — so a homeowner picks a tier rather than staring at a single number.
Turning it on
Dashboard → Pricing, toggle Show Good/Better/Best pricing tiers. For each roof type you offer, add up to 3 product options (for example "GAF Timberline HDZ" at $425/sq), each with its own price per square.
Minimum to activate
A roof type needs at least 2 product options before tiers show for it. With fewer than 2 it keeps showing a single price, exactly as before, so turning the toggle on can never blank out a roof type.
Which one is highlighted
With three options, the middle one is badged Most popular and selected by default. With two, the first is. The homeowner can switch between them and the estimate updates as they do; whichever they had selected when they submitted is recorded on the lead.
Use your real product names, not generic labels. The point is that homeowners see exactly what you'd quote them in person.
Savings vs. the typical price
An optional toggle on Dashboard → Pricing. When it's on, the result screen can show a crossed-out typical market quote and a savings badge next to your estimate.
It only appears when the saving is real. The comparison is built from typical market rates per square, never as a markup on your own number, and the line is suppressed entirely when your price doesn't genuinely beat the market rate or when the difference is small enough to read as rounding. With tiers on, it's checked against whichever tier the homeowner has selected, so switching to your top product doesn't carry a savings claim that stopped being true.
The monthly payment line
Another optional toggle on Dashboard → Pricing: an illustrative "as low as $X/mo" line under the price range, which is often the difference between a homeowner calling and a homeowner closing the tab.
APR
The annual rate to base the payment on. Default 9.99%.
Term (months)
How long the illustrative loan runs. Default 60 months.
Markup (%)
Optional. Added to the financed amount only, for dealer fees. It never changes the cash price the homeowner is shown.
This is an illustration, not a financing offer, and BetterRoofing doesn't lend or arrange credit. The payment is a standard amortised calculation off the low end of the range.
Inspection booking
Under Account menu → Settings → Inspection booking, choose what a homeowner sees at the end of their estimate. New accounts start with this off.
A homeowner who books here gets the same confirmation email and day-before reminder as an appointment you book yourself, and you get an email the moment it lands. The job moves to Inspection, and the calendar marks it Booked online.
A window is a window, not an exact hour — you confirm the time when you call. Self-bookings also show as their own step in your funnel.
Service locations
What service locations do
Service locations define exactly where you work. When a homeowner enters their address, we measure the distance to your nearest location. If they're outside your radius, you control what happens next.
With no locations configured, every lead is accepted wherever the homeowner is. Add at least one location to turn filtering on.
Dashboard → Locationsmanages them. Add as many as you run; there's no cap and no extra cost per location.
Adding a location
Location name
A label for your own reference — "Austin HQ", "Dallas office". Never shown to homeowners.
Address
Your office or shop. Type it and pick from the autocomplete, which pins the exact coordinates used for distance.
Service radius (miles)
How far out you'll travel from that address. The default is 50 miles.
Leads are checked against your nearest location, so overlapping radii are fine if you run more than one office.
Out-of-area behaviour
Choose what happens when a homeowner falls outside all of your radii:
A flagged out-of-area lead is silent.No contractor email, no webhook, and no Autopilot sequence — the homeowner is never contacted automatically for a job you may not take. It's stored in your dashboard for you to review, and it's left out of the Needs follow-up cards.
You can switch between the two at any time, and the change takes effect immediately.
Lead pipeline
The pipeline, in the order a job is worked
Every job sits in one column, and the drawer's Pipeline row is where you move it. The first four are the sale; the last four are the job you sold. Click a column to move the job into it — status and production stage are one row, not two separate controls.
Just came in, not contacted yet.
You’ve reached out by email, text or phone.
The roof inspection is booked or done.
You’ve sent or presented a formal quote.
Signed and won, not scheduled yet.
On the books with an install date.
The work is done and you’re waiting to be paid.
Money in. The job is finished.
Moving a job into Sold (or straight into Scheduled) asks for the contract value. Once a job is won, its contract value sits in the Pipeline row where you can edit it without moving the job.
Lost is separate: Mark as lost sits under the columns rather than in them, so losing a job is a deliberate act and not a mis-drag. A lost job leaves the board entirely; pick any column in its drawer to reopen it.
Every move is saved instantly and lands on the job's timeline with your name on it.
Board view and how cards age
Switch the Jobs page from List to Board to see every open job as a card in its column. On a computer, drag a card to another column. On a phone, tap the job and move it from its drawer. Lost jobs stay off the board; find them under Lost in the list.
Each card shows how long the job has sat in its column, with a dot that's green while it's fresh, amber when it's getting old and red when it's overdue for a nudge. The limits are fixed rather than a setting:
Any move restarts the clock, including the ones that happen without you: sending a quote moves the job to Quoted, and the homeowner signing it moves the job to Sold. Each column's header adds up its cards — contract values once a job is won, estimate ranges before that.
A job whose last move happened before BetterRoofing started recording moves shows no clock until it moves again.
Adding a job by hand
Not every job comes through your website. Add job on the Jobs page covers the ones that came from a phone call, a referral, a door knock or a repeat customer. All it needs is a name, a phone number or email, and the property address — and you can record which of those it was, so your reporting knows the difference between a website lead and a referral.
Jobs added by hand don't trigger new-lead emails, webhooks or AI Autopilot, and they have no instant estimate, since nothing measured the roof. Price them with Build & send quote, where you enter the roof size yourself. Fix a name, phone number or email any time with Editin the drawer's Contact section.
Needs follow-up
Your Overview shows four cards for who to call next. Click one to open the Jobs page filtered to exactly those jobs; click the Showing chip there to clear it.
New, not contacted
Jobs still in New, with what their estimates add up to and how many have waited 3 days or more.
Quote not opened
Quotes you've sent that the homeowner hasn't opened since, with their total and the oldest send.
Opened, not signed
Quotes they've looked at but not signed, with their total and the latest open. Highlighted whenever there are any: these are the calls to make first.
Going stale
Jobs whose board card has gone red, past their column's limit, and which columns they're in.
Out-of-area jobs are left out. A quote sent before BetterRoofing started tracking opens never counts as not opened.
Revenue and close rate
Marking a job won asks for the actual contract value, pre-filled with the midpoint of its estimate so it's one keystroke when the estimate was right. Enter the signed amount to track real revenue rather than estimates. It's optional — Skip marks the job won without a figure.
Both update the moment you move a job, and a signed quote fills in the contract value for you.
Exporting to CSV
Export CSV above your jobs table downloads every job with full detail: name, address, estimate range, material, insurance status, source, status and timestamp. It exports everything, not just the rows on the current page — useful for importing into another system, building a mailing list, or keeping your own records.
Working a job
The job drawer
Click any job — in the list, on the board, or in Recent jobs — to open its drawer: a full-height side panel holding everything about that job, in the order you work it.
- →Contact — email, phone and one-tap Call, Email and Text buttons. Edit fixes a name or number.
- →Drafts — the AI email and text, loaded into those buttons. See Drafts.
- →Pipeline — where the job is and where to move it.
- →Quote — build, send or view the quote, with the instant estimate underneath it.
- →Insurance — carrier, claim and adjuster details.
- →Tasks, Appointments, Photos & documents.
- →Notes & activity — the timeline, last because it only grows.
Notes & activity
Type a note — what you talked about, the next step, the gate code — and it's saved with your name and the time, visible to everyone on your team. Cmd/Ctrl+Enter saves it.
The timeline also fills itself in: when the lead came in or who added it, every move along the pipeline and who made it, quotes sent, opened and signed, tasks added and completed, appointments booked, moved and cancelled, files added and deleted, insurance details changed and which fields changed, and every Autopilot email that went out.
Tasks and the Today list
Every job has a Taskssection for the next thing to do: call back Tuesday, order shingles, send the contract. Give each one a due date, and a time if it matters. Check it off when it's done, tap its date to reschedule, or delete it.
Your Overview opens with Today: every open task due today or overdue, across every job, each linking straight to its job. Due dates follow your time zone, which is set from your browser automatically and can be changed under Settings.
Insurance claim details
Every job's drawer has an Insurancesection. Set the job to Out of pocket, Insurance claim or Unsure — a website lead starts with whatever the homeowner picked. For a claim, record the carrier, claim number, the adjuster's name, phone, email and meeting time, plus the deductible, RCV, depreciation and ACV from the carrier's paperwork.
Every field is optional, and BetterRoofing never calculates any of them: the carrier's paperwork is the source of truth and we won't quietly disagree with it. Each save goes on the timeline naming which fields changed and who changed them, and the adjuster meeting shows on your Calendar.
Calendar & appointments
Book inspections, install days and anything else with a time from the Appointmentssection of a job's drawer. Give it a date, a start and end time (or leave the start blank for an all-day booking) and any notes. Each appointment has a Google Calendar link and an .ics download for Apple Calendar or Outlook, so it lands in the calendar you already use.
The Calendar page shows your week at a glance: every appointment, plus adjuster meetings from your insurance claims, each linking to its job.
The homeowner is kept in the loop automatically — a confirmation when you book, a note if the time moves or you call it off, and a reminder the day before. It goes out under your company name, replies come back to you, and a calendar file is attached so they can add it to their own phone. Jobs with no email address are skipped. Untick Email the homeowner when booking to keep one visit quiet, or switch it off for the whole account under Settings.
Photos & documents
Keep everything about a job on the job: roof photos from the site, the signed contract, the insurance paperwork. Open the drawer and use + Photos — on a phone it offers the camera too — or + Document for PDF, Word, Excel, CSV and text files up to 25 MB. On a computer you can drag files onto the section.
Photos are resized on your device before they upload, so a batch from the roof goes up quickly even on a weak signal, and the location data your phone writes into each photo is stripped out before it leaves. Tap a photo to see it full size and swipe through the rest.
Files are private to your team: never public, and every link to one expires after an hour. Each account has 10 GB, roughly 20,000 photos, and the drawer shows how much you've used. Adding and deleting files go on the timeline, and a deleted file is gone for good.
The instant estimate
Branded estimate PDF
Estimate PDFin the job drawer generates a branded PDF in one click: property address, satellite image, the estimate range, a what's-included checklist, and a booking call-to-action if you take bookings. It carries your company name only, with no BetterRoofing watermark. Jobs you added by hand have no instant estimate, so they have no estimate PDF either — quote those instead.
Shareable estimate link
Copy estimate link gives you a unique /estimate/{token}URL you can text or email so the homeowner can pull their estimate up themselves — good for the "show your spouse" conversation. Your name and booking option stay front and centre on the page.
This is the original automatic range. For an itemised document the homeowner can review and sign, see Build & send a quote. Once you've sent a quote, that's what they price off — the estimate stays available underneath it as the range that came before.
Build & send a quote
Building a quote
Open Build & send quote
Add line items
Set discount, tax and deposit
Add your terms
Sending and sharing
Changes save as you type. When you're ready, click Send quote and we email the homeowner the full quote plus a link to their own quote page. Copy link shares it another way instead. Sending moves the job to Quoted, unless it's already further along or closed.
You can keep editing and resend as many times as you need, right up until the homeowner signs.
Seeing when a quote is opened
Once the homeowner opens their quote page, the job shows Quote openedon the board and in the list, and the drawer says how many times they've opened it and when they last did. That's your cue for a follow-up call. The first open after each send also goes on the timeline.
Opens by you or your team don't count, and a quote you resend shows Quote sentagain until they open the new version. There's no email alert for an open — check the board, the list or the drawer.
Some email security scanners open links automatically. Most are filtered out, but an open within seconds of sending may be one.
Signature & acceptance
On their quote page, the homeowner reviews everything, types their full name, draws a signature and clicks Sign & accept.
You're told immediately
An email with their name and the total the moment they sign, so you're not refreshing the dashboard.
The quote locks
Pricing, line items and terms can't be edited once signed, so the record always matches exactly what was agreed.
The job moves to Sold
Signing marks the job won with the signed total as its contract value. If you'd already marked it won, your status and contract value stay as they are.
View the signed copy
Who signed and when shows in the drawer. View signed quote there, or the button in your email, opens the full quote with the signature. Download PDF saves a copy for your records, with the signature and when and from what IP address it was signed.
If you set a deposit, the homeowner sees a note about it after signing — BetterRoofing doesn't collect payment, you follow up directly. If the valid-until date has passed, they see an expired notice instead of the signing form.
AI drafts & reports
Email & text drafts
In a job's drawer, Write email & text draftswrites both at once from that job's own details — name, address, estimate range, material and insurance situation — and loads them into the Email and Text buttons above it. Click either one and your mail or messaging app opens with the draft already in it.
Drafts are generated on demand and then cached, so clicking a second time returns the saved copy instantly with no wait. Read them, change anything you want, and send. They're drafts — nothing is sent for you.
These are copy for you to send, not analysis of the lead. Everything they know is already on the screen in front of you.
Weekly intelligence report
Every Monday morning we write a plain-English summary of last week's pipeline. It lands in your inbox and sits on your Overview, and it covers:
- →Leads received and average estimate value for the week
- →Which lead types dominated — insurance claims trending up, metal roofing interest, and so on
- →Specific jobs that haven’t been contacted and may need a nudge
- →What your service area looked like, including out-of-area patterns
- →One prioritised recommendation for the week ahead
The card is collapsible — click the header to expand it — and past reports stay in your dashboard. Your first one arrives the Monday after your first lead.
AI Autopilot
What AI Autopilot does
Autopilot follows up for you. When a homeowner submits an estimate request on your website, it sends them a short sequence of emails if they don't respond — each one written from that lead's own details, not a template with their name pasted in.
Your Overview header always says whether it's on or off, so it never runs without you knowing.
The sequence
Every message gives them somewhere to go.Each one carries a link to the homeowner's own estimate page, and asks for whatever that page can actually do: a booked arrival window if you take bookings here, your scheduling link if you use your own, or a call to your number if you've set one.
It won't invent a reason to hurry.BetterRoofing doesn't know your schedule, your crew or your lead times, so no message claims your calendar is filling up or that prices are about to rise. The only deadlines it may mention are the 30 days your estimate is valid for, and the claim window the carrier sets on an insurance job.
Quote-aware. If you send an itemised quote before a step goes out, that step and every one after it stops repeating the ballpark range and points the homeowner at reviewing and signing the quote you sent.
It stops itself.The moment you mark a job won or lost, or the homeowner signs a quote, the remaining steps are cancelled. You will not follow up with someone you've already closed.
Emails go only to website leads, never to jobs you added by hand, and never to a lead flagged out-of-area.
Turning it on
Open your settings
Toggle AI Autopilot on
That's it
Compliance & opt-out
Follow-up emails carry an unsubscribe note in the footer. If a homeowner asks you to stop, mark the job Lost in your dashboard — that stops the sequence immediately.
Notifications
New lead emails
Set a notification email under Account menu → Settings → Lead notification email. You get an email the moment a lead submits, with everything you need to decide who to call first.
Subject: New lead: Sarah M. · $10,200 – $12,400 · Insurance claim
Body: the full profile — address, estimate range, material, roof size, insurance status — and a link into your dashboard.
Leave the field blank to turn these off. Out-of-area flagged leads never send one.
The other emails we send
Everything else that leaves BetterRoofing on your behalf, so there are no surprises:
Everything sent to a homeowner goes out under your company name with replies coming back to you. Appointment emails can be switched off per booking, or for the whole account, under Settings.
Webhook & Zapier
The webhook payload
We send a POST to your webhook URL every time a new lead is created. Set it under Account menu → Settings → Webhook URL. The body is JSON:
{
"id": "clx8abc123",
"name": "Sarah Mitchell",
"email": "[email protected]",
"phone": "512-555-0199",
"address": "123 Main St, Austin, TX 78701",
"lat": 30.2672,
"lng": -97.7431,
"insuranceClaim": "yes",
"materialType": "asphalt",
"roofSlope": "medium",
"homeSqft": 2000,
"roofSquares": 24.0,
"estimateLow": 11200,
"estimateHigh": 13600,
"status": "new",
"outOfArea": false,
"createdAt": "2026-09-16T14:22:00.000Z"
}insuranceClaim
One of "yes", "no" or "unsure". Use it to route claim jobs into a different workflow.
homeSqft
The interior square footage, where the homeowner was asked for it.
AI drafts
aiEmailDraft and aiSmsDraft are written on demand, so they are null at webhook time. Read them from the job drawer instead.
Jobs you add by hand don't fire the webhook, and neither do leads flagged out-of-area.
Connecting Zapier
Create a new Zap
Select "Catch Hook"
Copy your webhook URL
https://hooks.zapier.com/hooks/catch/.... Copy it.Paste it into BetterRoofing
Send a test lead
Add your action
name, insuranceClaim, estimateLow and status to your destination.Make, n8n or your own server
Any endpoint that accepts a POST with a JSON body works, including Make (formerly Integromat) and n8n. Use their Custom webhook module as the trigger, paste the URL into Account menu → Settings → Webhook URL, and submit a test lead to confirm the connection.
Widget analytics
The headline numbers
Dashboard → Analytics covers the last 30 days and opens with four figures:
Events are recorded automatically on our side, attributed to your account. There's nothing to install and no tag to add.
The funnel
Underneath, every step of the journey with its count and its share of total starts, so you can see exactly where homeowners give up:
Below the funnel, a daily bar chart of lead submissions across the same 30 days shows whether last week was normal.
A high out-of-area count usually means either your radius is too tight or your widget is being seen in markets you don't serve.
Win-rate intelligence
What it is
Win-rate intelligence reads the jobs you've decided — won and lost — and works out which kinds you actually close, broken down by material type and insurance status. It tells you where your highest close rate is, so your follow-up time goes where it pays.
It sits on the Analytics page below the funnel and updates itself as you close more jobs. There's nothing to set up — it reads the pipeline you're already keeping.
How to read it
Segments
Every decided job falls into one — Asphalt + insurance claim, Metal + no claim, and so on — each with its own close rate and average estimate.
Top segment
The one with the highest close rate is called out at the top: your single best lead type, from your own results rather than an industry average.
The table
Below it, every segment with at least 3 decided jobs, ranked, with its close rate, average estimate and how many jobs are behind that number.
The card needs 10 decided jobsbefore it activates, and shows a progress bar until then. A close rate off three jobs isn't a close rate, and we'd rather say nothing than point you at a pattern that isn't there.
Team access
Owner and team member
Bring your whole crew: every member gets their own login, at no extra cost and with no per-seat pricing. Team members work every job; how the business is set up, and the account itself, stay with the owner.
Inviting someone
Go to Account menu → Team
Enter their email address
They accept
They're in
Managing your team
Remove a member
The trash icon next to them on Account menu → Team. Access is revoked immediately and they can't sign in to your account afterwards.
Pending invites
Invites not yet accepted sit in their own section with an expiry time. Each is valid for 48 hours; if one lapses, send a new one.
No seat limit
Office staff, sales reps, crew leads — invite as many as you need. It's one flat price however big the team gets.
Your account & billing
Company details & logo
Account menu → Settings holds your company details. Your company name is what homeowners see on quotes, emails and your widget — Google sign-ups start with a placeholder, so change it here if you used one.
Logo
PNG, JPEG or WebP up to 2 MB, uploaded in the setup wizard or here. It's stored against your account, ready for the homeowner-facing surfaces that use your branding. Your estimate PDF and emails carry your company name today.
Phone number
Shown to homeowners at the end of their estimate when you don't take bookings.
Time zone
Drives task due dates and your Today list. It's set from your browser automatically; change it here if that's wrong.
Plan, trial & cancelling
One plan, $99/month, everything in it. No tiers, no feature gating, no per-seat pricing and no cap on how many leads you take.
- →A 14-day free trial with no credit card. Your trial countdown sits in your Overview header, and turns into a banner in the last three days.
- →Month to month. Cancel any time from Account menu → Billing, with no cancellation fee and no annual commitment.
- →Cancelling keeps your access to the end of the period you have already paid for.
If a trial or subscription lapses, your account isn't deleted and your widget keeps capturing: leads that arrive while you're expired are held, counted on the billing page, and unlocked the moment you subscribe.
Still have questions?
Search above, ask the assistant in your dashboard, or reach out and we'll get back to you quickly.