# 承認

Source: https://openflow.run/ja/docs/nodes/approval/
Language: ja
Product version: 0.1.0-beta.77

明示的な承認または却下を待ち、対応する分岐を選択します。

人の判断で後続処理の可否を決める場合は Approval を使います。承認が必要な操作は approve 経路に接続してください。プロンプトやキャンバスのメモだけでは、この依存関係は強制されません。

## リクエストを設定する

```json
{
  "op": "node.add", "as": "review", "type": "approval", "name": "Review reply",
  "prompt": "Approve the proposed customer reply?",
  "inputs": {
    "reply": { "kind": "value", "value": "Your replacement is ready to ship." }
  }
}
```

名前付き入力は、承認リクエストに表示する状況情報を渡します。追加の業務制約が必要な場合は `config.inputs` を使います。

## 分岐と出力

判断待ちの情報を永続化した後、`pending` で担当者に通知できます。`approve` と `reject` が対応する継続経路を選びます。出力オブジェクトは、受け付けた判断、解決時刻、任意のコメント、状況入力を含みます。

```json
{ "op": "edge.connect", "source": "$review", "branch": "approve", "target": "$send" }
```

上の対象ノードは同じバッチで先に作成されているか、読み取り済みのノード参照である必要があります。却下時の記録や修正が必要なら、その経路も別に接続します。

人の判断を受けて、Approval が承認後の分岐か修正用の分岐を選びます。

**入力**
承認対象は「Your replacement is ready to ship.」という返信です。

**想定される結果**
承認すると Approved reply、却下すると Keep the draft に進みます。

**実行前の準備**
インポートや実行には Open Flow サービスが必要です。プレビュー自体はオフラインで動作します。

[ワークフローをダウンロード](https://openflow.run/docs/examples/approval-review.openflow.json)

## 判断の管理

未処理の判断は実行に属します。対応するどの入口から送信しても、最初に受け付けた操作が有効です。再送では選択を上書きせず、分岐を二重実行しません。

公開操作 URL が許可するのは、指定された Wait の対応する判断だけです。デプロイ先へのログインや一般的なフローへのアクセスは許可しません。通知は認可済みの仕組みで、意図した担当者に届ける必要があります。

## 制限

承認は手動で行います。タイムアウトによる自動承認はなく、通常の再試行や `onError` もありません。設定した時刻に自動続行する一時停止には [Wait](https://openflow.run/ja/docs/nodes/wait/index.md) を使います。

## 参照元

*   [docs/authoring/node-authoring.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/authoring/node-authoring.md)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#9-public-wait-action-hook)
*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#wait-and-agent)
*   [packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts)
