n8n-nodes-human-in-the-loop-custom
v0.1.2
Published
n8n Community Node for human-in-the-loop link generation and wait/resume workflows
Downloads
295
Maintainers
Readme
n8n-nodes-human-in-the-loop-custom
Public n8n Community Node package for channel-agnostic Human-in-the-Loop (HITL) workflows.
What this package solves
This package enables a real pause/resume HITL pattern for AI agents:
- Generate signed response links (
approve,reject,respond) - Send those links over any channel (email, Telegram, Mattermost, WhatsApp, etc.)
- Wait for human input with timeout fallback
- Return structured result back to the AI workflow/tool call
No external mobile app or paid HITL platform is required.
Included nodes
Create HITL Link
- Creates signed action links
- Resolves group routing from JSON mapping
- Computes SLA timestamps (
waitUntil,reminderAt,escalationAt) - Supports chat/standard/custom timeout modes with weekend extension
Wait For HITL Response
- Puts execution in wait state until callback or timeout
- Validates signed callback payloads
- Supports GET/POST callbacks and optional response form
- Returns status:
answered,rejected,timeout
Installation (n8n Community Nodes)
- In n8n, open
Settings -> Community Nodes - Select
Install - Enter package name:
n8n-nodes-human-in-the-loop-custom
- Restart n8n
Credential setup
Create credential HITL Signing Secret:
Signing Secret: shared HMAC secret used by both nodes
Use a long random secret (for example generated via password manager).
Recommended workflow pattern
- AI Agent (with
Call n8n Workflow Tool) - Subworkflow:
Create HITL Link- Channel send node (Email/Telegram/Mattermost/...)
Wait For HITL Response
- Return node output to the AI agent tool call
This ensures human responses are processed by the AI runtime, not pasted directly into an end-user chat response.
Important runtime behavior
- HITL links target
webhook-waiting/<executionId>. - They only work while the same execution is waiting in Wait For HITL Response.
- If you run only
Create HITL Link(without reachingWait For HITL Response), link clicks return:The execution "<id>" has finished already.
- For correct tests always execute the full chain:
Create HITL Link -> Send channel node -> Wait For HITL Response
Branding options (CI / Design)
In Create HITL Link you can now configure:
Page HeadingStylebar TextStylebar ColorApprove Button LabelReject Button LabelRespond Button LabelCustom CSS
These values are passed to the human response page rendered by Wait For HITL Response.
Timeout behavior
chatmode default: 1 hourstandardmode default: 24 hourscustommode: configurable- Optional weekend extension to at least 72 hours (Fri/Sat/Sun)
If no human response arrives before deadline, Wait For HITL Response returns a structured timeout payload with fallback text.
Public npm release
- Versioning:
0.1.x - Tag releases with
v*(for examplev0.1.0) - GitHub Actions pipeline publishes to npm using
NPM_TOKEN
Security notes
- Links are HMAC signed (
sha256) and include expiry (exp) and nonce - Expired or invalid links are rejected
- First valid responder wins (subsequent responses are rejected)
Local development
npm install --omit=peer
npm run lint
npm run test
npm run buildLicense
MIT
