Overview

The Checklists API manages standard work checklist templates and their completion records. Checklists enforce routine task execution on a scheduled cadence (daily, shift, weekly, monthly). The API tracks completions, detects missed checklists, and calculates compliance rates for operational dashboards.

All procedures are tenant-scoped via organizationId and include audit trail logging.

Create Checklist

Create a new standard work checklist template.

POST /api/trpc/checklists.create

Request:

{
  "json": {
    "boardId": "brd_01HXK5...",
    "name": "Line 3 — Start of Shift Checks",
    "description": "Verify equipment readiness before production start",
    "frequency": "daily",
    "items": [
      { "id": "chk_01", "text": "Verify safety guards are in place", "required": true },
      { "id": "chk_02", "text": "Check lubricant levels on Machine A", "required": true },
      { "id": "chk_03", "text": "Review yesterday's production log", "required": false }
    ],
    "assigneeIds": ["usr_01HXK5...", "usr_01HXK6..."],
    "deadlineHour": 8
  }
}
FieldTypeRequiredDescription
boardIdstringYesBoard to associate the checklist with
namestringYesChecklist name (1-200 characters)
descriptionstringNoPurpose description (max 2000 characters)
frequencystringYesdaily, shift, weekly, or monthly
itemsarrayYesArray of task items (at least one required)
items[].idstringYesUnique item identifier within the checklist
items[].textstringYesTask description
items[].requiredbooleanNoWhether this item must be checked (default: true)
assigneeIdsarrayNoUser IDs responsible for completion (empty = assigned to all)
deadlineHournumberNoHour of day (0-23) by which to complete (default: 17)

Update Checklist

Partially update an existing checklist template. Only provided fields are modified.

POST /api/trpc/checklists.update
{
  "json": {
    "id": "cl_01HXK5...",
    "name": "Updated checklist name",
    "frequency": "shift",
    "deadlineHour": 14,
    "isActive": true
  }
}
FieldTypeRequiredDescription
idstringYesChecklist ID
namestringNoUpdated name
descriptionstringNoUpdated description
frequencystringNoUpdated frequency
itemsarrayNoUpdated items array
assigneeIdsarrayNoUpdated assignee list
deadlineHournumberNoUpdated deadline hour
isActivebooleanNoActive status (set to false to deactivate)

Delete Checklist

Permanently delete a checklist template and all its completion records.

POST /api/trpc/checklists.delete
{
  "json": {
    "id": "cl_01HXK5..."
  }
}

Deleting a checklist cascades to all completion records. This action cannot be undone. Consider deactivating (isActive: false) instead if you need to preserve historical data.

List Checklists

List all checklists for a board, optionally filtered by active status.

GET /api/trpc/checklists.list?input={"json":{"boardId":"brd_01HXK5...","isActive":true}}
ParameterTypeRequiredDescription
boardIdstringYesBoard ID
isActivebooleanNoFilter by active/inactive status

Get Today’s Checklists

Get all active checklists due in the current period for the authenticated user. Includes a flag indicating whether each checklist has already been completed.

GET /api/trpc/checklists.getToday?input={"json":{"boardId":"brd_01HXK5..."}}

Response:

{
  "result": {
    "data": {
      "json": [
        {
          "id": "cl_01HXK5...",
          "name": "Line 3 — Start of Shift Checks",
          "frequency": "daily",
          "deadlineHour": 8,
          "items": [...],
          "isCompleted": false
        },
        {
          "id": "cl_01HXK6...",
          "name": "End of Day Safety Review",
          "frequency": "daily",
          "deadlineHour": 17,
          "items": [...],
          "isCompleted": true
        }
      ]
    }
  }
}

Checklists with an empty assigneeIds array are considered assigned to all board members and will appear for every user. The period is determined by the checklist’s frequency (today for daily, current week for weekly, etc.).

Complete Checklist

Submit a checklist completion with responses for each item.

POST /api/trpc/checklists.complete
{
  "json": {
    "checklistId": "cl_01HXK5...",
    "responses": [
      { "itemId": "chk_01", "checked": true, "comment": null },
      { "itemId": "chk_02", "checked": true, "comment": "Level slightly below MIN, topped up" },
      { "itemId": "chk_03", "checked": false, "comment": "Log not available — IT system down" }
    ]
  }
}
FieldTypeRequiredDescription
checklistIdstringYesChecklist template ID
responsesarrayYesArray of item responses (at least one required)
responses[].itemIdstringYesChecklist item ID
responses[].checkedbooleanYesWhether the item was checked off
responses[].commentstringNoObservation or exception comment

Validation rules:

  • All items marked as required in the template must have checked: true.
  • Each checklist can only be completed once per period (returns CONFLICT if already completed).

Get Completion History

List completion records for a specific checklist with optional date range filtering.

GET /api/trpc/checklists.getCompletionHistory?input={"json":{"checklistId":"cl_01HXK5...","startDate":"2026-03-01","endDate":"2026-03-25","limit":50,"offset":0}}
ParameterTypeRequiredDescription
checklistIdstringYesChecklist ID
startDatestringNoStart of date range (ISO 8601)
endDatestringNoEnd of date range (ISO 8601)
limitnumberNoResults per page (1-200, default: 50)
offsetnumberNoPagination offset (default: 0)

Response:

{
  "result": {
    "data": {
      "json": {
        "items": [
          {
            "id": "comp_01HXK5...",
            "checklistId": "cl_01HXK5...",
            "completedById": "usr_01HXK5...",
            "date": "2026-03-25T00:00:00.000Z",
            "completedAt": "2026-03-25T07:45:00.000Z",
            "responses": [...]
          }
        ],
        "total": 22,
        "hasMore": false
      }
    }
  }
}

Get Missed Checklists

Get active checklists that have not been completed by their deadline in the current period.

GET /api/trpc/checklists.getMissed?input={"json":{"boardId":"brd_01HXK5..."}}

A checklist is “missed” when:

  1. It is active (isActive: true)
  2. The current UTC hour is past the configured deadlineHour
  3. No completion record exists for the current period

Response:

{
  "result": {
    "data": {
      "json": [
        {
          "id": "cl_01HXK5...",
          "name": "Line 3 — Start of Shift Checks",
          "frequency": "daily",
          "deadlineHour": 8
        }
      ]
    }
  }
}

Use this endpoint to power compliance dashboards and automated alerting. Pair with the escalation engine to notify supervisors when checklists are repeatedly missed.

Get Completion Rate

Calculate the completion rate for a checklist over a date range.

GET /api/trpc/checklists.getCompletionRate?input={"json":{"checklistId":"cl_01HXK5...","startDate":"2026-03-01","endDate":"2026-03-25"}}
ParameterTypeRequiredDescription
checklistIdstringYesChecklist ID
startDatestringYesStart of date range (ISO 8601)
endDatestringYesEnd of date range (ISO 8601)

Response:

{
  "result": {
    "data": {
      "json": {
        "checklistId": "cl_01HXK5...",
        "checklistName": "Line 3 — Start of Shift Checks",
        "expected": 25,
        "completed": 22,
        "rate": 88
      }
    }
  }
}

Expected completions are calculated based on frequency: daily = one per day, shift = two per day, weekly = one per 7 days, monthly = one per 30 days. The rate is capped at 100%.