beginner
work-orders
tasks
manual-create

Creating Tasks Manually

How to create a one-off work order from the dashboard, the side drawer, or the API

Levy Fleets TeamMay 18, 20265 min read

Creating Tasks Manually

Most work orders in a mature fleet are created by the rule engine, but manual creation is still the right answer for ad-hoc work: a customer call about a parked-and-leaking moped, a planned modification, a one-time inspection. This article covers the three manual paths.

From the Kanban board

This is the fastest path and the one your ops team will use 90% of the time.

1

Click New Task

Top right of /dashboard/tasks.

2

Pick a vehicle

Type a vehicle number into the autocomplete. The form pre-fills the vehicle's subaccount, its last known GPS location, and its current battery level for context.

3

Pick a type

The 14 task types are: scheduled_maintenance, repair, deploy, retrieve, charge_swap, battery_swap, rebalance, lost_and_found, inspection, cleaning, parts_replacement, software_update, inspection_failed_followup, vendor_dispatch. Pick the closest match.

4

Pick a priority

low, medium, high, or critical. SLA due time is computed from your subaccount's SLA config — see SLA and Performance.

5

Write a title and description

Title should fit on a card (under 60 chars). Description is for the tech — include part numbers, observations, and any photos that should be referenced.

6

Assign (optional)

Skip this to let a nearby tech claim the task from the operator-app. Pick a name if you want to push it directly.

7

Create

The task lands on the board. If priority is high or critical, the vehicle auto-flips to maintenance and disappears from the rider app within seconds.

From a vehicle detail page

If you're already looking at a vehicle's history, it's faster to create the task in context:

  1. Open the vehicle at /dashboard/vehicles/[id]
  2. Scroll to the Open Tasks card on the right
  3. Click + New Task
  4. The dialog opens with vehicle pre-selected — fill in type, priority, title, description, and create

The vehicle detail page also surfaces every closed task against the machine in the Maintenance History section, so you can confirm a particular fault is recurring before opening another work order.

From the API

For integrations and scripts, post to /api/tasks:

POST /api/tasks
Content-Type: application/json

{
  "vehicle_uuid": "uuid-here",
  "task_type": "repair",
  "priority": "high",
  "title": "Front brake cable replacement",
  "description": "Reported by rider — cable slipping. Replace cable + housing.",
  "assignee_id": "team-member-uuid-or-null"
}

The route enforces the one open task of the same type per vehicle rule. If a repair task is already open against the vehicle, the response is 200 with skipped_duplicate: true rather than 201. This prevents rule-loop and integration-bug duplicates.

What happens after create

Three things fire immediately:

  1. SLA clock starts. sla_due_at is written based on your priority config.
  2. Vehicle status check. If priority is high or critical, a DB trigger flips vehicles.status to maintenance — unless the vehicle is in_use (a ride is active), in which case the flip waits for the ride to end.
  3. Notification fan-out. If the task is assigned, the assignee gets an Expo push. If the priority is critical, the ops_manager for the subaccount also gets a push and a email message.

What you cannot do manually

A few rules to keep the data clean:

  • You cannot create a task without a vehicle_uuid. Non-vehicle assets (charging cabinets, batteries on the shelf) are out of scope until the CMMS expansion ships.
  • You cannot create a duplicate task of the same task_type against the same vehicle. Close the first one or pick a different type.
  • You cannot create a task for a vehicle in another subaccount. RLS blocks it server-side.

Don't create maintenance tasks against deleted vehicles

If a vehicle is soft-deleted, the API will return 404. If you need to track a retired vehicle's final repair, do it before deletion.

Running a fleet on this hardware?

Levy Fleets runs scooters, e-bikes, mopeds and golf carts on the IoT hardware you already have, with integration pages for 29 vendors including Segway, Okai, Omni, Queclink, Invers and Comodule. Keyless unlock, geofencing, rider payments and rider support are included, and the Managed plan is a share of revenue with no per-vehicle software fee.