HVAC Dispatch Software for Scheduling Service Calls
A heat wave does not arrive politely. Forty calls come in before noon, three technicians are already committed, and somebody has to decide who goes where without losing the maintenance-agreement customer who has waited two days.
HVAC dispatch software is the screen that decision happens on. Opsler books the call, holds the unassigned ones in a priority queue, gives every technician a lane, checks their existing work before an assignment lands, and gets the job to their device with the address and the customer’s number attached. Assignment stays a human judgement. Everything around it stops being a phone call.
Budding is free forever: 2 seats, 1 admin and 1 technician, 50 jobs a month. Pro is $25 per seat per month with no seat minimum and a 14-day trial, no card.
HVAC Scheduling vs Dispatch vs Route Optimization
Almost every vendor page sells these three as one product called HVAC scheduling software, which is how a six-van shop ends up paying for a routing engine it switches off in March. They are separate operations with separate failure modes, and knowing which one you are short of tells you what to buy.
| Operation | The question it answers | How Opsler does it | Where it lives |
|---|---|---|---|
| HVAC scheduling | When does this call happen? | A date, and either a specific start time or an all-day window, set on the call itself when you book it. | Owned by the job record |
| HVAC dispatch | Who is taking it, and do they know? | Assigning the call to a technician, which pushes it to their device and emails them the address and customer phone. | Owned by this page |
| Route optimization | What order should the day run in? | Resequencing one technician's flexible stops around their fixed appointments using Google Directions. Pro, and only when you press the button. | Owned by the route page |
Most small HVAC operations are short on the middle one. The calls are already scheduled somewhere, usually a whiteboard and a group text; what breaks is getting the change to the person driving. If drive time is genuinely your biggest cost, read route optimization for field service before you read the rest of this page.
Book HVAC Service Calls on a Visual Board
A call enters Opsler as a job record and lands on the HVAC dispatch board the moment it is saved. The new-call form asks for four things, in this order, and no more.
Customer, then the service address
Search the customer; their address card loads underneath so the CSR is not retyping a street name from a phone call.
Specific Time or Anytime Today
Specific Time takes a date and start time, with an optional end. Anytime Today takes the date alone and marks the call movable.
Priority and estimated duration
Priority drives the queue order and the wording of the technician's notification. Duration is entered in hours.
Service type and description
Service type comes from your own list, not a fixed menu. Description is where the CSR puts what the homeowner said.
Set a start time outside the operating hours in your settings and the form warns you on the spot, naming the hours it fell outside. It does not stop you saving. Emergency HVAC work happens at 9pm and software that refuses the booking is worse than useless.
What the board shows once it is saved
Stats strip
Total calls, assigned, unassigned, and how many technicians are marked available. Four numbers, before you scroll anything.
Unassigned queue, left
Every logged call with nobody on it, sorted URGENT first, then HIGH, then NORMAL, then LOW, and oldest-first inside each band.
Technician lanes, right
One card per technician: initials, a coloured availability dot, today's job count, and up to two specialization tags off their record.
Day, Week and Map
Day is the season view. Week extends the fetch to the end of the week for agreement planning. Map is Pro.
Each queued card carries the last six characters of the job number, the priority tag, the service type, the customer, the scheduled time and a truncated location line. That is enough to route a call without opening it, which is the only reason a queue beats a list. The full record behind the card, including notes, photos, parts and the timer, is covered on work order management.
Assign and Reassign Technicians
There are two ways to dispatch HVAC technicians in Opsler and both are one gesture. Drag the card from the queue onto a technician’s lane, or open Quick Assign from the plus button on the card and pick a name. Quick Assign only lists technicians currently marked available, so it is the faster one when volume matters more than precision.
Assign
Drag a queued card onto a lane. The call leaves the queue, the lane re-sorts by time, and the technician is notified.
Reassign
Drag a booked card from one lane to another. The new technician is notified; the one who lost it is told who took it.
Quick Assign
The plus button on a queued card opens a short list of available technicians. One tap, no dragging on a laptop trackpad.
Change the time
Times live on the job record, not on the drop position. Open the call and change the window there.
What the board tells the dispatcher
- Availability, as a green, amber or grey dot: available, on a job, unavailable
- How many calls that technician already holds today
- Up to two specialization tags, typed on the technician’s own record
- A lock icon on fixed appointments, a shuffle icon on anytime-today work
What it deliberately does not do
Opsler will not choose the technician for you. The specialization tag is free text you typed, not a certification matrix, and nothing in the product reads it to filter a list or rank a candidate. There is no auto-dispatch and no location-triggered assignment.
For an HVAC business that is the right trade. Who gets the 4pm rooftop call in August depends on who has been on a roof since seven, who the property manager trusts, and who you are trying to keep off overtime. None of that is in a database field, so the software surfaces the facts and leaves the call to the person who knows the crew.
Handle Emergency No-Cooling Calls
Two in the afternoon, ninety-six outside, and a maintenance-agreement customer with a dead condenser. Emergency HVAC dispatch is not a feature so much as a sequence, and the sequence in Opsler runs like this.
Book it as URGENT
Save the call with priority URGENT. It sorts to the head of the unassigned queue ahead of every HIGH and NORMAL job already waiting.
Read the lanes
Availability dots and job counts tell you who has room. A technician on two calls with a green dot is a different proposition from one on six.
Assign
Drag or Quick Assign. The check against their existing work runs server-side as part of the assignment, before anything is written.
It reaches them
An email with the address and the customer's number, plus a push titled 🔴 URGENT JOB that stays on screen until they act on it.
Priority changes the wording, not the routing
The four levels are URGENT, HIGH, NORMAL and LOW. They control the queue order, the colour of the card on the lane, and how the technician’s push notification is titled and whether it clears itself. An EMERGENCY or URGENT call arrives as a notification the technician has to dismiss deliberately; a NORMAL filter change does not interrupt them. Priority never reassigns anybody’s work on its own.
The displaced call is your problem, honestly
If squeezing the emergency in pushes a 3pm tune-up, Opsler does not move that customer or warn them for you. Drag the tune-up to another lane or another day and the affected technicians are notified. The customer is not, until somebody tells them. Any vendor claiming otherwise is describing a cascade engine, and we have not built one.
Detect Schedule Conflicts
HVAC scheduling conflicts are almost always the same shape: a call gets promised on the phone, gets given to whoever is closest, and nobody checks what that person already has at two o’clock. Opsler checks. Every assignment runs a server-side comparison against every job that technician already holds on that date, ignoring anything already completed or cancelled, and grades what it finds.
EXACT_TIME
The new call and an existing one start and end at the same moment. Treated as critical.
TIME_RANGE
The windows overlap at all. A 1–3pm changeout against a 2–4pm no-cool. Also critical.
SAME_DAY
One of the two has no times set, so only the date can be compared. Raised as a notice, not a clash.
Who finds out, and when
This is the part most dispatch pages get wrong, including an earlier version of this one, so here is the mechanism exactly. The check runs at the moment of assignment, inside the assignment itself. The assignment then goes through, and the technician whose day just changed receives a notification naming the job it clashes with. There is no blocking dialog for the dispatcher to dismiss.
That is a deliberate choice about who needs the information. In July your dispatcher usually knows they are double-booking someone and is doing it on purpose. The person who does not know is the technician, and they are the one who will find out at 2:05 in a customer’s driveway. So the alert follows the consequence.
The check compares technician time only. It does not model a shared recovery machine, a crane booking or the one van with the 410A charge. Those stay on your own rules. The full mechanics, including how the same check behaves for multi-technician jobs, sit on the service technician scheduling feature.
Use Map and Route Context Carefully
HVAC routing is where vendor pages and product reality drift furthest apart, so this section states the boundary plainly rather than implying more.
Map view, exactly
Map view opens one embedded Google map, centred on the first call of the day that has coordinates on it. One marker. It is geographic context for the day, not an operations picture: no pin per job, no technician positions, no drawn route. It is a Pro view.
So do not buy Opsler expecting to glance at a map and see who is closest to a new call. That answer is not on the screen. If a live technician position matters to you, the capability that exists is customer-facing rather than dispatcher-facing: see live technician tracking.
Route optimization, exactly
Nothing reorders a day on its own. You press optimize, for one technician, and only their Anytime Today calls move. Every Specific Time appointment is an anchor the optimizer slots the movable work around, so an 8am agreement visit you promised stays at 8am.
It needs at least two movable calls with coordinates. Google Directions returns the order, Opsler rebuilds the timeline around the anchors, and you get a proposal with the distance and time difference and two buttons. Nothing is saved until you press Save. It never moves work between technicians. Full mechanics on route optimization.
Keep Technicians Updated in the Field and Offline
Dispatch only works if the far end receives it. The HVAC technician scheduling app is the same Opsler, installed from a supported browser on an Android phone or an iPhone and launched from the home screen, with a technician-shaped view instead of the office one. No app store, nothing to approve.
Office to field
Assigning or reassigning a call broadcasts an update that refreshes the technician’s job list without them pulling to refresh, and sends the email and push described above. Ten statuses carry the job back the other way: Pending, Scheduled, On My Way, Arrived, In Progress, Paused, On Hold, Rescheduled, Completed, Cancelled. On My Way is the one that also reaches the customer.
Before the crawl space
Sync for Offline runs seven steps on demand and shows each one finishing: today’s jobs, the parts catalogue, the service catalogue, tax presets, the technician’s assigned van, that van’s stock levels, and job history for every customer on today’s list. It reports what is cached and how long ago it synced.
The honest limit
A call assigned while a technician is under a house with no bars does not reach them until they have signal again. Sync is something they press before they lose it, not a background service. For a genuinely urgent reassignment, ring them. Detail on the offline technician app.
When the technician cannot do the job
The reverse direction is the half most dispatch software forgets. A technician who arrives and finds a seized blower motor with no matching part on the van raises a reschedule from the job, choosing one of eleven reason codes, adding an optional follow-up date and notes. Choosing Other requires them to write what happened.
The call then moves to an admin queue in the office, alongside anything on hold or flagged, twenty to a page, each row showing its reason so a coordinator can resolve it with a new date. Over a season that queue is also the most useful record you own: a month of Parts Needed is a van-stocking problem, not a dispatch problem.
Update Customers with Current Supported Channels
HVAC customer notifications are where you should read a vendor page most sceptically, because the roadmap and the product get written in the same font. Here is the current state, with nothing planned dressed up as shipped.
| Channel | Fires when | Carries | Status |
|---|---|---|---|
| Portal link by email | The technician sets the call to On My Way | A no-login link, the technician’s name and the estimated arrival time. The office admins get a push at the same moment. | Live |
| Tracking view | The customer opens that link while the technician is en route | Arrival time as a clock time, technician name, tap-to-call, the address and a last-updated stamp, refreshing every 15 seconds. | Live · Pro |
| Completion email | The job is marked complete | Confirmation of the visit and the review request, to the address on the customer record. | Live |
| SMS | — | Planned as bring-your-own-provider, so you would keep your own carrier rate rather than pay a markup per message. | Not live |
Every ETA change is stored with who changed it and whether it came from the technician, the dispatcher or the system, so a “you said two o’clock” argument has a record behind it.
The customer never makes an account and never downloads anything. The link is scoped to them. Scope and security boundary on the customer portal.
Connect Dispatch to Equipment, Parts and Work Orders
HVAC service dispatch fails on arrival more often than on assignment. The technician gets there, and the last three visits on that condenser are in somebody else’s head. Three things ride along with the assigned call.
Customer and equipment history
Previous visits on the customer record travel with the job, and are among the seven things Sync for Offline caches before the technician leaves signal.
HVAC customer and equipment recordsVan stock
The technician's assigned van and its stock levels sync to the device, so an on-site parts decision does not need a call to the warehouse.
warehouse, truck and van inventoryThe work order itself
Status, notes, photos, parts and the timer write back to the same job record the dispatcher assigned, which is what later becomes the invoice.
work order managementReporting, Limitations and FAQs
Two questions decide whether this fits your shop: what it will tell you at the end of the season, and what it flatly will not do.
What you can measure
The board’s own strip gives you today: total calls, assigned, unassigned and available technicians, on every plan. The technician efficiency table on the revenue dashboard gives you the season, one row per technician: jobs completed, total hours and average hours per job, revenue, revenue per hour, and a percentage scaled from that hourly figure, with the top three ranked. That table is Pro.
Read the hours column before the percentage. Average hours per job across a summer is the number that tells you whether you are quoting durations honestly, which is what actually decides how many calls a day the board can hold.
What Opsler does not do
- No AI scheduling and no auto-dispatch. A person assigns every call.
- No skill or certification matching. Specialization is a free-text tag the board displays and nothing reads.
- No GPS-based assignment, no technician pins on the dispatch map.
- No SMS. Email and the portal link only.
- No Manual J or load calculations, duct design, CAD, diagnostics, Bluetooth probe analysis or equipment control. Opsler runs the business around the work, not the engineering inside it.
Where Opsler fits, and where it does not
| Your situation | Verdict |
|---|---|
| One to fifteen technicians, one dispatcher holding the day | Good fit. This is the shape the board was built for. |
| Assignment is a judgement call you want to keep making | Good fit. Nothing overrides the dispatcher. |
| Technicians work basements, crawl spaces and mechanical rooms | Good fit. Cache the day before they go under. |
| Twenty vans where drive time is the largest controllable cost | Partial. Route optimization is per technician and manual, and the map will not satisfy you. |
| You need SMS reminders live on day one | Not yet. Email and portal only. |
| You want the system to pick the technician by certification | Wrong product. No skills engine exists or is being implied. |
HVAC dispatch FAQ
Score it on the week your phone does not stop. Six things decide it. Can one person hold the whole day on one screen and move a call without picking up the phone. Does the change land on the technician's device without them refreshing. Does the system check the technician's existing work before it lets you commit, and tell somebody when it clashes. Does the map and route capability match what you actually do, or are you paying for a routing engine to serve a four-van shop. Which customer channels are genuinely live today, not on a roadmap. And does the price scale with your crew rather than a five-seat block you will not fill. Opsler answers those in order on this page, including where the answer is no.
No. There is no AI scheduling, no auto-dispatch, no skill matrix and no GPS-based assignment. A person picks the technician, by dragging the call onto their row or by using the Quick Assign button on the card, and that person is choosing between people they know. The board gives them the inputs that are actually recorded: who is marked available, how many jobs each already holds today, and the specialization typed on each technician's record. It does not pretend to know who is certified on a 20-year-old rooftop unit or which customer asked for Dave by name.
Every assignment triggers a server-side check against every job that technician already holds on that date, skipping anything completed or cancelled. Three grades come back: EXACT_TIME when the start and end match, TIME_RANGE when the windows overlap at all, SAME_DAY when one of the two jobs has no times set so only the date can be compared. The assignment goes through, and the technician receives a notification naming the job it clashes with, marked as a conflict for the first two grades and a notice for the third. It is deliberately not a modal in the dispatcher's face, because in season the dispatcher usually already knows and is doing it anyway.
Not today, and it is worth being exact about this rather than letting you find out in week two. Map view opens a single embedded Google map centred on the first call of the day that has coordinates. It does not drop a pin per job and it does not plot technician positions. Live technician location is a separate customer-facing capability on the tracking link, not a dispatcher overview. Map view and route optimization are both Pro.
No. SMS is planned as a bring-your-own-provider option and is not live, so nobody should buy Opsler on the strength of it. What runs today is email and the customer's portal link. When the technician sets the job to On My Way, the customer is emailed a no-login portal link carrying the estimated arrival time, and the office admins get a push at the same moment. Completion sends a second email. All of it at no per-message cost, which on a $25-per-seat plan is the point.
Free forever for 2 seats. Pro is $25 per seat per month, no seat minimum, 14-day trial without a card. A lifetime option is $499 for 5 seats. Compare the rest of the HVAC workflow on HVAC business software.
Explore HVAC Software by Workflow
Each page covers one part of the HVAC operation in depth, with the same verified product detail.
HVAC Software Overview
The full service workflow, booking to payment
HVAC Business App
Office and technician app, offline field work
HVAC CRM
Customers, service history and warranties
HVAC Estimates
Good-Better-Best proposals and approval
HVAC Invoicing
Job-to-payment billing and portal delivery
HVAC Accounting Export
QuickBooks and Xero CSV export
HVAC Maintenance
Preventive visits, and the agreement boundary
HVAC for Small Business
Cost, setup and fit for small teams
Ready to Run Your Business Without the Chaos?
Scheduling, dispatch, estimates, invoicing, customer portal, and a free branded website — start completely free, upgrade to Pro when you scale.
Free forever on the Budding plan. No credit card required.