PlanSolve is still in pre-alpha โ Features may change or break. Feedback welcome!
Field Service JavaScript SDK
A JavaScript/TypeScript client library specifically for PlanSolve field service optimization. Optimize vehicle routes, schedule technician visits, and manage field operations with a simple, async API.
Installation
๐ฆ
npm
npm install plansolve
๐งถ
yarn
yarn add plansolve
๐
bun
bun add plansolve
Quick Start - Field Service
Get started with field service optimization in minutes. This example shows how to optimize technician routes and schedule customer visits.
typescript
import PlanSolveClient from 'plansolve';
const planSolve = new PlanSolveClient('YOUR_API_KEY');
// Create vehicles (field technicians)
const vehicles = [
{
id: 'tech1',
homeLocation: [40.7128, -74.0060], // NYC coordinates [lat, lng]
shifts: [
{
id: 'morning-shift',
minStartTime: '2024-01-15T08:00:00',
maxEndTime: '2024-01-15T17:00:00'
}
],
skills: ['repair', 'installation']
}
];
// Create visits (customer appointments)
const visits = [
{
id: 'visit1',
name: 'Times Square Repair',
location: [40.7589, -73.9851],
timeWindows: [
{
minStartTime: '2024-01-15T09:00:00',
maxEndTime: '2024-01-15T17:00:00'
}
],
serviceDuration: 'PT30M',
priority: 'HIGH',
requiredSkills: ['repair']
}
];
// Create the optimization request
const request = {
southWestCorner: [40.74, -74.01],
northEastCorner: [40.76, -73.98],
startDateTime: '2024-01-15T08:00:00',
endDateTime: '2024-01-15T18:00:00',
vehicles: vehicles,
visits: visits
};
try {
// Start the optimization
const response = await planSolve.fieldService.start(request);
console.log(`Optimization started! Job ID: ${response.jobId}`);
// Get results
const result = await planSolve.fieldService.getResult(response.jobId);
console.log('Optimization completed!', result);
} catch (error) {
console.error(`Optimization failed: ${error.message}`);
}
Field Service API Reference
FieldServiceApiClient
Handles field service optimization requests and results.
Methods
start(request: FieldServiceRequest)
- Start a new field service optimizationgetResult(jobId: string)
- Get the completed optimization result
Data Models
Key data structures for field service optimization.
Vehicle
interface Vehicle {
id: string;
homeLocation: [number, number];
shifts: Shift[];
skills: string[];
}
Visit
interface Visit {
id: string;
name: string;
location: [number, number];
timeWindows: TimeWindow[];
serviceDuration: string;
priority: 'HIGH' | 'MEDIUM' | 'LOW';
requiredSkills: string[];
}
Ready to Optimize Field Service?
Start integrating field service optimization into your JavaScript applications today.