Actions API
API endpoints for managing corrective actions, escalation workflows, and action tracking.
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"
}
}
| Field | Type | Required | Description |
|---|---|---|---|
boardId | string | Yes | Board this action belongs to |
title | string | Yes | Action title (1-500 characters) |
description | string | No | Detailed description (Markdown) |
priority | string | Yes | critical, high, medium, low |
assigneeId | string | Yes | User assigned to execute the action |
dueDate | string | Yes | Due date (ISO 8601) |
sourceType | string | No | Origin: kpi_breach, audit, gemba, manual |
sourceId | string | No | ID of the source entity (alert, audit finding, etc.) |
category | string | No | SQCDP 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"
}
}
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Action ID |
title | string | No | Updated title |
description | string | No | Updated description |
status | string | No | open, in_progress, completed, verified, closed |
priority | string | No | Updated priority |
assigneeId | string | No | Reassign to another user |
dueDate | string | No | Updated 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"}}
| Parameter | Type | Required | Description |
|---|---|---|---|
boardId | string | Yes | Board ID |
status | string | No | Filter by status |
priority | string | No | Filter by priority |
assigneeId | string | No | Filter by assignee |
category | string | No | Filter by SQCDP category |
cursor | string | No | Pagination cursor |
limit | number | No | Results 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.
Was this page helpful?