> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frayme.io/llms.txt
> Use this file to discover all available pages before exploring further.

# manualReview

> Hand off to a compliance analyst with display fields, response fields, and an SLA timeout.

`manualReview` is the human gate. Pauses the workflow run, surfaces evidence to the assigned reviewer(s) via the Decision Console, and resumes on their response.

## Configuration

```jsonc theme={null}
{
  "id": "mr-medium-risk",
  "type": "manualReview",
  "data": {
    "label": "Analyst Review",
    "reviewTitle": "Medium Risk Case Review",
    "description": "Route medium-risk cases to analyst for manual review",
    "assignmentType": "random_reviewers",
    "assignees": [],
    "timeoutHours": 4,

    "displayItems": [
      { "id": "d1", "type": "field",       "label": "Amount",         "value": "workflow.data.amount" },
      { "id": "d2", "type": "field",       "label": "Risk Score",     "value": "risk_score" },
      { "id": "d3", "type": "field",       "label": "Velocity Flag",  "value": "velocity_flag" },
      { "id": "d4", "type": "description", "label": "",               "value": "Review the case details and determine if additional verification is needed." }
    ],

    "responseFields": [
      { "id": "r1", "name": "decision",     "label": "Decision",    "type": "select",  "required": true, "options": ["approve","deny","escalate"] },
      { "id": "r2", "name": "reason",       "label": "Reason",      "type": "text",    "required": true },
      { "id": "r3", "name": "require_2fa",  "label": "Require 2FA", "type": "boolean", "required": false }
    ]
  }
}
```

## Assignment types

| `assignmentType`     | Behaviour                                                                                                       |
| -------------------- | --------------------------------------------------------------------------------------------------------------- |
| `random_reviewers`   | Random pick from the on-call group; falls back to the group's queue. Used for low-stakes / high-volume reviews. |
| `specific_reviewers` | Named individuals. Used when only specific people are authorised (regulator submission approvals).              |
| `specific_group`     | Named role group. Round-robin within the group.                                                                 |
| `single_reviewer`    | One person at a time owns the case. Used for high-context KYB decisions.                                        |

## Display items

| `type`        | Renders as                                                                |
| ------------- | ------------------------------------------------------------------------- |
| `field`       | Key/value row. `value` is a context-path (no `{{...}}`).                  |
| `description` | A short instructional paragraph.                                          |
| `link`        | Outbound link (e.g. "Open in the on-chain analytics investigation tool"). |

## Response fields

Each response field becomes a top-level variable on the run context once the reviewer submits. So the example above writes `{{decision}}`, `{{reason}}`, `{{require_2fa}}` for downstream nodes to read.

| `type`    | UI                     |
| --------- | ---------------------- |
| `select`  | Dropdown of `options`. |
| `text`    | Free-text textarea.    |
| `boolean` | Toggle.                |
| `number`  | Numeric input.         |

## Timeout semantics

`timeoutHours` controls what happens when no reviewer responds in time. The workflow's `manualReview` policy decides:

* **`auto_escalate`** — re-route to senior group with extended TTL.
* **`auto_deny`** — fail-safe for high-risk reviews.
* **`auto_approve`** — fail-open (used rarely, only for low-risk reviews where idle approval is acceptable).

Default if not specified: `auto_escalate`.

## Typical review TTLs

| Review type                                       | Typical TTL |
| ------------------------------------------------- | ----------- |
| Alert screening                                   | 2h          |
| Senior compliance review                          | 4h          |
| Single-reviewer KYB                               | 8h          |
| Address-change / mid-risk review                  | 24h         |
| EDD documentary review                            | 24h         |
| Regulator-filing internal approval                | 48h         |
| RFI evidence assessment (waits for client return) | 168h        |
