Package Information
Documentation
n8n-nodes-ezycourse
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
- Installation
- Authentication
- EzyCourse Trigger
- EzyCourse Action
- Troubleshooting
- Development
- Resources
- Contributing
- License
Compatibility
| Requirement | Version |
|---|---|
| n8n | >=1.0.0 |
| Node.js | >=18.0.0 |
| npm | >=9.0.0 |
Installation
- Open your n8n instance and navigate to Settings → Community Nodes.
- Click Install.
- Enter
n8n-nodes-ezycourseand confirm. - 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
- Add an EzyCourse Trigger node to your workflow and select the event you want to listen to.
- Activate the workflow. n8n will display a Webhook URL — copy it.
- In your EzyCourse dashboard, go to Settings → Webhook (Data-Out).
- 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
- EzyCourse documentation
- EzyCourse webhook settings — Data-In and Data-Out pages in your platform dashboard
- n8n community nodes documentation
- n8n community forum
- Changelog
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.