RapidfolioRapidfolio
Procedures

Human Review

Pause any procedure at a critical step and require a team member to approve before continuing. Every decision is permanently logged.

Why human review matters

Automation is powerful, but some actions need a human in the loop. A payment above a certain threshold. An account closure. A credit decision. A wire transfer to a new counterparty. These are the moments where a human needs to see the data and explicitly say: yes, proceed.

Rapidfolio's Human Review feature is built for exactly this. You add a review gate to your procedure graph. When execution reaches it, the run pauses, the reviewer sees the relevant data, and they approve or reject. The decision — who made it, when, what they saw, and any changes they made — is recorded permanently on the run.


Adding a review node

In the procedure editor, click + and select Human Review. Connect it to the nodes before and after the gate.

In the inspector, set the Instructions — plain text that tells the reviewer what to evaluate:

Review the transfer details below. Confirm the recipient account is on the approved
counterparty list before approving. Reject if the amount exceeds the daily limit.

Good instructions remove ambiguity. Tell the reviewer specifically what to check and what criteria lead to approval or rejection.


What happens at runtime

When a run reaches a Human Review node:

  1. The run status changes to awaiting_review
  2. The run appears in the Pending Reviews queue in the dashboard
  3. A human_review_requested webhook fires if you're subscribed
  4. Execution pauses — indefinitely, with no timeout

If the reviewer approves, execution continues to the next node. Optionally, they can provide output overrides — modified values that replace the review node's outputs before the procedure continues. This is useful when a reviewer needs to correct an amount or adjust a parameter.

If the reviewer rejects, the run fails and the rejection reason is recorded. No further nodes execute. The decision is permanent.


Tool approval

Beyond review nodes, you can mark any Tool Call node with Require approval before calling. When the run reaches that node, it pauses just before making the API call — and shows the reviewer the exact parameters that will be sent, after all input mappings have resolved.

This is the right choice for high-stakes tool calls where seeing the exact API payload matters: the exact transfer amount, the exact recipient account number, the exact action being taken. The reviewer approves the real values, not a template.

Enable it in the inspector for any Tool Call node: toggle Require approval before calling.


The review dashboard

The Pending Reviews section shows all runs currently paused for review. Each entry shows the procedure name, the review title, how long it's been waiting, and the environment.

Click any pending review to open the detail view:

  • The review instructions you configured
  • The run's data at this point — inputs and step results
  • The run context — procedure name, version, run ID, start time
  • Approve and Reject buttons
  • An optional field for output overrides (when approving)
  • A required field for rejection reason (when rejecting)

Review via the API

You can integrate review decisions into your own tools — an internal dashboard, a Slack bot, a mobile approval app — using the Review API:

POST https://app.rapid.io/api/runner-proxy/review/:runId
Content-Type: application/json
{
  "approved": true,
  "outputs": { "approvedAmount": 4500 },
  "idempotencyKey": "550e8400-e29b-41d4-a716-446655440000"
}

The idempotencyKey prevents double-submissions if a reviewer double-clicks or a network retry occurs. Use a fresh UUID per review decision.

→ See Human Review API for full API reference.


Getting notified in real time

Subscribe to the human_review_requested webhook so your team knows the moment a run needs attention:

{
  "event": "human_review_requested",
  "data": {
    "runId": "run_xyz789",
    "procedureId": "proc_abc123",
    "reviewTitle": "Approve outbound transfer — $50,000",
    "environment": "live"
  }
}

Use this to send a Slack message, create a ticket in your task tracker, page an on-call reviewer, or trigger any other notification flow. Reviews that sit unnoticed in a queue are a workflow failure — real-time alerts prevent that.


Best practices

Gate every financial mutation. Any action that moves money, grants credit, opens or closes an account, or changes payment details should have a review gate. The cost of an erroneous automated action vastly outweighs the cost of a 60-second approval.

Write specific instructions. Don't say "Review the data." Say "Confirm the recipient IBAN matches the approved supplier list and the amount is within the weekly limit."

Design for rejection. If a reviewer might reject a step, your procedure should handle it gracefully — a notification, a compensating action, or a ticket for manual follow-up. Don't leave rejected runs as dead ends.

Use tool approval for the highest-risk calls. For wire transfers, bulk operations, or any call where the exact parameters matter, enable tool approval so reviewers see the resolved values — not template expressions.

Set up human_review_requested webhooks. Reviewers can't act on what they don't know about.

On this page