Field service dispatch board that ranks the closest tech

See today's unassigned jobs and every technician's lane on one screen, with real drive times and a best fit suggestion on every card.

App
GeolocationAirtableSlack BotOperationsData SyncNotifications & Alerts
PromptCreate

Build me a morning dispatch board for our field service team. It is one screen the dispatcher opens at the start of every day: a column of today's unassigned jobs on the left, and a lane for each technician beside it holding that tech's stops in running order.

Data sources. Jobs and technicians both live in Airtable. Use Airtable List Records to load today's jobs (customer name, service address, time window start and end, priority, status, assigned technician, and stop order) and to load the technician roster (name, where they start the day, and an optional per-tech daily drive time limit). Filter jobs to today's date.

What each card shows. Every job card shows the customer address, the time window, the priority, and the drive time from that technician's previous stop. Cards in the unassigned column additionally show a ranked best fit suggestion naming the two or three technicians who are closest, with the extra drive time each one would take on.

Making the distances real. Use Geolocation Forward Geocode to turn every job's service address and every technician's start location into coordinates, and cache those coordinates back onto the Airtable record so the same addresses are not geocoded again every morning. Use Geolocation Calculate Distance Matrix with each technician's current end of route position as the origins and the unassigned job locations as the destinations, and rank the best fit suggestions from that result. Once a technician's day is set, use Geolocation Get Directions across their ordered stops to build the turn by turn running order and the per leg drive times shown on the cards.

Actions on the board. The dispatcher can assign an unassigned job to a technician, move a job from one technician's lane to another, and reorder stops within a lane. Each of those writes straight back with Airtable Update Record, setting the assigned technician and the stop order, and the affected lane recalculates its drive times immediately.

Background agent. Add a Rebuild today's routes button that kicks off a background agent. The agent re-sequences every technician's stops to cut total drive time while respecting each job's time window and its priority, so a high priority job never gets pushed late just to save a few minutes of driving. It writes the new stop order back with Airtable Update Multiple Records, then posts the finalized run sheets to the dispatch channel with Slack Bot Send a Message, one clean run sheet per technician listing the stops in order with addresses, time windows, and drive times. When the agent finishes, the board refreshes to the new order and shows what moved and how much total drive time was saved.

Guardrails. Show a running total drive time at the top of each technician's lane, compared against a configurable daily limit, and clearly flag anyone pushing past it. Keep unassigned jobs pinned in the left column, and keep a separate pinned section for unroutable jobs, meaning an address that failed to geocode, a job no technician can reach inside its time window, or a job with no time window set at all. Nothing should silently fall off the board. The daily drive time limit should be editable inside the app.

What does this prompt do?

  • One screen for the morning: unassigned jobs on the left, a lane for each technician, and every card showing the customer address, time window, priority, and the drive time from that tech's previous stop.
  • A ranked best fit suggestion on each unassigned job, worked out from real driving distance from where each technician already is, instead of who looks free on paper.
  • Assign or reorder a job with a click and it saves straight back to your jobs table, so the board and your records never drift apart.
  • A Rebuild today's routes button that re-sequences every technician's stops to cut total drive time, respects time windows and priority, and posts the finished run sheets to your dispatch channel.

What do I need to use this?

  • An Airtable base with a table of jobs (customer, service address, time window, priority, status, assigned technician) and a table of technicians (name and where they start the day)
  • A Slack workspace and the dispatch channel where run sheets should be posted
  • A daily drive time limit, if you want the board to flag technicians pushing past it
  • No separate maps account to set up. Address lookups, distances, and directions are built in.

How can I customize it?

  • Change the daily drive time limit, or set a different one for each technician
  • Decide what best fit means to you: simply closest, or closest that still clears the job's time window and priority
  • Choose whether the rebuild posts one run sheet per technician or a single combined roundup, and which channel it lands in

FAQs

Does this replace our Airtable base?
No. Airtable stays the system of record. The board reads today's jobs and technicians from your existing tables and writes assignments and stop order back to those same records, so anyone still working in Airtable sees the same picture.
How does it know which technician is closest?
It turns each job's service address into a map location, then measures the actual driving distance and time from where each technician's route currently ends. That is what produces the ranked best fit list on an unassigned card, rather than a straight line guess.
What happens to a job with a bad address?
It stays pinned on the board in an unroutable section with the reason shown, such as an address that could not be found or a time window nobody can reach in time. Nothing is silently dropped from the day.
Can the dispatcher overrule the suggestions?
Yes. The best fit ranking is only a suggestion. Dispatchers can assign any job to any technician and reorder stops by hand, and the drive time totals update to reflect whatever they chose.
What does the rebuild button actually change?
It re-sequences the order of each technician's existing stops to cut total driving, keeping time windows and job priority intact. It does not invent or cancel jobs, and the new order is written back to Airtable along with run sheets posted to your dispatch channel.

Related templates

Plan a field sales day around drive time and neglected accounts

Pick a date, a starting point and a radius, then build a sequenced day of customer visits that lands straight on your calendar.

Geolocation
HubSpot
Google Calendar
App
Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Browse and shortlist creators without burning audit credits

Search creators for free, shortlist the best with your team, and spend an audit credit only when you decide someone is worth a closer look.

HypeAuditor
Airtable
Slack
App

Stop planning tomorrow's routes on a whiteboard.

Give your dispatcher one board that shows every job, every technician, and the real drive time between them.