Dashboard
Loading...
Active Jobs
—
In progress today
Completed
—
This month
New Leads
—
Uncontacted
Flagged
—
Need attention
🚨 Critical Activity
Today's Jobs
Recent Leads
Jobs
All jobs across residential and commercial
| Job ID | Customer | Type | Job | Tech | Status | Progress | Date |
|---|---|---|---|---|---|---|---|
Customers
All customer records
| Name | Phone | Address | Since | Jobs | |
|---|---|---|---|---|---|
Dispatch Board
Week of...
Quote Leads
Incoming requests from the main website
Service Requests
Pending requests from customers — add to dispatch to resolve
Users
Manage team access and roles
Internal Chat
Private DMs and group chats — staff only
Job Chats
All customer and tech conversations sorted by latest
Review Reminders
Follow up with completed jobs to collect customer reviews and ensure satisfaction
💡 These are jobs completed in the last 30 days that haven't been marked as followed up yet. A quick call or text goes a long way for reviews.
Reports
Business performance overview
Total Revenue
—
All time
Jobs Completed
—
All time
Lead Conversion
—
Leads → jobs
Revenue by Month
Jobs by Type
Tech Utilization
Estimate Templates
Reusable line-item templates for quick job estimates
Payments
Payment collection and transaction history
This Month
—
Collected
Outstanding
—
Jobs without payment
All Transactions
—
All time
Seasonal Maintenance
Customer maintenance reminders — spring tune-ups, fall checks, filter changes
🚀 Bulk Generate Reminders
Dispatch Map
Today's job sites — powered by OpenStreetMap
Today's Jobs
Residential / Scheduled
Commercial
In Progress
Complete
Email Notifications
Send customer emails and track history
⚡ Quick Send
${['job-scheduled:📅:Job Scheduled:Confirm appointment with date & tech','job-complete:✅:Job Complete:Notify job done + request review','invoice:💰:Send Invoice:Email invoice with payment info','maintenance-reminder:🌸:Maintenance Reminder:Seasonal tune-up reminder','review-request:⭐:Review Request:Follow up for Google review','estimate:📋:Send Estimate:Quote with line items'].map(s=>{const[type,icon,title,sub]=s.split(':');return ``;}).join('')}
${icon}
${title}
${sub}