PlanSolve is still in pre-alpha โ€“ Features may change or break. Feedback welcome!

Field Service JavaScript SDK

TypeScript/JavaScript SDK for field service optimization

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 optimization
  • getResult(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.