Loading…
•
Click to view and manage your follow-ups
New Leads Today
View Leads
Active Projects
View Projects
Outstanding
View Invoices
Total Collected
All time
View Invoices
Lead Pipeline
Upcoming Appointments
No upcoming appointments
Total Clients
Hot Leads
Pending Tasks
| e.target.checked ? leadSelected=new Set(leads.map(l=>l.id)) : leadSelected=new Set()" :checked="leadSelected.size===leads.length && leads.length>0"> | Name | Contact | Source | Project | Stage | Priority | Added | |
|---|---|---|---|---|---|---|---|---|
|
No leads yet Click Add Lead to get started |
||||||||
| { e2.target.checked ? leadSelected.add(lead.id) : leadSelected.delete(lead.id); leadSelected = new Set(leadSelected) }"> |
Hot
|
|
|
|
||||
| e.target.checked ? clientSelected=new Set(clients.map(c=>c.id)) : clientSelected=new Set()" :checked="clientSelected.size===clients.length && clients.length>0"> | Name | Contact | City | Source | Project Value | Outstanding | Since |
|---|---|---|---|---|---|---|---|
|
No clients yet Convert a lead or add a client manually |
|||||||
| { e2.target.checked ? clientSelected.add(c.id) : clientSelected.delete(c.id); clientSelected = new Set(clientSelected) }"> |
|
||||||
estimates
| e.target.checked ? estSelected=new Set(filteredEstimates.map(e=>e.id)) : estSelected=new Set()" :checked="estSelected.size===filteredEstimates.length && filteredEstimates.length>0"> | Estimate # | Title | Total | Deposit | Status | Date | |
|---|---|---|---|---|---|---|---|
|
No estimates match your filters |
|||||||
| { e2.target.checked ? estSelected.add(e.id) : estSelected.delete(e.id); estSelected = new Set(estSelected) }"> |
|
||||||
Total Invoiced
Total Collected
Outstanding
invoices
| e.target.checked ? invSelected=new Set(filteredInvoices.map(i=>i.id)) : invSelected=new Set()" :checked="invSelected.size===filteredInvoices.length && filteredInvoices.length>0"> | Invoice # | Client | Total | Paid | Balance Due | Due Date | Status | |
|---|---|---|---|---|---|---|---|---|
|
No invoices match your filters |
||||||||
| { e2.target.checked ? invSelected.add(inv.id) : invSelected.delete(inv.id); invSelected=new Set(invSelected) }"> | — |
|
||||||
Active Jobs
Track all construction projects from contract to completion
· ·
Paid in full
No projects yet
Create a project to track a job from contract signing through completion.
Document Storage
Upload and manage contracts, permits, blueprints, photos, and more. All files are AES-256 encrypted.
Follow Ups
Scheduled callbacks and check-ins from your notes
Overdue
Due Today
Upcoming
All caught up!
No pending follow-ups. When you add a note with a follow-up date, it will appear here.
All caught up
No notifications
Connect your tools. Fill in credentials whenever you're ready — nothing breaks until you do.
Company Information
Change Password
Email Templates
Use [First Name] [Last Name] [Full Name] [Phone] [Company] [City] — these auto-fill when you email a contact.
Email Signature
PNG, JPEG, SVG, WebP or GIF · max 2 MB
Brand
Standard
Brand
Standard