Field service dispatch board that ranks the closest tech

By General Input

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.

Integrations

  • Geolocation
  • Airtable
  • Slack Bot

Type

App

Categories

  • Operations

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them