Skip to main content

Dashboard

75%
of CRM implementations fail
Adoption, not price — owners stop checking dashboards that require manual updating to stay accurate
4–5 clicks
to reach data that should be instant
Salesforce SMB reviewer — complexity measured in friction per task; every extra click erodes daily use
"Load-bearing"
is the survival threshold
Software that can't be abandoned — dashboards must surface decisions, not just numbers
Day 1
is when dashboards die
ServiceTitan customers paid a full year for software they never used — onboarding friction kills before the feature gets a chance

When an owner logs in, they don't want a wall of widgets — they want one question answered: where are my guys and what's being done. The Dashboard leads with exactly that. A full-bleed driver map fills the left two-thirds of the screen, and a live jobs console fills the right third. Crew pins move in real time as drivers travel between sites. Everything else on this page — KPIs, alerts, revenue chart, schedule — lives below the fold as supporting context, not as the headline.

Custom Dashboard Views

The four tabs above are starter views — opinionated layouts that ship out of the box. They're a starting point, not a ceiling. Every user can create their own dashboard views, fill them with whatever widgets answer the question they're trying to answer, and pin one as their personal default. The bookkeeper sees a money view. The dispatcher sees a routing view. The owner sees Operations. Same data, different windows.

Operations
Revenue
Phone
Reputation
My MorningCUSTOM
BookkeeperCUSTOM
Field RecapCUSTOM
+ Edit Layout
+ New View
My Morning · edit mode · drag widgets to reorder
Today's Schedule
⋮⋮×
2x1
Outstanding Invoices
⋮⋮×
1x1
Inbound Calls (24h)
⋮⋮×
1x1
Driver Map
⋮⋮×
3x2
Crew Status
⋮⋮×
1x2
+
Add Widget

Creating a View

Three ways to start a new view:

MethodBest For
Start blankYou know exactly what you want — pick widgets one by one
Duplicate an existing viewYou want Operations but with two extra widgets — clone, modify, save
Start from a templatePre-built starting points: Bookkeeper, Field Recap, Sales Morning, Owner Briefing

Every new view captures: a name, an optional icon, an owner (the creator), a visibility setting (Private / Team / Org), and a default-position flag.


Edit Mode

Clicking "Edit Layout" puts the active view into edit mode. The canvas gets a hatched background to signal that nothing on screen is live data — it's a layout staging surface. In edit mode you can:

  • Add a widget — click the dashed "Add Widget" tile or any "+" slot; widget picker drawer opens
  • Remove a widget — click the × in the widget's header
  • Resize a widget — drag the corner handle; sizes snap to the grid (1×1, 2×1, 1×2, 2×2, 3×1, 3×2, 4×1)
  • Reorder — drag-and-drop by the ⋮⋮ handle in the widget header
  • Configure a widget — click the widget body in edit mode; configuration drawer slides in (date range, filters, drill-down target)
  • Rename the view — click the view name in the tab bar
  • Discard or Save — exit edit mode without saving, or commit changes

Saving is per-view. You can edit "My Morning" without touching "Operations".


Widget Library

The widget picker is grouped by data domain. Every widget is available to every user — RBAC filters the data inside the widget, not the widget itself.

GroupWidgets
PipelineOpportunities by Stage · Estimates Open · Estimate Win Rate · Conversion Funnel · Pipeline Value (weighted)
ScheduleToday's Schedule · Crew Calendar Heatmap · Upcoming Appointments · Recurring Plans Due · Unconfirmed Appts
FieldDriver Map · Crew Status List · GPS Activity · Photos Captured Today · Hours Logged
MoneyOutstanding Invoices · Overdue Invoices · Cash Collected · Revenue by Service · Job Costing Variance · Expenses
CustomerNew Contacts · Top Customers · Repeat Rate · NPS / Reviews · Referral Activity
Phone & CommsInbound Calls · AI vs Human Handle Rate · Unread SMS · Conversation Sentiment · Voicemails
Tasks & AlertsOverdue Tasks · Stale Opportunities · SLA Breaches · System Alerts
CustomKPI Card (number + delta) · Saved Report Widget · Embedded URL · Markdown Note

Widgets carry their own configuration — date range, contact filter, crew filter, service type, drill-down target. Defaults are inherited from the view's global filters when set.


Layout Grid

Dashboards use a 4-column responsive grid. Widget sizes:

SizeFootprintTypical Use
1×1Quarter rowKPI cards, single-number widgets
2×1Half rowLists with 5-10 rows, small charts
3×1Three-quartersWide lists, narrow tables
4×1Full rowTables, time series
1×2Tall narrowStacked KPIs, status feeds
2×2Quad blockCharts with legends, detail panels
3×2BigDriver map, large activity timeline

Mobile collapses everything to a single column in display order. Edit mode is desktop-only.


Sharing & Permissions

Every view carries a visibility setting:

VisibilityWho Sees ItWho Can Edit
PrivateOnly the creatorOnly the creator
TeamEveryone in the creator's teamCreator + team admins
OrgEveryone in the tenantCreator + owners/managers
System (built-in)EveryoneOwners only (clone-to-edit if non-owner)

When a view is shared, recipients see it appear in their view bar automatically. They can fork any shared view — the fork becomes a Private view they fully own. Edits to the original do not affect forks.


Default View

Each user picks one view as their personal default — that's what loads when they open the CRM. Defaults are per-user, not per-tenant. An owner might default to Operations; the bookkeeper to Bookkeeper; the dispatcher to Field Recap. The system also tracks a recommended default per role for new users who haven't picked one yet.

RoleRecommended Default
Owner / ManagerOperations
DispatcherOperations (Field Recap recommended)
BookkeeperRevenue
Estimator / SalesPipeline (custom view from template)
TechnicianMobile app — not dashboard

Auto-Save & Version History

Every save snapshots the view layout. The last 30 versions are retained per view, accessible from a "View History" menu. Restoring a version creates a new save — old versions are never destroyed. Useful when an admin accidentally removes a widget and the team has questions.


Driver Map + Jobs Console

The map takes 70% of the dashboard. Each pin is a driver, colored by current status — purple for scheduled, orange for en route, blue for on-site, green for complete, red for issues. The jobs console on the right takes 30% and is tabbed: Active shows what's happening now and what's next; Completed replays the day. Switching tabs updates the map — Active shows live positions and next-stop routing; Completed overlays the full route history with dwell times at each stop.

Live · Coeur d'Alene Service Area · 6 drivers

Traffic
Satellite
Routes
Jake T.
En route → 77 Cedar
Carlos R.
On site · 220 Oak
Sam R.
On site · 310 Willow
Maria D.
Scheduled · 114 Birch
Tony B.
En route → 445 Maple
Linda K.
Issue · 88 Riverside
Scheduled
En Route
On Site
Complete
Issue

─── 2 mi

Active 6

Completed 4

Live · sorted by ETA

En Route
ETA 8 min
Roof Inspection
77 Cedar Ct · Amy Chen
Driver: Jake T.
On Site
On site 42 min
Gutter Install
220 Oak Ave · Marcus Patel
Driver: Carlos R.
On Site
On site 1h 18m
Deck Install
310 Willow Way · Greg Foster
Driver: Sam R.
En Route
ETA 14 min
Roof Repair
445 Maple St · Sarah Garcia
Driver: Tony B.
Next
1:30 PM
Roof Inspection
114 Birch Ln · Tom Alvarez
Driver: Maria D.
Issue
No access — called
Siding Repair
88 Riverside Dr · Linda Nguyen
Driver: Linda K.

What changes when you switch to Completed

Selecting the Completed tab is the part most software gets wrong — it just shows a flat list. Here, the map redraws into a route replay: each driver's path is drawn as a colored polyline tracing where they actually drove, with a green pin at every completed stop. Hovering or tapping a stop shows dwell time — how long the tech was on site — which is the metric that catches both gold-bricking and undercharging in a single glance.

Route Replay · Today · 4 stops complete

Shop
Roof Insp.
42 min
Gutter
1h 18m
Estimate
22 min
Deck
2h 04m
Roof Repair
3h 22m
Siding
38 min
Jake T.
Carlos R.
Sam R.

Active 6

Completed 6

Today · sorted by completion time

7:54 AM42 min on site
Roof Inspection
114 Birch Ln · Jake T.
9:42 AM1h 18m on site
Gutter Install
220 Oak Ave · Carlos R.
10:36 AM22 min on site
Estimate
77 Cedar Ct · Sam R.
11:18 AM2h 04m on site
Deck Install
310 Willow Way · Carlos R.
12:44 PM3h 22m on site
Roof Repair
445 Maple St · Tony B.
1:08 PM38 min on site
Siding Repair
88 Riverside Dr · Linda K.

Map interactions

Click a pinSlides the matching job card into view in the right panel and highlights it
Click a job cardPans + zooms the map to that driver's pin and pulses the marker
Hover a route line (Completed)Shows driver name, total miles driven, total stops, and total time on the clock
Hover a stop pin (Completed)Shows arrival time, departure time, dwell duration, and customer name
Right-click any pinOpens quick actions: Call driver · Reassign job · Message customer · Open job record
Toggle Traffic layerOverlays live traffic congestion — orange/red roads warn of ETAs at risk
Toggle Routes layerDraws each active driver's planned next-stop route as a dashed colored line

Money, Runway, and New Business

Directly beneath the map sits a four-box strip that answers the owner's next question after where are my guys? — namely, am I making money today, am I booked far enough out, what's in the pipeline, and is my sales team feeding the funnel? These four numbers together tell you whether the business is winning right now, whether it'll still be winning in two months, and whether it'll still be winning two months after that.

Today's Revenue
LIVE
$12,840

↑ 28% vs same day last week

4 jobs invoiced·2 payments cleared
Booked Out
3.2 WKS
$84,200

committed work · crew busy through June 14

now2wk4wk8wk
Pipeline
+8.4 WKS
$210,400

$84K weighted · runway to Aug 18

Quoted 12Proposal 7Verbal 4
Active Leads
4 HOT
17

+6 new this week · 3 cooling

Hot 4Warm 7Cool 6
Today's Revenue
"Did we make money today, or did the day go sideways?"
Sum of invoices issued + payments collected since midnight. The trend % compares to the same weekday last week so seasonality doesn't lie to you.
Booked Out
"How long can I keep paying my crew without selling another job?"
Total dollar value of scheduled work × weeks of crew capacity it consumes. If this drops under 2 weeks, sales becomes the priority. Under 1 week, it's a fire.
Pipeline
"Is there enough in the funnel to keep us booked once today's work is done?"
All open estimates + proposals + verbal commits, plus a weighted total that applies stage-by-stage close rates. The runway date tells you when, if you closed everything, you'd run out of work.
Active Leads
"Is the top of the funnel feeding the bottom fast enough?"
Total leads being actively worked, with temperature distribution. New-this-week tells you marketing is working; cooling-leads tells you follow-up is failing.

Lead Follow-Up

The most expensive thing in a service business isn't a missed appointment — it's a lead that went cold because nobody called back. The Lead Follow-Up panel surfaces the sales tasks that bring in new work, not the operational tasks that manage existing work. Overdue invoices, expiring permits, and unassigned appointments live in Needs Attention below; that's the "keep the wheels on" list. This list is the "fill the calendar two months out" list, and on most days it's the one that actually matters.

TempContact / StageWhy it's flaggedAction
HotBob Jenkins · Verbal yesSaid "send the contract" yesterday — proposal still in draft, 18hr stalledSend proposal
HotRebecca Torres · Quote requestedInbound deck quote yesterday afternoon — estimate not yet draftedDraft estimate
HotAmy Chen · Estimate sentEstimate #E-089 expires tomorrow — no response since opened 4 days agoNudge call
WarmMike Williams · Proposal sentProposal sent 7 days ago — opened twice, never repliedFollow up
WarmSarah Smith · Estimate sentHasn't replied in 3 days — temperature dropping from hot to warmSMS check-in
WarmGreg Foster · Site visit bookedVisit scheduled Friday — no confirmation reply in 48hrConfirm visit
CoolTony Park · Old inquiryAsked for siding quote 2 weeks ago — went silent — worth a re-engageRe-engage
CoolLinda Park · Past customerLast job 14 months ago — strong NPS — natural reroof timing approachingCheck-in call

How temperature is set: Hot = verbal yes, estimate accepted, or contract requested. Warm = engaged within 7 days, opens emails, replies to SMS. Cool = no activity in 7–30 days but historically interested. Anything older than 30 days with no signal drops out of the dashboard into the long-tail Re-Engagement Campaign — it's still in the CRM, just not in your face.


Needs Attention

The Needs Attention section surfaces time-sensitive items that require action. Items are ordered by urgency. Each alert is actionable — clicking takes the user directly to the relevant record.

UrgencyAlert TypeExample
HighOverdue InvoiceInvoice #1042 — Sarah Johnson — 14 days past due
HighNo Response — LeadMike Williams hasn't replied in 3 days
HighUnassigned AppointmentRoof inspection tomorrow at 9am — no tech assigned
HighPermit Expiring445 Elm St permit expires in 4 days
HighPayment FailedCard on file declined — $3,400 invoice
MediumEstimate Expiring SoonEstimate #E-089 — expires tomorrow
MediumProject StalledSiding project at 220 Oak hasn't updated in 6 days
MediumLow Crew AvailabilityThursday has only 1 tech available — 3 jobs scheduled
MediumMissed CallMissed call from unknown number at 2:14pm

Revenue Chart

A 12-week rolling bar chart showing weekly revenue totals. Hovering over any bar shows the exact dollar amount and the number of invoices in that week. The current week bar updates in real time as invoices are paid.

Weekly Revenue — Last 12 Weeks
W1
W2
W3
W4
W5
W6
W7
W8
W9
W10
W11
Now

Current week Prior weeks


Today's Schedule

A time-blocked list of all appointments and jobs scheduled for today. Each row shows the customer name and address, assigned technician(s), job type, scheduled time window, and current status.

TimeJob / AddressCustomerTechStatus
7:30 AMRoof Inspection — 114 Birch LnTom AlvarezJake TorresComplete
9:00 AMGutter Install — 220 Oak AveMarcus PatelCarlos ReyesOn Site
10:30 AMSiding Repair — 88 Riverside DrLinda NguyenUnassignedNo Show
1:00 PMEstimate — 77 Cedar CtAmy ChenJake TorresEn Route
3:00 PMDeck Install — 310 Willow WayGreg FosterSam RiveraScheduled
Scheduled
Assigned and confirmed, not yet started
En Route
Tech marked as driving to the job
On Site
Tech has arrived, timer running
Complete
Job marked done
No Show
Tech didn't arrive within scheduled window

Recent Activity Feed

A chronological log of actions taken across the entire account in the past 24 hours. Each entry links directly to the record it refers to.

2:41 PM💳Invoice paidInvoice #1038 — $2,800 — Marcus Patel
1:55 PM👤New lead createdInbound call — Rebecca Torres — Deck quote request
1:22 PM📄Estimate sentEstimate #E-091 — Amy Chen — $4,100 roofing job
12:04 PM🔄Project status changedGutter Install 220 Oak — Scheduled → On Site
11:38 AM💬Message receivedSMS from Greg Foster — 'Can you come earlier?'
10:15 AM📷Photo uploadedJake Torres uploaded 6 photos — Roof Inspection 114 Birch
9:02 AM⏱️Time entry loggedCarlos Reyes — 1h 24m — Gutter Install 220 Oak
8:30 AM📅New appointment bookedEstimate — 77 Cedar Ct — Amy Chen — 1:00 PM today

Conversations Preview

Shows the 5 most recent unread messages from the Conversations inbox. Clicking any row opens the full conversation thread.

ContactChannelMessageTime
Greg FosterSMSCan you come earlier? I'll be home by 2.2:31 PM
Sarah JohnsonEmailHi, I wanted to follow up on the invoice from—1:17 PM
(Unknown)CallMissed call — no voicemail left2:14 PM
Tom AlvarezSMSJake did a great job today, very professional.12:52 PM
Rebecca TorresSMSHey, is there any availability this week for a—11:40 AM

Quick Actions

+ New Contact
Create a new customer or lead record
+ New Project
Start a new project from scratch
+ New Estimate
Draft and send an estimate
+ New Invoice
Generate an invoice directly
Schedule Job
Add an appointment to the calendar
Send Message
Open the compose window for any contact

AI Receptionist Strip

A live status bar at the bottom of the dashboard showing the AI phone receptionist's real-time activity. Clicking the strip opens the full AI Receptionist report.

AI ReceptionistActive
Updated just now · click to open full report →
Calls Handled Today
11
8 resolved · 3 transferred
Leads Captured Today
3
new contacts added to CRM
Appointments Booked
2
added to calendar automatically

Role-Based Dashboard Views

The dashboard adapts based on the logged-in user's role. Each role sees a version optimized for their responsibilities.

Owner
Full KPI strip
Revenue chart
Needs Attention panel
Full activity feed
All quick actions
Dispatcher
Today's schedule (primary)
Unassigned jobs alert
Crew map & locations
Conversations preview
Technician
My jobs today only
Clock-in / clock-out prompt
Job notes & photos
No financial data shown
Estimator
Open estimates list
Pending approvals
Upcoming estimate appointments
Estimate quick-create
Bookkeeper
Revenue chart
Pending invoices
Overdue payments
Full payment history

Customization

Drag-and-drop layoutOwners & AdminsRearrange any widget by dragging it to a new position on the grid
Per-role widget visibilityOwners & AdminsHide or show specific widgets for each user role independently
KPI strip configurationOwnersChoose which 5 metrics to display from ~20 available data points
Widget resizeOwners & AdminsExpand or collapse widgets — e.g. make the schedule list full-width