ezycourse

n8n community nodes for EzyCourse platform integration — triggers and actions for student management, enrollments, sales, and course progress

Package Information

Downloads: 5 weekly / 298 monthly
Latest Version: 0.1.2
Author: Dani

Documentation

n8n-nodes-ezycourse

npm version
npm downloads
License: MIT
n8n community node

An n8n community node package for EzyCourse-powered platforms. Connect your EzyCourse academy to any n8n workflow — react to student activity in real time and automate enrollment, tagging, and progress tracking.

The package ships two nodes:

  • EzyCourse Trigger — starts a workflow when EzyCourse fires one of 10 webhook events (new signups, sales, course progress, etc.)
  • EzyCourse Action — sends commands to EzyCourse from inside a workflow (register students, manage enrollments, assign tags, and more)

Table of Contents

Compatibility

Requirement Version
n8n >=1.0.0
Node.js >=18.0.0
npm >=9.0.0

Installation

  1. Open your n8n instance and navigate to Settings → Community Nodes.
  2. Click Install.
  3. Enter n8n-nodes-ezycourse and confirm.
  4. Restart n8n if prompted.

Self-hosted only. Community nodes are not available on n8n Cloud at this time.

Authentication

Create a new EzyCourse API credential in n8n. You will find the required tokens in your EzyCourse dashboard under Settings → Webhook.

Field Required Where to find it
Base URL Yes Root URL of your EzyCourse platform, e.g. https://your-academy.com. No trailing slash. No default value — every platform has its own URL.
Access Token Yes Shown on the Webhook → Data-In page. Embedded in each endpoint URL.
Signature Token No Shown on the Webhook → Data-Out page. Enables HMAC-SHA256 signature verification on incoming webhook payloads.

n8n will verify the credential by sending a test request to your platform. A validation error response (HTTP 422) confirms the token is accepted.

EzyCourse Trigger

The EzyCourse Trigger node starts a workflow whenever EzyCourse sends a webhook event. Each workflow gets its own unique URL generated by n8n.

Setup

  1. Add an EzyCourse Trigger node to your workflow and select the event you want to listen to.
  2. Activate the workflow. n8n will display a Webhook URL — copy it.
  3. In your EzyCourse dashboard, go to Settings → Webhook (Data-Out).
  4. Paste the URL into the field for the corresponding event and save.

When a Signature Token is set in the credential, every incoming request is verified with HMAC-SHA256. Requests with a missing or invalid signature are rejected with HTTP 401.

Supported Events

Event Trigger
new_signup A new user registers on the platform
new_product_enrollment A student enrolls in a product (course, bundle, community, etc.)
new_sale A new sale or order is created
renew_order A subscription order is renewed
cancel_order An order or subscription is cancelled
buy_seats Seats are purchased for a group or team enrollment
course_completed A student completes an entire course
chapter_completed A student completes a chapter within a course
quiz_completed A student completes a quiz
lesson_completed A student completes a single lesson

EzyCourse Action

The EzyCourse Action node sends commands to your EzyCourse platform from inside a workflow. Select a Resource and an Operation to build your request.

Resource Operation Description
Student Register Register a new student account
Student Register and Enroll Register a new student and enroll them in a product in one step
Student Authenticate Generate a remote authentication URL for an existing student (SSO-style)
Enrollment Enroll Enroll an existing student in a product
Enrollment Unenroll Remove a student's enrollment from a product
Enrollment Complete Subscription Cycle Mark a subscription cycle as complete, e.g. after an external payment event
Lesson Toggle Progress Mark a lesson as completed or incomplete for a student
Tag Add to Student Assign one or more tags to a student for segmentation or automation

Optional fields (phone number, expiry date, price ID, redirect URL, etc.) are grouped under Additional Fields to keep the UI clean.

Troubleshooting

Webhooks not arriving

Confirm the URL you pasted in the EzyCourse dashboard exactly matches the one displayed by n8n, including any path segments. Check that the workflow is active — n8n does not receive webhooks while a workflow is inactive.

HTTP 401 on incoming webhooks

The node rejected the request because the HMAC-SHA256 signature did not match. Verify that the Signature Token in your n8n credential matches the one in your EzyCourse Webhook (Data-Out) settings. Regenerating the token on either side without updating the other will cause this error.

HTTP 401 on action node requests

The Access Token in your credential is invalid or has been regenerated. Go to Webhook (Data-In) in your EzyCourse dashboard and copy the current token into your n8n credential.

Cannot find module 'n8n-workflow' during build

This is expected before npm install. Run npm install first. The package is a peer dependency provided by n8n at runtime.

Development

npm install
npm run build      # compile TypeScript + copy SVG icons to dist/
npm run dev        # watch mode
npm run lint       # ESLint

Unit tests — no external dependencies, always safe to run:

npm test

Integration tests — require a live EzyCourse platform and a locally exposed n8n instance:

cp .env.test.example .env.test
# fill in BASE_URL, ACCESS_TOKEN, SIGNATURE_TOKEN, WEBHOOK_URL
# for WEBHOOK_URL: run n8n locally and expose port 5678 with ngrok
npm run test:integration

Integration tests skip automatically when .env.test is absent, so the suite is safe to run in CI without credentials.

Resources

Contributing

Bug reports, feature requests, and pull requests are welcome. Please open an issue on GitHub before submitting a large change so we can discuss the approach first.

License

This project is licensed under the MIT License — see the LICENSE file for the full text.

Copyright © 2026 Dani (cr0hn@cr0hn.com)

The MIT license is a permissive open-source license. It allows you to freely use, copy, modify, merge, publish, distribute, sublicense, and sell copies of this software — for personal, commercial, or any other purpose — with no obligation beyond preserving the original copyright notice and license text in any substantial copy or derivative work.

In plain terms: do whatever you want with this code, just keep the copyright header.

Discussion