n8n Custom Nodes & OAuth2: From Challenges to Solutions

Hey n8n community!

I wanted to share my recent (and occasionally quite challenging!) experience creating and installing a custom node – n8n-nodes-wamm – to integrate the WAMM platform (https://wamm.pro/) with n8n (my self-hosted version is 1.94.1).

Along the way, I faced various hurdles, from the classic CommonJS vs. ES Modules compatibility issues (hello, pkce-challenge and other transitive dependencies!) to correctly configuring the node package and debugging runtime errors. It was quite the debugging adventure! :smile:

Because I know how valuable other people’s experiences can be when you’re hitting similar roadblocks, I’ve documented the entire journey – every step, every problem encountered, and every solution (with code examples and commands) – in a Medium article. I tried to make it as practical a guide as possible.

If you’re curious or facing difficulties when installing custom n8n nodes, I hope you find it helpful. You can read the full story here (it’s a “friends link,” so access is free, no paywall):

https://medium.com/@ulmeanuadrian/my-rocky-journey-installing-a-custom-n8n-node-a-tale-of-errors-and-solutions-cb4db23f049b?source=friends_link&sk=84d6225d470c61c1da30bf6ce02d241b

Any feedback or sharing of your own experiences is welcome! Happy automating!

Quick update on the WAMM custom node ( n8n‑nodes‑wamm )

Good news—every one of the obstacles I described in my Medium write‑up has now been fully eliminated. The package has been refactored, published on npm, and tested on the following setups:

  • Self‑hosted (Docker & bare‑metal)
  • n8n Desktop App (macOS, Windows, Linux)
  • n8n Cloud

Zero‑friction install

# In your n8n project folder or Docker image
npm install n8n-nodes-wamm           # or: yarn add n8n-nodes-wamm

Or, inside n8n: Settings ➜ Community Nodes ➜ Install ➜ n8n-nodes-wamm.

That’s it—no extra bundling steps, no CommonJS/ESM gymnastics, no patched dependencies.

What changed?

Area Before Now
Build Mixed CJS/ESM, manual tweaks Pure ESM; Rollup + tsup automate everything
Auth pkce-challenge incompatibility Switched to native Node crypto—zero external deps
Typing Experimental d.ts Full TypeScript, auto‑generated defs
Docs Blog walkthrough only Step‑by‑step README on npm with copy‑paste snippets

Get started

  1. Install (see above).
  2. Refresh n8n ➜ WAMM node appears under “Messaging”.
  3. Drop it on the canvas, add your WAMM API key & webhook URL.
  4. Enjoy two‑way WhatsApp automation without the headaches.

Full instructions live here: https://www.npmjs.com/package/n8n-nodes-wamm

I’d love to hear if it works just as smoothly for you—and, of course, PRs and issues are welcome on GitHub. Happy automating!