The idea is:
Extract the Human-in-the-Loop (HITL) utilities (currently in utils/sendAndWait/utils) into a lightweight, reusable npm package (e.g., @n8n/hitl-utils). This would allow custom node developers (e.g., for Signal, Telegram, etc.) to implement HITL workflows without copying code or depending on the full n8n package.
My use case:
I’m trying to extend n8n-nodes-signal to support interactive approval flows (similar to Telegram/WhatsApp nodes). Currently, I must either:
- Copy-paste the helpers (risking divergence from upstream updates), or
- Install
n8nas a dependency (which is impractical due to size).
A standalone package would let me (and others) reuse the battle-tested HITL logic while keeping our nodes lightweight.
I think it would be beneficial to add this because:
- Encourages Ecosystem Growth
- Custom node developers can easily add HITL support without reinventing the wheel.
- Example:
n8n-nodes-signal, custom Slack/Discord nodes, etc.
- Reduces Duplication
- Avoids fragmented copies of the same logic across repositories.
- Simplifies Maintenance
- Bug fixes/improvements in
n8nautomatically benefit all consumers. - No need to manually sync changes.
- Lightweight Integration
- Consumers install only the helpers (
few KB) instead of the entire100MB+).n8npackage (
Any resources to support this?
- Current
sendAndWaitutils: packages/nodes-base/utils/sendAndWait
Are you willing to work on this?
My TypeScript knowledge is limited. But I at least help with testing.