AI Automation for Field Services: Dispatch, Job Tracking, and Customer Communications
If you run a field service business — HVAC, plumbing, electrical, landscaping, pool service, pest control — you know the rhythm. The phone rings at 7:15 AM with a no-heat call in January. Your dispatcher juggles technician schedules, tries to match the right skills to the right job, texts the customer an arrival window, and prays nobody’s truck breaks down on the way. Meanwhile, three other calls are holding.
The back office of a field service company is a logistics puzzle solved with whiteboards, sticky notes, and a lot of phone calls. It works — but it’s expensive, it’s fragile, and it scales by hiring more office staff rather than by getting smarter. Every new technician you add doesn’t just need a van and tools. They need someone to dispatch them, track their jobs, and keep their customers informed.
The open source automation stack has gotten good enough to handle a large chunk of that office work. In this post, we’ll walk through three high-impact automation areas for field service companies: intelligent dispatch, real-time job tracking, and automated customer communications. We’ll use tools you can self-host — n8n, Ollama, Odoo, and Cal.com — and keep your customer and operational data on infrastructure you control.
The Tool Stack
Before diving into the workflows, here’s what we’re working with:
| Tool | What It Does | Role in Field Service Automation |
|---|---|---|
| n8n | Workflow automation engine | Routes service requests, triggers communications, connects dispatch systems |
| Ollama | Local LLM runtime | Triages incoming requests, categorizes urgency, drafts customer messages |
| Odoo (Community) | ERP / CRM | Manages customer records, job tickets, technician schedules, and invoicing |
| Cal.com | Open source scheduling | Handles appointment booking, arrival window assignment, and calendar sync |
| IMAP / Webhooks | Email and API connectors | Captures service requests from phone, email, web forms, and online booking |
All of these are open source. All can run on a single server. None require per-technician licensing or sending your customer data to a third-party SaaS platform you don’t control.
Let’s walk through each automation area.
1. Intelligent Dispatch: From Whiteboard to Automated Routing
Dispatch is the heart of a field service operation, and it’s where most office time goes. When a call comes in, someone has to figure out: What’s the problem? How urgent is it? Which technician has the right skills? Who’s closest? When can they get there?
A skilled dispatcher does this in their head in about 90 seconds. But when the call volume goes up — first cold snap, storm damage, peak season — that 90 seconds becomes a bottleneck, and calls start backing up.
Here’s how to take the routine part of dispatch off your team’s plate.
The Workflow
Step 1: Capture. Service requests come in through multiple channels — phone, email, your website contact form, online booking. n8n monitors all of them. For phone calls, you can use an open source PBX like Asterisk or a VoIP service that sends webhook notifications when a call is logged or a voicemail is left. For email and web forms, n8n connects directly.
Step 2: Triage with AI. This is where Ollama earns its keep. n8n passes the incoming request — the customer’s description of the problem, their address, and any history in your system — to a local LLM running on your server. The LLM does three things:
- Categorizes the issue. Is this a no-heat call in January (emergency), a routine maintenance request (non-urgent), or a new installation quote (sales lead)? The LLM assigns a category and priority level based on rules you define.
- Extracts key information. Customer name, address, phone, equipment type, problem description — pulled from whatever format the request came in and normalized into structured data.
- Suggests a technician. If the request includes enough detail, the LLM can match the problem type to technician skills in your database. A boiler leak? Route to the tech certified in hydronic systems. A mini-split installation? Route to the tech who’s done the most of those this quarter.
This isn’t the LLM making the final dispatch decision. Your dispatcher still reviews and approves. But instead of starting from scratch on every call, they start with a pre-filled job ticket, a priority level, and a technician recommendation. That 90-second decision drops to 15 seconds.
Step 3: Store and schedule. n8n creates a job ticket in Odoo with all the extracted information, links it to the customer’s record (or creates a new one), and proposes a time slot based on the technician’s current schedule in Cal.com. For emergency calls, n8n flags the ticket and sends an immediate alert to the dispatcher — it doesn’t auto-schedule, because emergencies need human judgment.
Step 4: Confirm with the technician. n8n sends the proposed job to the technician’s phone via a self-hosted messaging setup (Mattermost, SMS gateway, or even a simple mobile-friendly web dashboard). The technician accepts, declines, or proposes an alternative time. If they decline, n8n loops back to Step 2 and suggests the next-best technician.
What This Saves
A field service company with 8 technicians typically handles 30-50 service requests per day during peak season. Manual dispatch for each request takes 3-8 minutes depending on complexity. The automation doesn’t eliminate dispatch — emergencies, unusual requests, and schedule conflicts still need a human — but it handles the 70% of calls that are routine, cutting average dispatch time from 5 minutes to under a minute. That’s roughly 2-3 hours of office staff time per day freed up for work that actually requires judgment.
2. Real-Time Job Tracking: Know Where Every Job Stands Without Calling Anyone
The second great time sink in a field service office is status checking. A customer calls: “Where is your guy?” A project manager needs to know: “Did the 2 PM job finish on time?” The office needs to prepare an invoice: “What parts did the tech use?”
Without automation, getting these answers means calling or texting the technician, waiting for a response, and relaying the information. Multiply that by 8 technicians doing 4-6 jobs per day, and you’ve got a full-time job just tracking status.
The Workflow
Step 1: Job status updates from the field. Technicians update job status through a mobile-friendly web form (self-hosted with OpnForm or a custom Odoo interface). The statuses are simple and tap-friendly: En Route, On Site, Diagnosing, Parts Needed, Work Complete, Cannot Complete. No app to install — it’s a web page they bookmark on their phone.
Step 2: Automatic logging. Every status update flows into n8n, which logs it against the job ticket in Odoo with a timestamp. The job ticket becomes a real-time record of the entire service visit — when the tech arrived, how long diagnosis took, what parts were used, when the job finished.
Step 3: Smart notifications. This is where the automation gets genuinely useful. n8n doesn’t just log statuses — it acts on them:
- Technician marks “En Route” → n8n sends the customer a text message: “Your technician is on the way and should arrive in approximately 25 minutes.” No dispatcher involvement needed.
- Technician marks “Parts Needed” → n8n checks inventory in Odoo. If the part is in stock at the shop, it alerts the warehouse to prepare it for pickup or dispatch. If it’s not, it creates a purchase order request for the office manager to approve.
- Technician marks “Work Complete” → n8n generates a draft invoice in Odoo based on the job ticket — labor hours, parts used, travel time — and sends it to the office for review. It also triggers a follow-up message to the customer (more on that in section 3).
- Technician marks “Cannot Complete” → n8n flags the job for immediate dispatcher attention, attaches the technician’s notes, and suggests a follow-up action based on the reason (reschedule with a senior tech, order parts, escalate to manager).
Step 4: Daily summary. At the end of each day, n8n compiles a summary — jobs completed, jobs carried over, parts used, technician hours — and posts it to a Mattermost channel or sends it via email. The office manager sees the day’s results without chasing anyone down.
What This Saves
For a company running 8 technicians, status-related calls and texts between the field and the office typically consume 1-2 hours of combined staff time per day. The automated status flow eliminates most of that. More importantly, it eliminates the information lag — the office knows a job is done the moment the technician taps “Work Complete,” not 20 minutes later when someone calls to check.
There’s a second benefit that’s harder to quantify but often more valuable: accurate job data. When status updates are automatic and timestamped, your job costing becomes real data instead of estimates. You can actually see how long a boiler replacement takes on average, which jobs are bleeding time, and whether your pricing reflects your actual costs.
3. Customer Communications: Responsive Without Hiring More Office Staff
Field service customers are not patient people. If their furnace isn’t working in January, they want to know exactly when someone is coming. If the technician is running late, they want to know before they start calling. After the job is done, they want a clear summary and invoice — not a hand-scribbled note.
Most field service companies handle customer communications manually, and they handle them inconsistently. The dispatcher who answers the phone cheerfully at 8 AM is terser at 4:30 PM after 40 calls. Automated communications are consistently fast, consistently polite, and consistently accurate — and they free your staff to have the real conversations that need a human touch.
The Workflow
Step 1: Booking confirmation. When a service request is scheduled (via the dispatch workflow above), n8n sends an automatic confirmation to the customer: date, arrival window, technician name, and a brief description of the scheduled work. If you use Cal.com for booking, this happens automatically — Cal.com sends confirmations and reminders without any custom workflow.
Step 2: Day-of reminders. n8n sends a reminder the morning of the appointment: “Your service appointment with [technician] is today between 1 PM and 3 PM. Reply C to confirm, R to reschedule.” If the customer replies with R, n8n opens a rescheduling flow — offering alternative slots from Cal.com and updating the technician’s schedule.
Step 3: En route notification. As described above, when the technician marks “En Route,” the customer gets an automatic heads-up with an estimated arrival time. This single message eliminates roughly 40% of inbound status-checking calls, based on what field service operators report.
Step 4: Post-job follow-up. After the technician marks “Work Complete,” n8n waits 30 minutes and sends a message to the customer:
“Your service is complete. [Technician name] completed [work summary from job ticket]. Your invoice is attached. If you have any questions about the work performed, reply to this message or call us at [phone number]. If you’re satisfied with the service, we’d appreciate a review at [review link].”
The work summary is generated by Ollama from the technician’s job notes — not the raw notes, but a clean, customer-friendly version. A technician might write “replaced pressure switch on carrier 58sta, checked ignition sequence, cycled 3x ok.” The LLM turns that into: “Replaced the pressure switch on your Carrier furnace, verified the ignition sequence is operating correctly, and tested the system through three complete heating cycles — all running normally.”
Step 5: Follow-up scheduling. For jobs that involve ongoing maintenance — seasonal HVAC tune-ups, quarterly pest control, annual water heater inspection — n8n automatically schedules the next service and sends a reminder when it’s coming due. This turns one-time service calls into recurring revenue without anyone having to remember to follow up.
What This Saves
A company doing 40 jobs per day with manual customer communications spends 30-60 minutes per day just on booking confirmations and reminders, plus another 30-45 minutes on post-job follow-up that often gets skipped when the office is busy. The automation handles all of it consistently, every time, for every job. The skipped follow-up is the hidden cost — when you don’t send a post-job message, you lose the chance to catch a dissatisfied customer before they leave a bad review, and you miss the opportunity to schedule the next service.
Getting Started: What to Automate First
If you’re running a field service business and this sounds appealing but overwhelming, don’t try to build all three workflows at once. Here’s the order that delivers the most value with the least complexity:
-
Start with customer communications. The en route notification and post-job follow-up are the easiest to set up and deliver immediate, visible value to your customers. You need n8n, a messaging setup, and a simple form for technicians to update job status. Two weeks to set up, instant ROI.
-
Add job tracking next. Once technicians are already updating job status through the web form (for the customer communications workflow), extending that data into Odoo for real-time tracking and daily summaries is a small step. One to two weeks to implement.
-
Layer in intelligent dispatch last. This is the most complex workflow because it involves the LLM, skill matching, and schedule integration. But by the time you get here, you’ll have clean job data, a working technician status flow, and a customer communication system — all of which make the dispatch automation more accurate and easier to build. Three to four weeks.
Total timeline: roughly two months to go from manual everything to a fully automated back office. You don’t need to hire a developer — n8n is visual workflow building, Odoo and Cal.com have standard setup guides, and Ollama runs with a single install command. If you’d rather have someone set it up for you, that’s where we come in.
The Honest Limitations
This isn’t magic, and there are things it won’t do:
- It won’t replace your dispatcher. It will make them dramatically more productive by handling the routine 70% of calls, but emergencies, unusual situations, and angry customers still need a human who can think on their feet.
- It won’t fix bad technician data. If your technicians don’t update job status in the field, the tracking and customer communication workflows have nothing to work with. You need buy-in from your field team, and you need to make the status update process fast and easy — one tap, no typing for routine updates.
- It won’t handle complex multi-day projects well. The workflows in this post are designed for day-of service calls — the 2-8 hour jobs that make up most field service volume. Large commercial projects with multiple phases, subcontractors, and change orders need project management tools (we’ve written about open source options for that) more than they need dispatch automation.
- The LLM triage isn’t perfect. It will occasionally miscategorize a call or suggest the wrong technician. That’s why it recommends and your dispatcher approves — the human is always in the loop for the final decision.
The Bottom Line
Field service companies spend a disproportionate amount of office time on work that follows predictable patterns: log the call, find the technician, tell the customer, track the job, send the invoice. That work doesn’t require creativity or judgment — it requires consistency and speed, which is exactly what automation does well.
The open source stack — n8n, Ollama, Odoo, Cal.com — lets you build that automation yourself, on your own infrastructure, without per-technician SaaS fees or sending your customer data to a third party. You keep control of your data, you keep control of your costs, and you free your office staff to do the work that actually needs a human.
Want help setting up field service automation for your business? ARDOT Consulting specializes in open source AI and automation for small and medium businesses. Get in touch — we’ll assess your workflows, recommend the right tools, and build it with you.