Back to Nodes

Provedit

Last updated May 24, 2026

n8n community node for Provedit. Record AI tool invocations to a tamper-evident chain, check policy decisions, and gate workflows on allow/require_approval/deny.

11 Weekly Downloads
849 Monthly Downloads

Included Nodes

Provedit

Description

n8n-nodes-provedit

n8n community node for Provedit. Record AI tool invocations to a tamper-evident chain, check policy decisions, and gate workflows on allow / require_approval / deny.

  • Docs: https://provedit.ai/docs.html#recipe-n8n
  • Source: https://github.com/provedit/n8n-nodes-provedit
  • Issues: https://github.com/provedit/n8n-nodes-provedit/issues

What you get

A single node with four operations:

| Operation | Use it when |
| — | — |
| Check Policy (Decide) | You want to gate a downstream step without writing a chain entry. Returns decision, policyName, policyVersion. Optionally throws on non-allow. |
| Record Event | One-shot audit entry. “User said X”, “model returned Y”, “webhook fired”. |
| Record Invocation | Pre-execution intent for a real side effect. Returns id (actionId), policyDecision, approvalStatus. |
| Record Result | Audit log linked to a prior Record Invocation via parentActionId. Carries durationMs and an optional hashed output digest. |

The verdict is bound to the invocation record itself (via policyDecision and approvalStatus). There is no separate “outcome” field, and result rows are pure audit logs – they never override the invocation’s verdict.

Install

In n8n: Settings -> Community Nodes -> Install -> n8n-nodes-provedit.

Self-hosted:

npm install n8n-nodes-provedit

Credentials

Create an agent key in the Provedit console (Tenant -> Agent keys) and paste it into the Provedit API credential. The key determines the tenant and the bound policy. Set the API base to https://api.provedit.ai (default) or your self-hosted URL.

Patterns

Gate a side effect with require_approval

Webhook -> Record Invocation -> Switch on policyDecision
                                  allow            -> Side effect -> Respond
                                  require_approval -> Wait for Approval (HTTP)
                                                       -> IF approvalStatus == approved
                                                          true  -> Side effect -> Respond
                                                          false -> Respond Denied
                                  deny             -> Respond Denied

The “Wait for Approval” node is a plain HTTP Request node calling the long-poll endpoint:

GET https://api.provedit.ai/v1/actions/{{ $('Record Invocation').item.json.id }}/wait?timeoutMs=120000

Use the Provedit API credential on it (Authentication -> Predefined Credential Type). It returns { approvalStatus: 'approved' | 'denied' } when an operator decides in the console, or HTTP 408 on timeout.

Two-phase recording around a real call (no approval needed)

Trigger -> Record Invocation -> Stripe Refund -> Record Result
                | id out                              | parentActionId in

In the Record Result step’s Parent Action ID field:

={{ $('Record Invocation').item.json.id }}

Example workflow

See the n8n recipe in the Provedit docs for a complete refund-assistant workflow that demonstrates the require_approval long-poll pattern, including the Switch on policyDecision and the HTTP-based wait branch.

License

MIT.