npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@axonflow/n8n-nodes-axonflow

v1.2.1

Published

AxonFlow API integration for n8n: call AxonFlow policy and HITL endpoints from your workflows.

Readme

n8n-nodes-axonflow

AxonFlow API integration for n8n. Call the AxonFlow policy and HITL endpoints directly from your n8n workflows.

npm version License: MIT

What it does

This package contributes a single AxonFlow node with four operations against an AxonFlow Agent:

| Operation | Endpoint | When to use | |---|---|---| | Check Policy | POST /api/v1/mcp/check-input | Before a workflow takes a sensitive action — receive {allowed, block_reason?} and branch on it. On a redact-not-block allow it also returns the masked text; see Redaction: your workflow must use the masked text below. | | Record Decision | POST /api/v1/audit/tool-call | After a successful action — capture inputs, outputs, policies applied. | | Audit Log | POST /api/v1/audit/tool-call | From error branches — record the failed action with success: false and error_message. | | Wait for Approval | POST /api/v1/hitl/queue | When the workflow needs a human in the loop — creates an approval entry and pairs with an n8n Wait node for webhook resume. |

Plus a single AxonFlow API credential type holding the endpoint + Basic-auth (clientId + userToken).

Redaction: your workflow must use the masked text

Check Policy can allow an action and still require that you change it. When the statement you submitted carried sensitive data under a redact-not-block policy, AxonFlow allows the call and returns the masked version alongside it:

{
  "allowed": true,
  "redacted": true,
  "redaction_evaluated": true,
  "redacted_statement": "transfer to [REDACTED]"
}

This node passes those fields through to your workflow unchanged, and does nothing else with them. It does not rewrite the action, and it cannot: the node has no way to know which of your downstream parameters the statement came from. Applying the redaction is your workflow's job.

So when redacted_statement is present, use it in place of the original. A workflow that branches only on allowed will proceed with the unmasked text, and the platform's audit record will show a redaction that your workflow did not apply.

Two rules worth building in:

  • Treat redaction_evaluated as the trust signal. When it is absent or false the redaction detector did not run, so "no masked text" means "nothing looked", not "nothing found". Fail closed there rather than proceeding.
  • AxonFlow will not redact for you. Substituting the masked text it returns is the sanctioned way to satisfy a redaction policy; masking the text yourself is not, because your patterns and the platform's will disagree.

This applies on every AxonFlow edition. On Community the call is allowed and recorded either way, so this paragraph is the control - nothing downstream will stop an unmasked value for you. On Enterprise the platform can additionally refuse a call whose enforcement point has declared it cannot apply a redaction; this node declares exactly that, honestly, because it performs no substitution of its own.

Install

n8n GUI (self-hosted)

  1. Settings > Community Nodes > Install.
  2. npm package name: @axonflow/n8n-nodes-axonflow.
  3. Restart n8n.

Manual (self-hosted)

cd ~/.n8n/custom
npm install @axonflow/n8n-nodes-axonflow
# restart n8n

n8n Cloud does not currently allow unverified community nodes. Use the stock-HTTP-node recipe on n8n Cloud until this package is verified.

Configure the credential

Credentials > New > AxonFlow API.

| Field | Description | |---|---| | Endpoint | Base URL of your AxonFlow Agent. SaaS: https://try.getaxonflow.com. Self-hosted: typically port 8080. | | Client ID | Your tenant identifier. | | User Token | Sent as the password half of HTTP Basic auth. Stored encrypted in n8n. |

Quickstart

  1. Install the community node (see above).
  2. Create an AxonFlow API credential with your endpoint + Client ID + User Token.
  3. Add an AxonFlow node to your workflow.
  4. Pick an operation:
    • Check Policy — submit a proposed action and branch on allowed: true/false.
    • Record Decision — log the outcome of a downstream action.
    • Audit Log — log a failed action from an error branch.
    • Wait for Approval — create a HITL request and pair with a Wait node for webhook resume.
  5. Run the workflow.

Three things to know

  1. Bearer Auth > Header Auth. This credential uses the Header Auth pattern (Authorization built inline) rather than n8n's built-in Bearer Auth class, which silently drops the header in some n8n versions (n8n#15261).
  2. Idempotency by default. Every operation sends Idempotency-Key: {executionId}-{itemIndex}-{nodeName} so n8n's Retry on Fail doesn't double-record. Override at the node parameter level if you need a domain-specific key.
  3. HITL pairs with the Wait node. Wait for Approval creates the AxonFlow approval entry; pair it with a downstream Wait node configured for On Webhook Call mode. As of platform v8.1.0+, pass the Wait node's webhook URL as notify_url in the HITL queue request and AxonFlow will POST to it automatically on approval/rejection — no polling sidecar needed. For self-hosted deployments on v8.0.x, two manual paths work: (a) run a small polling sidecar that watches GET /api/v1/hitl/queue/{id} and POSTs to the Wait node's webhook URL when status changes, or (b) have a reviewer trigger the resume URL manually from the portal. See the n8n integration docs for details.

Client identification

Every call this node makes to AxonFlow carries X-Axonflow-Client: n8n-plugin/<version>, set once on the credential so it rides every operation. The version is read from this package's own metadata.

What this is and is not. It is attribution on a request the platform already receives — no additional request is made, and this node sends no heartbeat or telemetry ping of its own. It is never used for authentication: the platform authenticates on the Authorization header, so a missing or mangled value cannot fail a call. Nothing about your workflow data, statements, parameters, or identity is added by it.

Example workflow

examples/governed-loan-workflow.json — an importable workflow that:

  1. Receives a loan request via HTTP trigger,
  2. Calls Check Policy on the amount,
  3. If allowed=false, branches to Wait for Approval (workflow pauses),
  4. On approval, calls the downstream loan-issuance HTTP endpoint,
  5. Records the outcome with Record Decision, with an error branch to Audit Log.

Import in n8n: Workflows > Import from File > governed-loan-workflow.json.

Build from source

git clone https://github.com/getaxonflow/axonflow-n8n-node.git
cd axonflow-n8n-node
npm install
npm run build       # tsc > dist/
npm run lint
npm test            # node --test (25 tests)

Documentation

License

MIT