Back to Nodes

Veefore

Last updated Oct 24, 2026

Veefore for n8n: run protected actions through Veefore's policy, approval and credential broker, from workflows and AI agents.

1,828 Weekly Downloads
1,828 Monthly Downloads

Included Nodes

Veefore
Veefore Tools

Description

n8n-nodes-veefore

Run protected actions from n8n workflows and AI agents through
Veefore: policy, risk, human approval and a
credential broker, decided at the Veefore gateway. The workflow never holds the
provider secret, and a refused action never happens.

Full guide:

Install

  • n8n UI: Settings → Community nodes → Install → n8n-nodes-veefore
  • Self-hosted: npm install n8n-nodes-veefore in ~/.n8n/nodes, or build this
  • package and point N8NCUSTOMEXTENSIONS at a directory containing it
    (n8n then names the node CUSTOM.veefore)

    Restart n8n afterwards.

    Set up in Veefore first

    In the Veefore console open Integrations → n8n: choose or create the agent
    n8n acts as, tick the tools it may use, and create the connection secret. You
    get two values.

    Credential: Veefore API

  • Key ID (key_…): names the agent’s key.
  • Connection Secret (vfsecret…): the key’s private half, shown once in
  • the console. It only signs a two-minute identity assertion; Veefore never
    receives it, and it grants nothing beyond the agent’s own tools and policy.

  • Gateway URL: prefilled with https://gateway.veefore.com.
  • Saving the credential tests it against the gateway.

    Operations

  • Run Tool: pick a tool (listed live from Veefore) and fill its fields,
  • built from the tool’s parameter schema; or send JSON. Three outputs:
    Allowed, Refused and Needs Approval. Whether a person must
    approve is decided by your Veefore policy. By default the node waits for that
    decision, for as long as the approval is open, then runs the approved action
    or routes to Refused; or choose to continue on Needs Approval without
    waiting.

  • Check Only: the decision without running anything.
  • List Tools and Get Approval.
  • Veefore Tools (for an AI Agent)

    Connect Veefore Tools to an AI Agent’s Tool input and pick one of the
    agent’s apps (WhatsApp, Gmail, Stripe, …): its actions are offered to the
    model as tools, the model picks the one each request needs, and Veefore decides
    every call. Add one node per app, as with n8n’s own tool nodes. Who performs
    the app, its credential and its account values are set once in Veefore.

  • Actions: empty means all of the app’s actions. Pick some to offer only
  • those, or let the model decide (✨) with a hint on how to choose.

  • Fields (an app Veefore performs): the fields its actions require, each
  • Defined automatically by the model (✨, with an editable hint) until you
    set a value, which is then fixed for every action that has the field and
    never shown to the model. Every other field is filled by the model; add it
    under “Add field to send” to set it or steer the model. Account setup such
    as a WhatsApp phone number ID is set once in Veefore (Fixed values):
    applied to every call, never offered to the model.

  • Purpose: shown to approvers. By default the model says why with each
  • call (✨); or write it.

  • n8n performs the app: the node shows an n8n Tools input. Connect

n8n’s own tools for its actions (Gmail, Slack, HTTP Request, …) there
instead of to the agent, and set their fields in those tools. An app Veefore
performs shows the input for its actions only n8n can perform. Each runs only
after Veefore allows that exact call. Tools wired in for anything else are
not offered.

The model sees each action by a name led by its app
(whatsappbusinesscloudsendmessage).

Allowed: it runs once. Refused: nothing runs, and the model is told why. Needs
approval: the node waits up to Wait for a Decision (2 minutes by default).
Still undecided, the agent answers, and the action still happens, once, when a
person approves it: Veefore carries out its own actions, and the node runs the
n8n tool for the ones n8n performs (while n8n keeps running; after a restart,
the user asks again and the identical call goes ahead without a second
approval). No answer from Veefore means nothing runs.

After n8n runs a tool Veefore allowed, the node reports the result, so a
failed send shows as Failed in Veefore’s Actions. Before an approved
request runs, Veefore checks the n8n tool is still in the workflow.

Breaking in 3.0.0: Veefore Tool (one action per node) and **Veefore
Guard** were removed (first shipped in 2.3.0). Replace either with Veefore
Tools and add the same action.

New in 3.4.0: a new Veefore Tools node (version 3) holds one app, and the
model picks among its actions. Nodes added earlier keep working: several
actions per node (before 3.3.0) or one action per node (3.3.x).

New in 3.5.0: several items in one request (“delete every draft”) are one
call and one approval. An action Veefore performs takes veefore_batch, one
entry per item with what it is (a draft’s subject); approvers see one card,
get one notice and decide all of them at once, and each item stays bound to
its own values and is used once. The node waits once, then carries out what
was approved and hands the rest to Veefore. Calls of the same action in one
run join the card while it waits. An action that needs an ID tells the model
to look it up with the app’s list or search actions instead of asking the
user for it, and Gmail’s lists now return each draft’s or message’s subject
when Veefore performs them. Applies to every node version.

Important

Installing this node does not protect a workflow that also contains a direct
Gmail, HTTP Request or Code node. Register the instance in Veefore so it can
verify the workflows and report those paths.

Build

npm install --ignore-scripts
npm run build   # n8n-node build
npm run lint    # n8n-node lint, including the n8n Cloud checks

No runtime dependencies; only n8n-workflow (peer) and node:crypto.
Compatible with n8n 1.x and 2.x; verified on 2.43.7.

Publishing and n8n Cloud verification

n8n Cloud installs only verified community nodes. Verification requires a
package published to npm from GitHub Actions with a provenance statement,
and npm generates provenance only from a public repository.

1. Create a public GitHub repository (for example n8n-nodes-veefore) and copy
this directory into its root, including .github/workflows/publish.yml.
2. On npmjs.com, publish once by hand only if the name must be reserved;
otherwise let the workflow do the first publish. Then open the package →
Settings → Publish access → Trusted Publishers → Add → GitHub Actions:
your organization, the repository name, workflow publish.yml.
3. In the repository: npm run release. It lints, builds, bumps the
version, tags and pushes; the tag runs the workflow, which publishes with
provenance.
4. Check the published package: npx @n8n/scan-community-package n8n-nodes-veefore.
5. Submit it in the n8n Creator Portal. n8n reviews
it against its technical and UX guidelines; on approval it appears in the
nodes panel of n8n Cloud.