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

n8n-nodes-n8nmanager-hitl

v0.1.3

Published

n8n community node for Human-in-the-Loop approvals via n8n-library

Readme

n8n-nodes-n8nmanager-hitl

An n8n community node package for Human-in-the-Loop (HITL) approvals powered by n8n-library. Replaces manual HTTP Request + Wait for Webhook wiring with drag-and-drop nodes.

Nodes

HITL Approval (Action Node)

Sends data to n8n-library for human review and pauses the workflow until a reviewer approves or rejects.

Parameters:

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | Template | dropdown | yes | HITL template (dynamically loaded from n8n-library) | | Title | string | no | Request title shown to the reviewer | | Description | string | no | Context for the reviewer | | Priority | select | no | low, medium, high, critical (default: medium) | | Timeout (Minutes) | number | no | Auto-expire timeout (default: 1440 = 24h) | | Data | JSON | yes | Data to display in the approval form (use expressions to map input) | | Assign To | string | no | User ID to assign the review to |

How it works:

  1. Node sends a POST to n8n-library's HITL webhook endpoint with the form data and a callback URL
  2. The workflow execution pauses (enters waiting state)
  3. A human reviews the request in n8n-library and clicks Approve or Reject
  4. n8n-library calls back to n8n's webhook-waiting endpoint
  5. The workflow resumes with the decision payload

Output:

{
  "request_id": 42,
  "action": "approve",
  "status": "approved",
  "responded_by": "admin",
  "form_data": {
    "notes": "Looks good",
    "revised_amount": 11000
  },
  "comment": "Approved with minor edits",
  "timestamp": "2026-03-17T15:30:00.000Z"
}

HITL Trigger (Polling Trigger Node)

Polls n8n-library for new HITL approval decisions and triggers a workflow when one is found. Useful for audit logging, notifications, or post-processing workflows that don't need to wait inline.

Parameters:

| Parameter | Type | Description | |-----------|------|-------------| | Template Filter | dropdown | Trigger for a specific template or all templates | | Action Filter | select | All, Approved, or Rejected |

Use cases:

  • Audit logging of all approval decisions
  • Slack/Teams notifications when approvals happen
  • Post-processing workflows triggered by approvals

Credentials

HITL Approval API

| Field | Description | |-------|-------------| | Instance URL | Base URL of your n8n-library instance (e.g. http://n8n-library:3100) | | API Key | API key from n8n-library Settings > API Keys (n8nlib_xxx) |

The credential test verifies connectivity by calling GET /api/hitl/templates.

Installation

Docker (custom-nodes volume mount)

If you run n8n in Docker with a custom-nodes volume mount:

  1. Clone this repo into your custom-nodes directory:

    cd /path/to/custom-nodes
    git clone https://github.com/LPilic/n8n-nodes-n8nmanager-hitl.git
  2. Install dependencies and build:

    cd n8n-nodes-n8nmanager-hitl
    npm install --ignore-scripts
    npm run build
  3. Install into n8n's node_modules (inside the container):

    docker exec <n8n-container> sh -c "cd /home/node/.n8n && npm install /home/node/.n8n/custom-nodes/n8n-nodes-n8nmanager-hitl --ignore-scripts"
  4. Add the N8N_CUSTOM_EXTENSIONS environment variable to your n8n service:

    environment:
      N8N_CUSTOM_EXTENSIONS: /home/node/.n8n/custom-nodes/n8n-nodes-n8nmanager-hitl
  5. Restart n8n.

Development

npm install --ignore-scripts
npm run dev    # Watch mode — recompiles on changes

After changes, reinstall in the container and restart n8n:

docker exec <n8n-container> sh -c "cd /home/node/.n8n && npm install /home/node/.n8n/custom-nodes/n8n-nodes-n8nmanager-hitl --ignore-scripts"
docker compose restart n8n-web n8n-worker

n8n-library API Endpoints Used

| Method | Endpoint | Purpose | |--------|----------|---------| | GET | /api/hitl/templates | List templates (for dropdown + credential test) | | POST | /api/hitl/webhook/:slug | Create approval request | | GET | /api/hitl/requests | Poll for decisions (trigger node) |

Example Workflow

[Trigger: New Invoice]
    -> [Extract Data]
    -> [HITL Approval: "invoice-approval"]
    -> [IF: action == "approve"]
        -> Yes: [Process Payment]
        -> No:  [Send Rejection Email]

The HITL Approval node pauses the workflow. The finance team reviews the invoice in n8n-library with all the extracted data displayed in a custom form. They approve or reject, optionally editing amounts or adding notes. The workflow resumes with their decision and form data.

Project Structure

n8n-nodes-n8nmanager-hitl/
├── package.json
├── tsconfig.json
├── credentials/
│   └── HitlApi.credentials.ts        # API key + instance URL credential
├── nodes/
│   ├── HitlApproval/
│   │   └── HitlApproval.node.ts       # Action node (send + wait for decision)
│   └── HitlTrigger/
│       └── HitlTrigger.node.ts        # Polling trigger node
└── dist/                              # Compiled JavaScript

Requirements

  • n8n 1.0+ (self-hosted)
  • n8n-library with HITL templates configured

License

MIT