0

HVAC Service Dispatch Agent Fleet

Automated job scheduling, technician routing, and parts inventory management for field service companies.

2 agents1 integration12h freed/weekDay 1 — Smart Dispatcher runs first optimized route at shift start; Customer Updater sends first status alert within 2 hours of job dispatch12h setupModerate

AI Readiness Score

42/100
WALK
data maturity35

Job history exists but unstructured

team capacity25

Field techs are non-technical

budget alignment45

Budget limits to 1-2 agents

automation readiness65

Dispatch is highly automatable

timeline feasibility60

Achievable for focused scope

integration complexity45

ServiceTitan API is limited

How This System Works

Architecture

The CoolBreeze HVAC system consists of two complementary agents that automate daily operations and customer communications. The Smart Dispatcher serves as the core optimization engine, running daily at 5am to analyze ServiceTitan job data and generate optimal technician routes using Google Maps API. This ensures maximum efficiency before the workday begins. The Customer Updater operates reactively, monitoring ServiceTitan for job status changes and dispatching real-time SMS notifications to keep customers informed throughout the service process. Both agents share a common integration layer with ServiceTitan as the central data source, while each maintains specialized connections to their respective services (Google Maps for routing, Twilio for SMS). The architecture emphasizes reliability and real-time responsiveness, with the batch optimization happening during off-hours and reactive updates flowing immediately as job statuses change.

Data Flow

Data originates in ServiceTitan, which serves as the master system for all job, customer, and technician information. Each morning, the Smart Dispatcher pulls pending jobs with location data, customer priority levels, and technician schedules. This data is enriched with real-time traffic and distance calculations from Google Maps API to generate optimized route sequences. The resulting dispatch assignments are written back to ServiceTitan, updating technician schedules and job assignments. Simultaneously, the Customer Updater maintains a continuous listener on ServiceTitan's webhook events or polls for status changes. When jobs transition states (dispatched, en route, arrived, completed), customer contact information and job details flow to Twilio's SMS API. Formatted status messages are delivered directly to customers' mobile phones, creating a seamless communication loop that reduces call volume and improves customer satisfaction.

Implementation Phases

1
Core ServiceTitan Integration1-2 weeks

Establish reliable connection to ServiceTitan API, implement authentication, and build data extraction for jobs, customers, and technicians

Smart Dispatcher
2
Route Optimization Engine2-3 weeks

Integrate Google Maps API, develop routing algorithms, and implement daily dispatch optimization with ServiceTitan updates

Smart Dispatcher
3
Customer Communication System1-2 weeks

Deploy reactive SMS notifications with Twilio integration and ServiceTitan status monitoring

Customer Updater
4
System Integration & Testing1 week

End-to-end testing, error handling refinement, and production deployment with monitoring

Smart DispatcherCustomer Updater

Prerequisites

  • -ServiceTitan API access with admin privileges
  • -Google Maps API key with routing and distance matrix access
  • -Twilio account with SMS messaging enabled
  • -Linux server with cron scheduling capabilities
  • -Python 3.8+ runtime environment
  • -SSL certificates for secure API communications

Assumptions

  • -ServiceTitan contains accurate customer phone numbers
  • -Technicians start from a central dispatch location each morning
  • -Job locations have valid addresses for Google Maps geocoding
  • -Customer contact preferences allow SMS communications
  • -ServiceTitan API rate limits accommodate daily batch processing
  • -Network connectivity supports real-time webhook processing

Recommended Agents (2)

How It Works

  1. 1
    Extract Daily Jobs

    Query ServiceTitan API for all pending jobs scheduled for current day, including job locations, priority levels, estimated duration, and required technician skills

    ServiceTitan REST API
  2. 2
    Retrieve Technician Data

    Fetch available technicians with their skill sets, work hours, and current location/assignments from ServiceTitan scheduling module

    ServiceTitan REST API
  3. 3
    Calculate Route Matrix

    Send all job locations to Google Maps Distance Matrix API to get travel times and distances between all location pairs, accounting for current traffic conditions

    Google Maps Distance Matrix API
  4. 4
    Optimize Assignments

    Run optimization algorithm considering job priority, technician skills, travel time, and working hours to generate optimal daily routes for each technician

    Python optimization library
  5. 5
    Update Schedules

    Push optimized job assignments and route sequences back to ServiceTitan, updating technician schedules and job dispatch times

    ServiceTitan REST API

Implementation

```bash
# Create project structure
mkdir coolbreeze-dispatcher
cd coolbreeze-dispatcher
mkdir src config logs data

# Install dependencies
pip install requests googlemaps python-dotenv schedule pandas numpy

# Environment variables (.env)
SERVICETITAN_API_KEY=your_api_key
SERVICETITAN_BASE_URL=https://api.servicetitan.com
GOOGLE_MAPS_API_KEY=your_maps_key
LOG_LEVEL=INFO
DISPATCH_START_LOCATION=company_address

# Main dispatcher (src/smart_dispatcher.py)
import os, requests, googlemaps, json
from datetime import datetime, timedelta
from dataclasses import dataclass
from typing import List, Dict

@dataclass
class Job:
    id: str
    location: str
    priority: int
    duration_hours: float
    required_skills: List[str]

class SmartDispatcher:
    def __init__(self):
        self.st_client = ServiceTitanClient()
        self.gmaps = googlemaps.Client(key=os.getenv('GOOGLE_MAPS_API_KEY'))
        
    def run_daily_optimization(self):
        jobs = self.st_client.get_todays_jobs()
        technicians = self.st_client.get_available_techs()
        
        # Build distance matrix
        locations = [job.location for job in jobs]
        matrix = self.gmaps.distance_matrix(locations, locations, mode='driving')
        
        # Run optimization
        assignments = self.optimize_routes(jobs, technicians, matrix)
        
        # Update ServiceTitan
        for tech_id, job_list in assignments.items():
            self.st_client.update_technician_schedule(tech_id, job_list)
            
class ServiceTitanClient:
    def __init__(self):
        self.base_url = os.getenv('SERVICETITAN_BASE_URL')
        self.headers = {'Authorization': f'Bearer {os.getenv("SERVICETITAN_API_KEY")}'}
    
    def get_todays_jobs(self):
        today = datetime.now().strftime('%Y-%m-%d')
        response = requests.get(f'{self.base_url}/jobs?scheduledDate={today}', headers=self.headers)
        return [Job(**job) for job in response.json()['data']]

# Setup cron job
# crontab -e
# 0 5 * * * cd /path/to/coolbreeze-dispatcher && python src/smart_dispatcher.py >> logs/dispatcher.log 2>&1

if __name__ == '__main__':
    dispatcher = SmartDispatcher()
    dispatcher.run_daily_optimization()
```

Data Flow

Inputs
  • ServiceTitan Jobs APIDaily scheduled jobs with locations, priorities, duration estimates, and skill requirements(JSON array with job objects)
  • ServiceTitan Technicians APIAvailable technician schedules, skill sets, and starting locations(JSON array with technician objects)
  • Google Maps Distance Matrix APITravel times and distances between all job locations(JSON matrix with duration and distance values)
Outputs
  • ServiceTitan Scheduling APIUpdated technician schedules with optimized job assignments and route sequences(JSON objects with schedule updates)
  • System logsOptimization results, performance metrics, and error details(Structured log files)

Prerequisites

  • -ServiceTitan API credentials with scheduling write access
  • -Google Maps API key with Distance Matrix API enabled
  • -Server with reliable 5am cron execution
  • -Python environment with optimization libraries

Error Handling

critical
ServiceTitan API timeout or authentication failure

Retry with exponential backoff, send alert email to operations team, use cached data if available

warning
Google Maps API rate limit exceeded

Implement request batching, cache distance calculations, fallback to previous day's matrix

warning
Invalid job addresses that cannot be geocoded

Log invalid addresses, notify dispatch team, assign jobs manually without optimization

critical
Optimization algorithm fails to find solution

Fallback to simple geographic clustering, alert technical team, maintain existing schedules

Integrations

SourceTargetData FlowMethodComplexity
ServiceTitanGoogle MapsJob locations for routingapimoderate

Schedule

0 5 * * *
Smart DispatcherDaily at 5am before first dispatch

Recommended Models

TaskRecommendedAlternativesEst. CostWhy
Agent logic / orchestrationClaude Sonnet 4
GPT-4oGemini 2.5 Pro
$0.003-0.015/callExcellent for complex routing optimization logic and multi-system orchestration required by the Smart Dispatcher
Data extraction / parsingClaude Haiku
GPT-4o-miniGemini 2.0 Flash
$0.0002-0.001/callFast and cost-effective for extracting job data, locations, and priorities from ServiceTitan API responses
Content generationGemini 2.0 Flash
Claude HaikuGPT-4o-mini
$0.0001-0.001/callOptimal for generating high-volume customer SMS updates with consistent messaging at low cost
Classification / routingClaude Haiku
Gemini 2.0 FlashGPT-4o-mini
$0.0002-0.001/callPerfect for quickly classifying job priorities and determining which agent should handle incoming requests

Impact

What Changes

Before
Dispatcher manually maps 15-20 jobs across 4-5 technicians (45 min every morning)
After
Smart Dispatcher generates optimized routes automatically; dispatcher reviews and approves in 5 minutes
Before
Customers call office asking 'when is my tech arriving?' (8-12 calls/day)
After
Customer Updater sends arrival window SMS automatically; inbound calls drop 80%
Before
Technicians spend 90 min/day driving between non-optimized jobs
After
Optimized routing cuts drive time to 45 min/day, freeing technician capacity for additional service calls
Before
Dispatch decisions are reactive to walk-in emergencies and priority calls
After
Smart Dispatcher continuously rebalances routes in real-time as urgent jobs arrive
Capacity Unlocked
Your dispatch team stops manually juggling routes and fielding 'where's my tech?' calls. 12 hours per week shifts to handling complex scheduling exceptions and growing your service capacity.
Time to First Impact
Day 1 — Smart Dispatcher runs first optimized route at shift start; Customer Updater sends first status alert within 2 hours of job dispatch

Quality Gains

  • Technicians complete 2-3 more jobs per day with optimized routes — no more backtracking across service areas
  • Customer satisfaction increases as automated SMS updates eliminate missed appointment surprises
  • Callback rates drop by eliminating 'I didn't know when they were coming' complaints
12h freed up/week$40/mo estimated cost

Similar Blueprints

Preventive Maintenance Scheduling

Automated HVAC preventive maintenance system that intelligently schedules 2000+ service contracts, optimizes technician routes, and proactively communicates with customers. The system analyzes equipment performance data to predict maintenance needs and prevents costly emergency repairs. Real-time capacity management ensures optimal resource allocation while automated customer communications improve satisfaction and reduce no-shows.

78/1004 agents18

HVAC Dispatch & Technician Routing

An intelligent HVAC dispatch and routing system that automates job assignments, optimizes technician routes, and maintains real-time customer communication. The system integrates with ServiceTitan and QuickBooks to create a seamless workflow from service request to job completion. Advanced routing algorithms minimize travel time while AI-powered agents handle dispatch decisions, inventory tracking, and performance analysis. The result is increased daily service capacity, improved customer satisfaction, and reduced operational overhead.

82/1005 agents4

AirComfort Pro — Residential HVAC company, 20 techs

AI deployment blueprint for Residential HVAC company, 20 techs. Automates hvac dispatch using Google Calendar, Twilio, QuickBooks, Claude.

72/100RUN3 agents0

PlumbRight Services — Plumbing company, residential + commercial

AI deployment blueprint for Plumbing company, residential + commercial. Automates plumbing ops using Google Sheets, Twilio, Slack, Claude.

72/100RUN3 agents0

What's next?

This blueprint is a starting point. Fork it, remix it, or build your own.