# ProcessSummary

One row of the runs listing (`GET /processes`): the same shape for all four kinds of run. It is a summary: it never carries a run's conversation, phases, commands or console output.

**Kind:** an object, used in responses.

## Fields

Every field is present in a response; empty ones are `null`.

| Field | Type | Description |
|---|---|---|
| `id` | `uuid` | The run's id. |
| `type` | [`ProcessType`](https://docs.maitento.com/reference/types/process-type.md) | What kind of run it is. |
| `status` | `string` | The run's status as its own kind names it (for example `HumanInteractionRequired`). |
| `state` | [`ProcessState`](https://docs.maitento.com/reference/types/process-state.md) | The group `status` falls into, the same for every kind of run. |
| `definitionId` | `uuid` | The interaction, app, capsule or code pipeline this run was started from. |
| `definitionName` | `string \| null` | That definition's name; null when the definition no longer exists. |
| `definitionVersion` | `integer` | The version of the definition the run uses. |
| `namespaceId` | `uuid \| null` | The definition's namespace; null when the definition no longer exists. |
| `namespaceName` | `string \| null` | The name of the definition's namespace; null when the definition no longer exists. |
| `dateCreated` | `datetime` | When the run was created, in UTC. |
| `dateStarted` | `datetime \| null` | When the run started executing, in UTC. Null until a worker picks it up. |
| `dateEnded` | `datetime \| null` | When the run ended, in UTC. Null while it is still going. |
| `dateUpdated` | `datetime` | When the run last changed, in UTC. |
| `executionTime` | `timespan \| null` | How long the run has spent executing, summed across every time a worker ran it. Null for capsule runs, which don't record one. |
| `dateRunnerClaimed` | `datetime \| null` | When a worker last picked the run up, in UTC: the start of its current stretch of execution. While the run is `Active`, its runtime is `executionTime` plus the time since this; while it waits (for a person, an approval or a resume) it is `executionTime` alone, so time spent waiting for a person never counts. Null for capsule runs, and when not recorded. |
| `parentProcessId` | `uuid \| null` | The run that started this one; null for a run started directly, or when it isn't known. |
| `parentProcessType` | [`ProcessType`](https://docs.maitento.com/reference/types/process-type.md)`\| null` | What kind of run `parentProcessId` is. Null exactly when that is null. |
| `rootProcessId` | `uuid \| null` | The run at the top of this run's tree, shared by every run in it. May be null (see `parentProcessId`). |
| `userCreatedById` | `uuid` | The id of the user the run was started as. |
| `triggeredByAutomationId` | `uuid \| null` | The automation that started this run, or null when it was started any other way. |
| `triggeredByAutomationName` | `string \| null` | That automation's name when the run started (a snapshot, so it survives a rename or a delete). Null exactly when `triggeredByAutomationId` is. |
| `failureSummary` | `string \| null` | The failure as one short line: no exception type names or stack frames, at most 300 characters; or null. The full text is on the run itself. |
| `awaitingHumanInput` | `boolean` | True when the run is waiting for a person (a question, an approval, or an unanswered request). |
| `waitingForLaneSinceUtc` | `datetime \| null` | When the run started waiting for a lane, in UTC; null when it isn't waiting. A waiting run is in status `New`, and `GET /processes/{type}/{id}/lane` says why it waits. |
| `tokens` | [`ProcessTokenTotals`](https://docs.maitento.com/reference/types/process-token-totals.md)`\| null` | Token totals for interaction and code pipeline runs; null for app and capsule runs. |
| `retentionLease` | [`ProcessRetentionLease`](https://docs.maitento.com/reference/types/process-retention-lease.md)`\| null` | The lease that keeps this run (its own, or one inherited from a retained ancestor), or null when nothing does. |
| `retentionExpiresAtUtc` | `datetime \| null` | When this run will be deleted, in UTC (its last update plus the retention period that applies to it). Null while it is retained or has not ended. |

## Example

```json
{
  "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "type": "App",
  "status": "...",
  "state": "Active",
  "definitionId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "definitionName": "...",
  "definitionVersion": 0,
  "namespaceId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "namespaceName": "...",
  "dateCreated": "2026-10-26T12:00:00.0000000Z",
  "dateStarted": "2026-10-26T12:00:00.0000000Z",
  "dateEnded": "2026-10-26T12:00:00.0000000Z",
  "dateUpdated": "2026-10-26T12:00:00.0000000Z",
  "executionTime": "00:05:00",
  "dateRunnerClaimed": "2026-10-26T12:00:00.0000000Z",
  "parentProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "parentProcessType": "App",
  "rootProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "userCreatedById": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "triggeredByAutomationId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "triggeredByAutomationName": "...",
  "failureSummary": "...",
  "awaitingHumanInput": false,
  "waitingForLaneSinceUtc": "2026-10-26T12:00:00.0000000Z",
  "tokens": {
    "input": 0,
    "output": 0,
    "cacheRead": 0,
    "cacheWrite": 0,
    "reasoning": 0
  },
  "retentionLease": {
    "appliedAtUtc": "2026-10-26T12:00:00.0000000Z",
    "appliedByUserId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "appliedByUserName": "...",
    "note": "...",
    "inheritedFromProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "inheritedFromProcessType": "App"
  },
  "retentionExpiresAtUtc": "2026-10-26T12:00:00.0000000Z"
}
```

## Where it's used

- [`runs.get`](https://docs.maitento.com/reference/api/runs.md) (`GET /processes/by-id/{id}`)
- Inside [`ProcessDashboard`](https://docs.maitento.com/reference/types/process-dashboard.md)
- Inside [`ProcessPage`](https://docs.maitento.com/reference/types/process-page.md)
