Overview

Actions are corrective or improvement tasks created from KPI breaches, audit findings, or manual entry. They follow a lifecycle from creation through assignment, execution, verification, and closure. Actions can be escalated up the management chain when overdue or blocked.

Create Action

POST /api/trpc/actions.create

Request:

{
  "json": {
    "boardId": "brd_01HXK5...",
    "title": "Investigate supplier delay root cause",
    "description": "OTD dropped to 82.3% — need root cause analysis on main supplier",
    "priority": "high",
    "assigneeId": "usr_01HXK5...",
    "dueDate": "2026-03-30",
    "sourceType": "kpi_breach",
    "sourceId": "alt_01HXK5...",
    "category": "delivery"
  }
}
FieldTypeRequiredDescription
boardIdstringYesBoard this action belongs to
titlestringYesAction title (1-500 characters)
descriptionstringNoDetailed description (Markdown)
prioritystringYescritical, high, medium, low
assigneeIdstringYesUser assigned to execute the action
dueDatestringYesDue date (ISO 8601)
sourceTypestringNoOrigin: kpi_breach, audit, gemba, manual
sourceIdstringNoID of the source entity (alert, audit finding, etc.)
categorystringNoSQCDP category: safety, quality, cost, delivery, people

Response:

{
  "result": {
    "data": {
      "json": {
        "id": "act_01HXK5QJBN3YZXM8KJP2RSNV4C",
        "title": "Investigate supplier delay root cause",
        "status": "open",
        "priority": "high",
        "assignee": { "id": "usr_01HXK5...", "name": "Bob Smith" },
        "dueDate": "2026-03-30",
        "createdAt": "2026-03-23T10:00:00.000Z"
      }
    }
  }
}

Update Action

POST /api/trpc/actions.update
{
  "json": {
    "id": "act_01HXK5...",
    "status": "in_progress",
    "description": "Root cause identified: logistics partner capacity issue",
    "dueDate": "2026-04-05"
  }
}
FieldTypeRequiredDescription
idstringYesAction ID
titlestringNoUpdated title
descriptionstringNoUpdated description
statusstringNoopen, in_progress, completed, verified, closed
prioritystringNoUpdated priority
assigneeIdstringNoReassign to another user
dueDatestringNoUpdated due date

Delete Action

POST /api/trpc/actions.delete
{
  "json": {
    "id": "act_01HXK5..."
  }
}

Get Action by ID

GET /api/trpc/actions.getById?input={"json":{"id":"act_01HXK5..."}}

List Actions

List actions for a board with filtering and pagination.

GET /api/trpc/actions.list?input={"json":{"boardId":"brd_01HXK5...","status":"open","priority":"high"}}
ParameterTypeRequiredDescription
boardIdstringYesBoard ID
statusstringNoFilter by status
prioritystringNoFilter by priority
assigneeIdstringNoFilter by assignee
categorystringNoFilter by SQCDP category
cursorstringNoPagination cursor
limitnumberNoResults per page (default: 50)

Response:

{
  "result": {
    "data": {
      "json": {
        "actions": [
          {
            "id": "act_01HXK5...",
            "title": "Investigate supplier delay root cause",
            "status": "in_progress",
            "priority": "high",
            "assignee": { "id": "usr_01HXK5...", "name": "Bob Smith" },
            "dueDate": "2026-04-05",
            "isOverdue": false,
            "isEscalated": false,
            "escalationLevel": 0,
            "sourceType": "kpi_breach",
            "createdAt": "2026-03-23T10:00:00.000Z"
          }
        ],
        "nextCursor": null
      }
    }
  }
}

Escalate Action

Escalate an action to a higher management level.

POST /api/trpc/actions.escalate
{
  "json": {
    "id": "act_01HXK5...",
    "reason": "Blocked — waiting on supplier contract renegotiation",
    "escalateToUserId": "usr_01HXK6..."
  }
}

Escalation increments the escalationLevel and notifies the target user. The original assignee remains on the action unless explicitly reassigned.

De-escalate Action

Return an escalated action to the previous level.

POST /api/trpc/actions.deescalate
{
  "json": {
    "id": "act_01HXK5...",
    "reason": "Contract issue resolved — returning to original owner"
  }
}

Verify Action

Mark a completed action as verified (quality gate).

POST /api/trpc/actions.verify
{
  "json": {
    "id": "act_01HXK5...",
    "verified": true,
    "verificationNote": "Confirmed OTD has recovered to 95%+ for two consecutive weeks"
  }
}

Get Escalated Actions

List all currently escalated actions across boards.

GET /api/trpc/actions.getEscalated?input={"json":{"organizationId":"org_01HXK5..."}}

Get Overdue Actions

List all overdue actions across boards.

GET /api/trpc/actions.getOverdue?input={"json":{"organizationId":"org_01HXK5..."}}

Get Action Stats

Retrieve summary statistics for a board’s actions.

GET /api/trpc/actions.getStats?input={"json":{"boardId":"brd_01HXK5..."}}

Response:

{
  "result": {
    "data": {
      "json": {
        "total": 24,
        "byStatus": { "open": 5, "in_progress": 8, "completed": 7, "verified": 3, "closed": 1 },
        "byPriority": { "critical": 2, "high": 8, "medium": 10, "low": 4 },
        "overdue": 3,
        "escalated": 1,
        "avgClosureTimeDays": 12.4
      }
    }
  }
}

Use getStats to power action summary widgets on SQCDP dashboards. The avgClosureTimeDays metric helps track team responsiveness over time.