Dozer logoDozer
Get started
Dozer Docs
API

Daily Ops

Pre-trip checks, shift reports, repair tickets, quick actions and what the agent has learned about your site.

Daily Ops is the shift: what got checked at the start, what moved during it, what broke, and what Dozer remembers after. A texted pre-trip and a filled-in form produce the same records, so an operator with a phone and an integration writing over the API land in the same place.

Create a shift-reportPOST /api/v1/shift-reports

curl -X POST "https://trydozer.com/api/v1/shift-reports" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_northpit" \
  -H "Content-Type: application/json" \
  -d '{"equipment":"HT-14","operator":"dan-whitfield","location":"North Pit","date":"2026-07-28","ending_hours":11850,"hours_worked":8,"source":"shift_report","eq_type":"truck","load_count":24,"tons_moved":480}'
File the end-of-shift report for HT-14 — 8 hours, 24 loads
data_set {
  "collection": "shift_reports",
  "object_id": "a60h-12",
  "data": {
    "equipment": "HT-14",
    "operator": "dan-whitfield",
    "location": "North Pit",
    "date": "2026-07-28",
    "ending_hours": 11850,
    "hours_worked": 8,
    "source": "shift_report",
    "eq_type": "truck",
    "load_count": 24,
    "tons_moved": 480
  }
}

{
  "object": "shift-report",
  "id": "obj_123",
  "title": "title",
  "shift": "shift",
  "equipment": "HT-14",
  "operator": "dan-whitfield",
  "location": "North Pit",
  "date": "2026-07-28",
  "ending_hours": 11850,
  "hours_worked": 8,
  "load_count": 24,
  "tons_moved": 480,
  "sluicing_hours": 1,
  "downtime_hours": 1,
  "downtime_cause": "Wash plant clog",
  "shift_notes": "shift notes",
  "status": "approved",
  "reported_at": "2026-07-25T12:00:00.000Z",
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Four resources, each with its own reference: shift-reports (what a shift moved and what stopped it), repair-tickets (work to be done on a machine, from flagged to fixed), custom-actions (owner-defined quick actions — a label, an emoji and the prompt they launch) and learnings (what the agent has learned about your site).

What to know before you call it

shift-reports declares no update: a filed shift is the record of a shift, so a correction is a new event on it rather than a rewrite. Repair tickets are never deleted either — they close. Both declare events, and a ticket carries source, so where it came from (a pre-trip, a fault code, a threshold alert) is a filter rather than a guess.

Property names are exact. The ticket detail surface reads equipment, description, severity, status, location and source; a write that invents a field name renders as . custom-actions are owner-authored and nothing seeds them, so an empty list is the honest answer, not an error.

Hours may not go backward. Report 11,842 on a machine whose last known reading is 12,500 and the write is refused and the step ends failed, with a request to reconfirm the meter. Dozer never averages, guesses, or quietly accepts the lower number. Other validation failures name the field in param (Error Codes); the project-level brakes are on Control Plane.

Let the agent do it

Each record here is a skill away — say the shift and the skill files it.

tasks_create { "project_id": "pr_northpit", "skill_id": "pre-trip", "run": true,
               "prompt": "Pre-trip on A60H-12 at Dominion, 11,842 hours, brakes failed." }
tasks_status { "task_id": "ts_…" }     // → the event, the update, and the ticket if items failed

pre-trip is the start-of-shift checklist with photo capture. It files everything in one atomic batch so nothing is left half-written: the timeline event, the hours and location update, and — only when items fail — a repair ticket carrying the id of the event that produced it. shift-report captures end-of-shift production — loads, tons, hours, downtime. code-lookup turns a dash fault code into a diagnosis with manual references — "What is SPN 100 FMI 1 on the A60H?" — and raises a ticket where one is warranted. chat is the general door, and what the Log a Finding, Mining Plan and Sites Output quick actions launch.

Learnings accumulate as create/remove facts — never strengthened, never decayed — and ride into later runs as context.

Next: Mechanic AI for triage and assignment of the tickets this domain opens · Site & Fleet for the machines these records point at · Devices & Media for the alerts that open tickets without anyone typing.

On this page

Dozer logoDozer

Ready to build? Connect an agent and go — no credit card needed to start.

Get startedSee our plans