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

# Approval

Pause a workflow until a human (or app) approves or rejects it. Drive from the approval-queue archetype or any UI that calls the gateway resumeRun endpoint. The resume payload (e.g. `{ action: "approve" }`) lands on the wait node's `triggerResult` so downstream `if` nodes can branch.

Trigger Other

Pause a workflow until a human (or app) approves or rejects it. Drive from the approval-queue archetype or any UI that calls the gateway resumeRun endpoint. The resume payload (e.g. `&#123; action: "approve" &#125;`) lands on the wait node's `triggerResult` so downstream `if` nodes can branch.

## At a Glance

| Field | Value |
| --- | --- |
| Trigger ID | `approval` |
| Category | Other |
| Tags | `approval`, `human-in-the-loop`, `wait`, `pause`, `review` |

## Trigger Configuration

This trigger does not require configuration fields.

## Trigger Result

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | `string` | No | The action passed in the resume payload \(e.g. "approve" or "reject"\). Branch on this with an 'if' node. |

## Workflow Root Example

```json
{
  "nodes": {
    "root": {
      "type": "approval",
      "payload": {},
      "children": [
        "log_event"
      ]
    },
    "log_event": {
      "type": "log",
      "payload": {
        "message": "Triggered at {{$trigger.triggeredAt}}"
      },
      "children": []
    }
  }
}
```

**Reference trigger output**

Downstream nodes can use `{{$trigger.triggeredAt}}` and any result fields listed above. Event triggers usually expose the raw source payload under a field such as `event`, `body`, `trade`, or `raw`.