Schedule and assign a job
Getting a job onto the calendar and getting the right person on it are really one motion — most of the time you're doing both in a single drag. This guide covers putting a job on the schedule, working with suggested assignments, running auto-assign across the whole backlog, and what happens when a placement needs a second look before it's allowed to stick.
Put a job on the schedule
Unscheduled work sits in its own lane (the unscheduled rail in Schedule view, or the Unscheduled column in Board view). To place it:
- Drag the card onto a technician's row at the time you want, in either Day or Week view. Dropping it on a tech's row both schedules the time and assigns that tech in one move.
- Drop it on a day without picking a technician (Week view) to schedule the time only — it stays unassigned until you pick someone.
A dropped job keeps a sensible window: moving an already-scheduled visit preserves its existing length, and a brand-new placement gets the shop's default job duration for that job type. There's no separate save step — the move takes effect as soon as you drop it.
Suggested assignments
An unassigned job on the board can carry a suggested technician — a name, a match percentage, and a short reason. Thermal builds this in two steps: first it narrows to technicians who hold every certification the job requires, then it scores that qualified pool on current workload, drive-time proximity to the job site, and — for a job tied to a service agreement — how high-value that agreement is. The reason line reflects whichever of those actually mattered: "Qualified · lightest load today", "Qualified · closest available · priority agreement", and so on.
- Accept takes the suggestion as-is.
- Change clears it and lets you pick someone else from the dropdown.
- If nobody available holds the required certification, the board shows an amber "No qualified tech" note instead of a suggestion — assign it manually once you've sorted out coverage.
A suggestion is a proposal, not a done deal — nothing is assigned until you act on it.
Auto-assign all
Auto-assign all applies that same scoring to every open, unassigned job at once, so you don't have to accept suggestions one at a time on a busy morning. It's atomic — if something goes wrong partway through, nothing is half-assigned — and it deliberately excludes technicians currently on leave from the pool entirely (a manual assignment to someone on leave still goes through, with a warning; auto-assign just skips them).
When a placement needs a second look
Every time a job lands on the schedule — a fresh placement, a reschedule, a reassignment, or an added visit — Thermal checks it against a few rules before letting it stick. Some are hard stops; others are warnings you can choose to override:
| Stops the placement (can't override) | Reason |
|---|---|
| Closed job | The work order is already completed, invoiced, or canceled. |
| Invalid technician | The selected user isn't a technician in this shop. |
| Invalid times | The visit's end time is before its start time. |
| Visit already done | That specific visit is already completed or canceled. |
| Warns, lets you confirm | Reason |
|---|---|
| Backdated | The visit is being scheduled in the past. |
| Double-booked | The technician already has an overlapping appointment. |
| Outside hours | The placement falls outside that technician's working hours. |
| Missing certification | The technician doesn't hold a certification this job requires. |
| SLA breach | This placement lands past the job's guaranteed response window. |
| Customer already confirmed | The customer was already told about the original time — they'll need to be re-notified. |
A warning shows you the reason and asks you to confirm — Schedule anyway applies the change and, if the customer had already been confirmed for the old time, offers a notify customer toggle so they hear about the new one. A hard stop just tells you why and changes nothing; there's no "confirm anyway" for those.
Self-dispatch claims
If your shop lets technicians claim open jobs from their own app, a claim shows up on the board as a pending request, not a done assignment — the tech tapping Claim only asks. Confirm is what actually assigns the visit; Reject sends it back to the pool. Nothing is assigned until you act on it, same as a suggested assignment.
Reference
- Job and priority values — work-order statuses and priorities, generated straight from the product, are in Status & domain values.
- Who can reach Dispatch — Owners, Dispatchers, and Office users; not Technicians. See Roles & permissions.