Getting Started
Three steps and you're running. Sign in, add a lead, open it. Everything else builds from there.
- Sign in at
nobigdealwithjoedeal.com/pro/login.htmlwith your email + password (or use the link from your invitation). - Add your first lead — tap the orange + Add in the top right (or the floating + bottom-right on mobile). Name + address is enough.
- Drag the card across kanban columns as the deal moves. That's the whole game.
Deep dive — accounts, roles, and first-run tour
Account types
NBD Pro has three account models:
- Owner — the contractor account. Full access to every feature, every lead, every report. Created on signup or via invitation.
- Sales rep — limited to their own leads (set via custom claims by the owner). Can run D2D, add leads, send estimates. Can't see teammates' pipelines.
- Admin / manager — sees everything reps see, plus team reports. No billing access.
- Viewer — read-only for office staff who answer phones but shouldn't edit data.
Plans
You'll land on a plan based on how you signed up:
- Free — $0 forever, 10 leads per month. Good for testing. You'll see a banner at the bottom prompting upgrade once you hit the cap.
- Starter — $99/mo, 50 leads per month, full CRM, estimates, and reports for a solo operator.
- Growth — $299/mo, 500 leads per month, unlimited reports and AI, up to 5 team seats with role-based access and team reports.
If you're using an access code, you get full access for the duration of the code. No subscription doc, no billing flow.
The first-run tour
If you have zero leads, the 30-second tour auto-fires 1.5 seconds after the dashboard mounts. It walks you through five stops: pipeline, add lead, D2D, settings, and a "you're ready" closer. Each stop has a link back to the relevant section of this how-to.
To re-run it later: tap the ▶ Restart Tour button at the top of this page. That clears the "tour seen" flag and replays from step 1.
What syncs offline
Your last-known leads, photos, and D2D knocks are cached locally so the app keeps working when you lose signal. Writes (new leads, stage moves, knocks) queue up and flush automatically when you're back online — you'll see a small toast confirm each one.
Photos taken offline are stored as blobs in IndexedDB and uploaded when you reconnect; you'll see them in the gallery immediately but with a small "uploading" indicator until sync completes.
Common task — Reset your password
- From the login screen, tap Forgot password? below the password field.
- Enter your account email. You'll get an email within 60 seconds with a one-time reset link (check spam if you don't).
- Click the link, set a new password (8+ characters), and sign in.
Common task — Invite a rep to your team
- Open Settings → Team (owner accounts only).
- Tap Invite rep, enter their email and pick a role (sales_rep, admin, or viewer).
- They get an invitation email with a one-time link. They set a password on first sign-in and land on their own pipeline.
userId === their UID. The filter is applied at hydration so even DevTools can't read teammates' leads.Install on your phone
NBD Pro is a Progressive Web App. Install it to your home screen and it runs full-screen like a native app — faster, no browser chrome, works offline.
- iPhone: Open Safari → tap → scroll → Add to Home Screen.
- Android (Chrome): Tap the menu → Install app or Add to Home screen.
- Tap the new icon. The app launches full-screen — no address bar.
Deep dive — why install, and what changes
What you gain
- Real estate — no browser address bar means an extra ~60px of vertical space, which on a kanban with skinny columns is a lot.
- Push-to-talk speed — installed apps wake faster from cold start because the OS keeps the shell warm.
- Offline mode — service worker pre-caches the app shell. You can open the app with no signal and still see your last-known data.
- One-tap from anywhere — appears in your app drawer / home screen like Mail or Maps.
iPhone — exact steps
- Open the app in Safari (not Chrome on iOS — Apple restricts PWA install to Safari).
- Tap the Share button (square with up-arrow) in the bottom toolbar.
- Scroll down the share sheet and tap Add to Home Screen.
- You'll see a preview with the NBD Pro icon. Tap Add.
- Find the icon on your home screen and tap it.
Android — exact steps
- Open the app in Chrome (other browsers may work but Chrome is fully supported).
- Tap the three-dot menu in the top right.
- Pick Install app if you see it, otherwise Add to Home screen.
- Confirm. The icon lands on your home screen and in your app drawer.
Auto-prompt
On Android Chrome, the app will prompt you to install on first visit (via beforeinstallprompt). On iOS Safari, you see a one-time card explaining the manual steps, since iOS doesn't fire that event.
The Pipeline (Kanban)
The kanban is home base. Every lead is a card, every column is a stage, and the pipeline value updates the moment you drag a card.
- Drag a card across columns to move stages. The pipeline total at the top updates instantly.
- Tap a card to open the lead detail modal. Edit anything, save, done.
- Switch views using the pill row up top: Ins Cash Fin War Svc Jobs All.
Deep dive — views, columns, and what each move does
The seven views
The view switcher in the kanban header changes which columns are shown and which leads filter in:
- Ins (default) — Insurance pipeline. Shows leads marked
jobType: insuranceplus any unset (leads imported before job-type existed default here). Columns: New → Contacted → Inspected → Claim Filed → Adjuster Mtg → Adjuster Done → Scope Received → Estimate Sent → Supplement → Supp. Approved → Contract Signed → Lost. - Cash — only cash leads. Columns: New → Contacted → Inspected → Est. Sent → Negotiating → Contract Signed → Lost.
- Fin — only finance leads. Columns: New → Contacted → Inspected → Pre-Qual Sent → Loan Approved → Contract Signed → Lost.
- War — warranty / callback work. Columns: New → Contacted → Inspected → Warranty Visit → Repair Done → Closed → Lost.
- Svc — small one-off service / repair. Columns: New → Contacted → Inspected → Service Quoted → Service Approved → Installing → Install Done → Closed → Lost.
- Jobs — leads in post-contract job stages (any job type). Columns: Job Created → Permit → Materials Ordered → Materials Here → Crew Scheduled → Installing → Install Done → Final Photos → Deductible → Final Payment → Closed.
- All — the legacy 7-column simple view: New → Inspected → Estimate Sent → Contract Signed → In Progress → Closed → Lost. Good for an at-a-glance count, but hides track-specific stages.
Your selected view is remembered in localStorage across page loads.
What happens when you drag a card
Every stage move is recorded:
- Optimistic update — the card jumps to the new column instantly. Pipeline value recalculates.
- Stage history — a timestamped entry is appended to the lead's
stageHistory: from, to, who, when. - Lost reason prompt — moving to "Lost" pops a quick reason picker (preset chips or free text). Cancel cancels the move; pick or skip continues.
- Required field check — some stages require fields (e.g.,
claim_filedneeds a claim number). If anything's missing, the move is blocked and the lead modal opens so you can fill it in. - Stage-started timestamp — resets so the days-in-stage badge restarts counting.
- Cross-tab guard — if another open tab moved this card a second ago, the move aborts cleanly so you don't get duplicate history entries.
Card density
Settings → Display → Card density: Tight, Comfortable, or Roomy. Tight fits ~3× more cards on screen; roomy adds property intel and damage type to each card face.
Hot keys
- C — Add new lead.
- / — Focus the search box.
- Cmd+K (Mac) / Ctrl+K (Win) — Command palette (fuzzy search every lead + every action).
- Esc — Close the open modal.
Common task — Move a lead through the insurance flow
The typical insurance lead path looks like this:
- New → Inspected — after the inspection visit, drag the card. Add inspection photos and notes if you haven't already.
- Inspected → Claim Filed — once the homeowner files (or you file on their behalf with AOB). You'll be prompted for the carrier and claim number — required.
- Claim Filed → Adjuster Mtg — log the date and time of the adjuster appointment.
- Adjuster Mtg → Adjuster Done — drag after the meeting. Note what they paid for and what they pushed back on.
- Adjuster Done → Scope Received — when the carrier sends the scope of loss document. Upload the PDF to the lead notes.
- Scope Received → Estimate Sent — you've built your estimate and sent it. Estimate amount and deductible required at this stage.
- Estimate Sent → Contract Signed — homeowner signs. Stage moves into the Jobs view automatically.
Common task — Find a specific lead fast
- Hit / or tap the search box in the kanban header.
- Type any part of the name, address, phone, or claim number. The kanban filters live as you type.
- To see only one stage, tap a column header — it pins that column wide and shrinks the rest.
For lookups across all leads regardless of view, hit Cmd+K for the command palette — it fuzzy-searches every lead by name, address, and phone.
Tips & shortcuts
- Bulk select — tap the button in the kanban header to enter multi-select mode. Tap cards to add them, then bulk-set job type, tags, source, or follow-up date.
- Right-click / long-press a card — opens a quick context menu: View details · Edit · Add task · Call · Copy phone/address · Open in Maps · Delete. Same vocabulary on desktop and mobile.
- Days in stage — every card shows a small badge with how many days it's been in its current column. Tap to see the full stage history timeline.
- Property intel — when you add a lead by address, NBD pulls year built, market value, last sale date, and whether the owner is an LLC. Pulls happen on save; manual re-pull is on the edit modal.
- Lost cards aren't deleted — they live in the Lost column with the reason recorded. To permanently archive a lead, use Delete (it's a soft delete; bin lives in Settings).
Adding & Editing Leads
Adding a lead is a 5-second job: name + address. Everything else (claim info, finance details, trade scope) can be filled in as the deal progresses.
- Tap + Add in the top right or the floating + bottom-right.
- Enter first name, last name, and address. Everything else is optional.
- Hit Save Lead. The card appears in the New column.
Deep dive — every field, what it drives
The mandatory fields
- First name + Last name + Address — required. Without them, save fails with an inline error.
- Phone / Email — optional, but validated when you do fill them in. Phone needs 10+ digits; email needs an
@+ a domain. Bad data here breaks SMS/email prefill downstream, so we catch typos at save time.
Job classification
- Stage — defaults to New. Pick from the dropdown to drop straight into a later column. Use the optgroups: Shared, Insurance Track, Cash Track, Finance Track, Warranty, Service, Contract, Job Pipeline, Exit.
- Job Type — Insurance, Cash, Finance, Warranty, or Service. Sets the pipeline behavior. Sub-type and trades fields appear once you pick one. See Job Types & Stages for the full breakdown.
- Sub-Type — optional second-level classifier (storm/hail, full replace, third-party lender, workmanship, etc.). Drives template variant selection.
- Trades — multi-select chips for what's actually being worked on: roof, gutters, siding, windows, fascia, paint, skylights, other. A storm job is commonly roof + gutters.
- Source — Door Knock, Storm Canvass, Referral, Online, Other. Drives the source attribution in reports.
- Damage Type — Roof Hail, Roof Wind, Roof H&W, Siding Hail, Siding Wind, Gutters, Full Exterior, Fire, Water, Other.
- Claim Status — No Claim, Claim Filed, Adjuster Scheduled, Approved, Supplementing, Paid Out, Denied. Separate from stage; you can be in Stage "Adjuster Done" with Claim Status "Approved".
- Job Value ($) — your best estimate of total job revenue. Powers the pipeline-value rollup.
- Follow-Up Date — when you next need to touch this lead. Overdue follow-ups show a red badge on the card.
Insurance detail block (auto-shows for insurance)
- Insurance Carrier — State Farm, Nationwide, Allstate, Liberty Mutual, etc.
- Claim Number — required to advance past
claim_filed. - Claim Filed By — Homeowner, Contractor (NBD), Insurance Agent.
- Estimate Amount ($) — what the carrier is paying total.
- Deductible ($) — what the homeowner owes you out of pocket at contract signing.
- Supplement Status — Needed, Requested, Under Review, Re-Inspection, Approved, Denied.
- Scope of Work — free text. Lives in the contract template merge.
Finance detail block (auto-shows for finance)
- Finance Company — Improvifi, Hearth, GreenSky, etc.
- Loan Amount ($) — required at
loan_approved. - Loan Status — Pre-Qual Sent, Approved, Denied, Funded.
- Pre-Qual Link — URL you sent the homeowner. Click to open.
Job detail block (auto-shows once stage is post-contract)
- Scheduled Date — install date. Powers the calendar view.
- Crew — crew name or lead installer.
Property intel pull
The 🏠 Pull Property Intel button hits Regrid + county records and fills in year built, market value, last sale date, parcel ID, LLC ownership status, and homestead exemption. Saves with the lead. If the pull fails (rural property, out-of-coverage county), the rest of the save proceeds normally.
Common task — Edit a lead
- Tap the card on the kanban (or find the lead from search / command palette).
- The edit modal opens with every field pre-filled.
- Change what you need. Insurance/finance/job blocks toggle visibility based on Job Type — set the type first.
- Tap Save Lead.
You can also edit specific fields without opening the full modal:
- Stage — drag the card.
- Follow-Up — tap the date chip on the card.
- Tags — tap the tag pill area on the card face (if visible at your card density).
Common task — Delete and restore a lead
- Open the lead edit modal and tap the trash icon (top-right of modal).
- Confirm. The lead moves to the Deleted bin (soft delete — nothing is destroyed).
- Open Settings → Deleted bin to view, restore, or permanently purge.
Common task — Bulk-assign job type after importing
- Switch to the All view.
- Tap the button in the kanban header to enter multi-select mode.
- Pick all the leads you want to flag (e.g., all from a recent CSV import).
- The action bar at the bottom shows Set Job Type — tap, pick the type, confirm.
- Every selected lead updates in one batch. The kanban re-filters.
Same flow works for tags, source, damage type, and follow-up date.
Job Types & Stages
A lead's job type drives its workflow, its stages, its required fields, and which documents you'll generate. Five types cover every job a roofing/restoration shop runs.
- In the lead modal, set Job Type. The Sub-Type select and Trades chip group appear right below.
- Pick a sub-type (optional but recommended — drives doc templates).
- Tap any trade chips that apply (roof, gutters, etc. — multi-select).
- Set the stage. The dropdown only shows stages relevant to this job type, hiding the rest.
Deep dive — what each job type unlocks
Insurance
The full claim-driven workflow. Stages: New → Contacted → Inspected → Claim Filed → Adjuster Mtg → Adjuster Done → Scope Received → Estimate Sent → (Supplement → Supp. Approved) → Contract Signed. Documents available: AOB (Assignment of Benefits), Inspection Report (Insurance variant), Supplement Request Letter, Estimate (Insurance format), Contract, Certificate of Completion.
Cash
Direct-pay homeowner. Stages: New → Contacted → Inspected → Est. Sent → Negotiating → Contract Signed. Documents: Inspection Report (Homeowner variant), Cash Estimate, Contract.
Finance
Third-party-funded job. Stages: New → Contacted → Inspected → Pre-Qual Sent → Loan Approved → Contract Signed. Documents: Pre-qual link, Loan Approval letter, Contract with financing addendum.
Warranty
A callback or post-install repair. Stages: New → Contacted → Inspected → Warranty Visit → Repair Done → Closed. No claim, no contract, often no payment. Document: Warranty Service Report.
Service
Small one-off repair or maintenance. Stages: New → Contacted → Inspected → Service Quoted → Service Approved → Installing → Install Done → Closed. Documents: Service Quote, Service Invoice.
Sub-types
Optional second-level classifier. Available sub-types per job type:
- Insurance: Storm — Hail, Storm — Wind, Storm — Hail & Wind, Fire, Water/Leak, Other
- Cash: Full Replacement, Partial Replacement, Repair
- Finance: Third-Party Lender, In-House Financing
- Warranty: Workmanship, Material Defect, Manufacturer Claim, Goodwill / Out of Warranty
- Service: Repair, Maintenance, Inspection Only
Trades (multi-select)
Orthogonal to job type. A storm-hail insurance job is commonly roof + gutters. A warranty callback might be just skylights. Trades drive estimate template and crew assignment.
Available trades: Roof, Gutters, Siding, Windows, Fascia/Soffit, Paint, Skylights, Other.
Required fields per stage
You can't advance a lead past certain stages without filling required fields. The kanban drag will be blocked, a toast tells you what's missing, and the lead modal opens automatically:
- Insurance: Claim Filed — requires Carrier + Claim Number
- Insurance: Estimate Sent — requires Estimate Amount + Deductible
- Cash: Est. Sent / Contract Signed — requires Job Value
- Finance: Pre-Qual Sent — requires Finance Company
- Finance: Loan Approved / Contract Signed — requires Loan Amount + Finance Company
- Warranty: Warranty Visit — requires Scheduled Date
- Service: Service Quoted / Approved — requires Job Value
Moves to Lost are always allowed regardless of missing fields — you need to be able to dispose of dead leads fast.
Common task — Convert a cash lead to insurance mid-flight
Happens often: you started a cash bid, the homeowner went and filed a claim. To re-route:
- Open the lead modal.
- Change Job Type from Cash to Insurance.
- The insurance detail block appears; the stage dropdown now shows the insurance track instead of the cash track.
- If your current stage isn't valid in the insurance pipeline (e.g., you were in "Negotiating"), you'll see a small warning under the stage select. Pick the closest insurance stage (probably "Inspected" or "Claim Filed").
- Fill in the new required fields (Carrier, Claim Number, etc.) and save.
Common task — Read the Next Actions panel
Open any existing lead. Scroll to the bottom of the modal, just above Save Lead. You'll see the Next Actions panel with context-aware chips like:
The chips change based on the lead's current stage and job type. At inspected with jobType: insurance, you'll see File Claim + Send AOB. At inspected with jobType: cash, you'll see Send Estimate instead.
Each chip has a small label showing its kind: doc (generates a document), stage (advances the pipeline), or action (logs something or opens a tool).
D2D Tracker
Tap a door, log the disposition, and the knock saves with GPS. Storm-damage and insurance dispositions auto-create CRM leads as Prospects so a knock never falls through the cracks.
- Open the D2D Tracker from the sidebar (or
#nav-d2d). - Tap the address on the map (or hit + Quick Knock).
- Pick a disposition chip — Storm Damage, Insurance Interested, Not Home, Not Interested, etc.
- Done. The knock saves with GPS, timestamp, and your rep ID.
Deep dive — dispositions, prospects, and re-knocking
Disposition types
- Storm Damage — visible storm/hail damage. Auto-creates a Prospect lead with job type pre-set to
insurance. - Insurance Interested — owner is open to filing. Same auto-promote behavior.
- Cash Interested — wants a cash quote. Auto-creates a Prospect with job type
cash. - Not Home — no answer. Logs the knock for territory analysis; no lead created.
- Not Interested — owner declined. Logs the knock with a polite-but-stop signal so you don't re-knock soon.
- Wrong House — bad address. Doesn't create a lead.
- Follow-up Later — owner wants you to come back. Logs a follow-up date.
- Already Working With Someone — competitive. Logs the competitor name if you can get it.
- Sold — closed on the doorstep. Creates a customer-tier lead immediately.
Prospects vs Customers
An auto-promoted knock creates a Prospect, not a regular Lead. Prospects:
- Live on the Prospects page, not the main kanban (so your kanban doesn't fill with cold knocks).
- Have
isProspect: trueon their record. - When you try to drag a prospect on the kanban (rare — usually they're filtered out), you get a "Promote to customer?" confirm dialog.
- Promoting flips the flag and the lead lands in the main pipeline at its current stage.
Re-knocking
Knock the same address twice and the second knock attaches to the same prospect record. Photos accumulate, the disposition history grows, and the rep can see "knocked 3 times since the storm" at a glance.
GPS accuracy
NBD uses high-accuracy geolocation (~5m typical, ~20m worst case on iPhone). Knocks log the device's reported coordinates and accuracy radius. If the rep is inside a building or under heavy cover, accuracy degrades — the address-pin lookup (Nominatim) is used as a fallback to snap to the nearest known parcel.
Photos at the knock
Tap 📸 on the knock card to grab photos right there. They attach to the prospect record and appear on the lead detail page later. Common pattern: damage shot + roof line shot + close-up of granule loss.
Common task — Run a storm canvass
- Open D2D Tracker. The map centers on your location.
- Tap 🎯 Set Territory to draw a polygon around the affected neighborhood (or pick from saved territories).
- Walk the street. Tap each house as you knock.
- Pick disposition. Add a photo if you see damage. Move on.
- At the end of the canvass, open the Prospects page. Every storm-damage knock is queued there with property intel pulled.
- Call back the ones that picked up, file claims with the ones who didn't dispute.
Tips
- Heatmap view — toggle to see knock density across your territory. Tells you where you've covered well vs where you've ghosted.
- Speed knocks — chord the disposition chip with the photo button. Two taps total for a logged + photographed knock.
- Offline knocks — knocks save locally when you're out of signal. You'll see them sync in a green toast when you reconnect.
Estimates
Three tiers, SF + LF pricing, supplements for insurance, and a one-tap send-to-homeowner. The estimate is wired into the contract template so signatures flow without rekeying.
- Open a lead → tap + New Estimate.
- Enter SF (squares) and LF (linear feet) for the roof.
- Pick a tier — Good, Better, or Best — pricing auto-fills.
- Tap Send Estimate to email the homeowner a signing link.
Deep dive — pricing, tiers, supplements
The tier system
NBD ships with three default tiers ($/sq):
- Good — $545/sq · 25-year workmanship warranty
- Better — $595/sq · 40-year workmanship warranty
- Best — $660/sq · 50-year + impact-resistant shingles
You can customize these in Settings → Estimate Defaults. The tiers are stored per-account so the whole team estimates consistently.
Insurance supplements
For insurance jobs, the estimate UI gets two extra rows:
- Initial scope — what the carrier originally paid
- Supplement amount — what you're requesting on top
The supplement letter is auto-generated with line items and code citations. Send to the carrier via the supplement workflow (see Documents).
Line items
The estimate auto-calculates roofing line items from SF + LF (shingles, underlayment, ice & water, drip edge, flashing, ridge cap, etc.) but you can add custom line items for things like solar panel detach/reset, satellite dish reinstall, or HVAC unit work.
Sending
Send Estimate emails a signing link to the homeowner. The estimate renders as a clean HTML page with your branding, the line items, the total, and a signature pad. When they sign:
- Webhook fires back to the lead.
- The lead's stage auto-advances to Contract Signed.
- The estimate document is archived on the lead.
- You get a push notification and a toast.
Common task — Revise an estimate after pushback
- Open the lead, scroll to Estimates, tap the existing estimate to open it.
- Tap 📝 Revise. Make changes.
- Tap Send Revision. The homeowner gets a fresh link.
- The original estimate is kept as a versioned record (timeline shows v1 / v2 / etc.).
Common task — Build a Change Order during the install
- While the job is in progress, open the lead.
- Tap 📝 Change Order in the Next Actions panel.
- Add the new line items (e.g., rotted decking replacement, hidden damage discovered).
- Send to the homeowner for signature.
- On sign, the change order amount adds to the job's total and shows on the final invoice.
Photo Reports
Snap photos during the inspection, tag the phase, and tap one button to generate a clean before/during/after gallery you can text the homeowner or send to the adjuster.
- Open a lead → tap the camera FAB or the Photos tab.
- Take photos. Each photo prompts for a phase tag: Before, During, After, Damage Close-up, Wide Shot, Other.
- Tap Generate Photo Report. A shareable HTML page renders with thumbnails grouped by phase.
- Tap 📤 Share to text or email the link.
Deep dive — phases, HEIC, EXIF, sharing
Phase categorization
Every photo gets a phase tag. The report groups by phase in this order: Before → Damage Close-up → Wide Shot → During → After → Other. You can drag-reorder within a phase but not across phases.
HEIC handling
iPhone shoots HEIC by default, which most browsers don't render. NBD converts HEIC → JPEG on upload (server-side) and stores both. The browser sees JPEG; the original HEIC is kept for archival.
EXIF data
NBD reads EXIF on upload and records the original capture timestamp + GPS coordinates (when granted). This is important for insurance disputes — adjusters sometimes ask "when was this taken?" and the camera roll modification date isn't always trustworthy.
Photo report storage
Reports are generated client-side from Firestore photo data, not pre-rendered. That means every share link always reflects the latest set of photos on the lead. Add a new photo? Refresh the report URL and it's there.
Sharing options
- Copy link — copies to clipboard. Use when you're typing your own message.
- Text via SMS — opens the system SMS composer with a pre-filled message + link.
- Email — opens mail client with a pre-filled subject and body.
- QR code — generates a QR for in-person handoff (e.g., showing the report on your phone to the adjuster on site).
Common task — Build a damage-only report for the adjuster
- On the Photos tab, filter to Damage Close-up + Wide Shot only.
- Tap Generate Photo Report. The generated page only includes those phases.
- Title it "Damage Documentation — [property address]" in the report settings.
- Share with the carrier via email — the link works without login.
Customer Portal
A branded page the homeowner can pull up anytime — sees the timeline, the photos, the next milestone, and your contact info. Drastically cuts down on "what's the status?" calls.
- Open a lead → tap 🏠 Portal.
- The portal generates from the lead data + photos.
- Tap 📤 Share to text the homeowner the link.
Deep dive — what the homeowner sees
The portal layout
- Header — your company name + logo + contact phone/email (pulled from Settings → Brand).
- Status banner — friendly version of the current stage. "Your claim has been filed" instead of "stage: claim_filed". Updates as you move the card on the kanban.
- Timeline — major milestones with timestamps. Skips the noise (every drag), shows the moments that matter: claim filed, adjuster met, contract signed, install scheduled, install complete.
- Photo gallery — Before / During / After tabs. Mobile-friendly lightbox.
- Documents — links to estimate, contract, warranty cert, final invoice as they're generated.
- Contact card — your rep's photo, phone, email, and a quick "Reply with a question" link.
The portal updates live as you change the lead. Homeowner refreshes their tab and sees the new state.
Versioning
Portal HTML is uploaded to Firebase Storage at portals/{uid}/{leadId}/v-{timestamp}.html. Every regeneration creates a new version; the latest URL is what's shared. Previous versions stay in storage for audit — useful if a homeowner says "but the portal said it'd be done by Friday" and you need to prove what was shown when.
Photo-only portal
If you just want to share photos (no timeline, no contact), tap Photo-Only Portal. Lighter page, faster to load, useful for storm canvass follow-ups where you don't have a contract yet.
Common task — Brand the portal
- Open Settings → Brand.
- Upload your logo (PNG or SVG, square-ish ideal, <500 KB).
- Pick a primary color — used for headers, buttons, and the timeline accent.
- Add your phone, email, and physical address. These appear on every portal.
- Save. Future portal generations use the new brand. Old portals stay branded as they were when generated.
Other Documents
Estimates and photo reports get their own sections — this is everything else. AOB, contracts, supplement letters, warranties, invoices, change orders.
- Open a lead → scroll to the Next Actions panel at the bottom of the modal.
- Tap the document chip you need (, , etc.).
- Review the auto-generated content, edit if needed, send.
Deep dive — what each document is for
- AOB (Assignment of Benefits) — Insurance only. Lets the homeowner assign their claim benefits to you so you can talk to the carrier directly. Auto-fills with carrier, claim #, property address.
- Contract — Once the estimate is accepted. Merges in scope of work, total amount, deductible (insurance), warranty terms, payment schedule.
- Supplement Request Letter — Insurance only. Generated when the carrier's initial scope misses items. Includes line items, code references, and photo evidence.
- Warranty Certificate — Generated at close-out. Tier-specific (Good = 25yr, Better = 40yr, Best = 50yr workmanship). PDF-export ready.
- Change Order — During install. Captures additional work + homeowner sign-off so you can bill for it.
- Final Invoice — At close-out. Aggregates contract + change orders + deductible. Marks paid when funds land.
- Inspection Report — Two variants: Homeowner (cleaner, more readable) and Insurance (technical, code citations).
- Lien Release / Waiver — Coming soon. Final-payment-conditional waiver to satisfy mortgage holders.
Deep dive — coming next (Phase 3)
The following docs are planned but not yet shipped:
- Structured Invoice (line-item, tax-aware) — in design
- Scope of Work (SOW) document — separate from contract
- Material Order — what to buy from the supplier
- Project Close-Out Checklist — final inspection sign-off
- Editable template engine — move templates out of code into editable data so you can customize wording without a dev
If one of these is blocking you, tap and tell him — priorities get re-ordered based on what reps actually need.
Map & Pins
A satellite map of every lead, knock, and customer. Draw territories, plan routes, and visually spot clusters.
- Open the Map view from the sidebar.
- Pinned addresses load automatically — color-coded by stage.
- Tap a pin to see the lead's quick card with stage, value, and last touch.
- Use the ✏️ Draw tool to outline a territory.
Deep dive — coming soon
Detailed coverage of the map view, draw tool, route planner, and territory analytics will be added here in the next how-to update. In the meantime, hover any pin to see its tooltip, and tap-and-hold to enter route-planning mode.
Reports & Analytics
Pipeline value, weekly stats, win/loss analysis, source attribution, rep leaderboards. Everything you'd want to know about how you're closing.
- Open the Reports view from the sidebar.
- Pick a date range (default: last 30 days).
- Browse the KPI row up top (pipeline $, closed $, win rate, avg cycle).
- Drill into Win/Loss Analysis to see why deals are dying.
Deep dive — what each report shows
Detailed report breakdowns are coming in the next how-to update. Highlights:
- Pipeline funnel — count + dollar value at every stage. Click any stage to drill into the leads in it.
- Weekly stats — week-over-week deltas on knocks, leads, contracts signed, revenue.
- Win/Loss Analysis — lost-reason aggregation (price, competitor, no claim, etc.) with trend lines.
- Source attribution — which sources produce the most revenue, the highest close rate, the fastest cycle.
- Rep leaderboard (team accounts) — knocks, leads, contracts, revenue per rep with sortable columns.
- Days-in-stage — flags leads that have been stuck too long. Tap to see them and call them.
Calendar & Follow-ups
Every follow-up date, install date, and adjuster meeting rolls up into a single calendar view.
- Open Calendar from the sidebar.
- The current week shows by default. Toggle to Month or Day.
- Tap any event to open the related lead.
Deep dive — coming soon
Calendar conflict detection, drag-to-reschedule, and Cal.com integration are documented here in the next update. For now, follow-up dates are set on the lead's edit modal and surface automatically.
Settings & Themes
148 themes, three UI sizes, three card densities, brand controls, team management, security.
- Tap the gear icon in the sidebar (or your avatar → Settings).
- Pick a section from the left: Display, Brand, Team, Security, Plan, Help.
- Change what you need. Most settings save instantly; some prompt for confirmation.
Deep dive — every section
Display
- Theme — 148 themes total, grouped by mood (Pro, Dusk, Forest, Citrus, Mono, etc.). Theme applies instantly, no reload.
- UI size — Compact / Default / Comfortable. Affects font sizes and padding globally.
- Card density — Tight / Comfortable / Roomy. Affects only kanban cards.
- Hierarchy toggle — turn on to show stage badges with louder visual weight.
Brand
- Logo, primary color, business name, phone, email, address.
- Used by: customer portal, generated documents (estimates, contracts, photo reports, warranty certs).
Team (owner-only)
- Invite reps by email.
- Assign roles: sales_rep / admin / viewer.
- Disable / remove members. Their leads stay; access flips off.
Security
- Change password.
- Sign out of all devices.
- Enable two-factor (coming soon — currently the underlying provider supports it via account recovery).
Plan & Billing
- See current plan, billing cycle, next charge.
- Upgrade / downgrade. Manage payment method.
- See seat usage (team plans).
Help
- Replay tour — re-fire the first-run walkthrough.
- How To — opens this page.
- Contact support — opens email composer pre-addressed to support.
AI Tools
Ask Joe (in-app assistant), Understand (AI tutoring for insurance/technical/business), Whisper dictation, Quick Capture voice scratchpad.
- Ask Joe — tap the floating chat bubble. Ask anything about the app or your pipeline.
- Understand — open from the sidebar. Pick a domain (Insurance / Technical / Business) and ask away.
- Whisper — hold the mic icon, talk, release. Transcribes with AI cleanup.
- Quick Capture — record a 30s voice memo. Auto-summarizes and offers to save to a lead.
Deep dive — coming soon
Each AI tool gets its own deep-dive in the next how-to update — prompt patterns, when to use which one, how the proactive Ask Joe nudges work.
Billing & Plans
Free ($0, 10 leads/mo), Starter ($99/mo), Growth ($299/mo, up to 5 team seats). Self-serve upgrade/downgrade via Stripe.
- Open Settings → Plan.
- Pick a plan, confirm. You're redirected to Stripe Checkout.
- Enter card details. On success, you land back in the app with the new plan active.
Deep dive — coming soon
Plan comparison, proration on mid-cycle upgrades, downgrade behavior, cancellation, and team seat management land here in the next update.
Troubleshooting
When something's off, here's what to try — in order — before opening a support ticket.
- Check the connection dot top-right of the dashboard. Green = good. Yellow = loading. Red = trouble.
- Tap the connection dot — it's also a refresh button. Pulls fresh data.
- Wait for auto-retry — if loading fails, the app retries for ~75 seconds before showing a banner.
- Tap "Retry now" on the banner if you don't want to wait.
"My leads aren't loading"
- Wait 5-10 seconds. Cold starts on slow connections take a moment.
- Tap the connection dot to force a fresh pull.
- Check the status banner at the bottom — it shows live retry state and any error code.
- If you're offline (banner says offline), reconnect to wifi/cellular. Reads will auto-retry when you're back online.
- Still stuck? Tap the Details toggle on the banner — copy the error code, then email support.
"The page looks transparent / I can see through it"
Fixed in v159.7. If you're still seeing this:
- Force-quit the app (swipe up) and reopen.
- If that doesn't work, sign out and sign back in.
- If still stuck, clear site data: iOS Settings → Safari → Advanced → Website Data → Edit → swipe to delete nobigdealwithjoedeal.com.
"Saved a lead but it's not showing"
- Pull-to-refresh on the kanban, or tap the connection dot.
- Check the current view filter — if you saved a Cash lead but you're on the Insurance view, it won't show. Switch views or All.
- Check the column filter — if you're filtered to "Lost only", a new lead in "New" won't show.
- If still missing, check the Deleted bin — accidental delete is rare but possible.
"My estimate didn't send"
- Check the homeowner's email and phone are filled in correctly on the lead.
- Look in the lead's activity timeline — sent estimates log a "Sent estimate to {email}" event.
- If the event isn't there, the send failed silently. Tap Send again — the system will surface the error this time.
- Ask the homeowner to check spam.
"I need to talk to a human"
- Tap the floating Ask Joe chat for AI help (faster than email).
- Email support@nobigdealwithjoedeal.com for human help.
- Include: your account email, what you were trying to do, what happened, screenshot if possible.