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

Professional services solver

Task scheduling and resource allocation for professional teams

Professional services solver

Optimize task scheduling and resource allocation for professional teams. PlanSolve's professional services model handles complex constraints including skill requirements, priority levels, working hours, and project deadlines.

API Overview

PlanSolve uses an asynchronous API pattern for professional services optimization. Submit your request, monitor progress, and retrieve results when complete.

POST/api/professionalservices/solve

Submit a professional services optimization request

GET/api/professionalservices/status/{jobId}

Check the status of an optimization job

GET/api/professionalservices/result/{jobId}

Retrieve the completed optimization results

GET/api/professionalservices/analyze/{jobId}

Analyze the optimization results

API Workflow

All PlanSolve optimization APIs follow the same workflow. Understanding this process will help you integrate the API effectively.

1

Construct Request

Build your optimization request with employees, tasks, and constraints

2

Start Solver

Submit the request to start the optimization process

3

Poll Status

Check the status until the solver completes

4

Get Results

Retrieve the optimized solution and task assignments

Workflow Details

Step 1: Create your request object with employee data (skills, shifts, availability) and task data (duration, priority, required skills, deadlines).

Step 2: Send a POST request to /api/professionalservices/solve with your request data. The API will return a job ID.

Step 3: Poll the status endpoint /api/professionalservices/status/{jobId} until the status changes from "solving" to "completed".

Step 4: Once completed, retrieve the results from /api/professionalservices/result/{jobId} to get the optimized task assignments.

API Parameters

The professional services optimization API accepts these key parameters to define your optimization problem. Each parameter plays a crucial role in determining the optimal solution.

Main Parameters

ParameterTypeRequiredDescriptionExample
employeesarrayRequiredArray of employees with their skills, shifts, and availability[{ "id": "emp1", "skills": ["development"], "shifts": [...] }]
tasksarrayRequiredArray of tasks with duration, priority, and skill requirements[{ "id": "task1", "duration": "PT2H", "priority": "HIGH", "requiredSkills": ["development"] }]
startDateISO 8601RequiredStart date for the optimization period"2024-01-15"
endDateISO 8601RequiredEnd date for the optimization period"2024-01-19"

Employee Parameters

ParameterTypeRequiredDescriptionExample
idstringRequiredUnique identifier for the employee"emp1"
skillsarray[string]OptionalList of skills the employee possesses["development", "testing"]
shiftsarray[object]RequiredArray of work shifts with time constraints[{"id": "fulltime", "minStartTime": "09:00", "maxEndTime": "17:00"}]

Task Parameters

ParameterTypeRequiredDescriptionExample
idstringRequiredUnique identifier for the task"task1"
namestringOptionalHuman-readable name for the task"Implement User Authentication"
deadlinedateOptionalDue date for the task"2024-01-19"
durationstringRequiredDuration of task in ISO 8601 format"PT4H"
prioritystringOptionalTask priority level (HIGH, MEDIUM, LOW)"HIGH"
requiredSkillsarray[string]OptionalSkills required to complete this task["development"]

JSON Request Structure

Understand the complete structure of a professional services optimization request. This example shows all the key components and their relationships.

{
  "employees": [
    {
      "id": "emp1",
      "name": "John Developer",
      "skills": ["development", "testing"],
      "shifts": [
        {
          "id": "fulltime",
          "minStartTime": "09:00",
          "maxEndTime": "17:00"
        }
      ]
    }
  ],
  "tasks": [
    {
      "id": "task1",
      "name": "Implement User Authentication",
      "duration": "PT4H",
      "priority": "HIGH",
      "requiredSkills": ["development"],
      "deadline": "2024-01-19"
    }
  ],
  "startDate": "2024-01-15",
  "endDate": "2024-01-19",
}

API & SDK

Choose between direct API integration or our official SDKs. Both approaches provide full access to PlanSolve's professional services optimization capabilities.

🌐

REST API

Direct HTTP integration with full control

View API
🔷

SDKs

Use your preferred language to interact with PlanSolve's API.

View SDKs

Ready to optimize your workforce's schedule?

Start with our quick start guide to implement professional services optimization in your application.