npm package: @ivanlaomarketing/n8n-nodes-webinarjam
Description: n8n community node for WebinarJam — Register attendees, list webinars, get registrants and automate your webinar workflows. Built by Ivan Lao (@ivanlaomarketing) - Marketing Automation Specialist & Make Certified Partner.
Author: Ivan Lao
Latest version: 1.0.0

# n8n-nodes-webinarjam

[![npm version](https://img.shields.io/npm/v/@ivanlaomarketing/n8n-nodes-webinarjam.svg)](https://www.npmjs.com/package/@ivanlaomarketing/n8n-nodes-webinarjam)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![n8n community](https://img.shields.io/badge/n8n-community%20node-orange)](https://n8n.io)
[![Built by Ivan Lao](https://img.shields.io/badge/Built%20by-Ivan%20Lao-blueviolet)](https://laoivan.com)

> **The most complete n8n integration for WebinarJam.**
> List webinars, register attendees, query registrant data, and automatically trigger workflows when new people sign up — all without writing a single line of code.

Built by [Ivan Lao](https://laoivan.com) — Marketing Automation Specialist & Make Certified Partner.

---

## Features

| Feature | Description |
|---------|-------------|
| **List Webinars** | Retrieve all webinars in your WebinarJam account |
| **Get a Webinar** | Fetch full details including schedule IDs for each session |
| **Register a Person** | Register an attendee for a specific webinar session |
| **Get Registrants** | Query registrants with filters: date, attendance, purchase, session |
| **New Registrant Trigger** | Polling trigger — fires automatically when new registrants sign up |

---

## Installation

### Via n8n Community Nodes (Recommended)

1. In your n8n instance, go to **Settings → Community Nodes**
2. Click **Install**
3. Enter: `@ivanlaomarketing/n8n-nodes-webinarjam`
4. Click **Install** and restart n8n

### Via npm (self-hosted)

```bash
npm install @ivanlaomarketing/n8n-nodes-webinarjam
```

---

## Authentication

WebinarJam uses a single API Key for authentication.

### How to get your API Key

1. Log in to your [WebinarJam Dashboard](https://app.webinarjam.com)
2. Open any event → **Advanced** → **API Custom Integration**
3. Copy your 64-character API Key

> ⚠️ **Important:** API access requires prior approval. Go to your **Profile → API** and fill in the request form. Approval takes up to **2 business days**.

### Setting up credentials in n8n

1. In n8n, go to **Credentials → New**
2. Search for **WebinarJam API**
3. Paste your API Key
4. Save and test the connection

---

## Operations Reference

### Resource: Webinar

#### Get Many (List Webinars)

Returns all webinars in your account. No parameters required.

```
WebinarJam → Webinar → Get Many
```

**Output fields per webinar:** `webinar_id`, `webinar_hash`, `name`, `title`, `description`, `type`, `schedules`, `timezone`

---

#### Get (Get a Webinar)

Returns full details for a single webinar, including **schedule IDs** needed for registration.

```
WebinarJam → Webinar → Get
```

| Parameter | Required | Description |
|-----------|----------|-------------|
| Webinar ID | ✅ | The numeric webinar ID (from List Webinars) |

**Output includes:** `schedules[].schedule` ← this is the Schedule ID you need for registration.

---

### Resource: Registrant

#### Register (Register a Person)

Registers a person for a specific webinar session.

> ⚠️ You must first run **Get a Webinar** to obtain the **Schedule ID** before registering. The schedule ID identifies the specific session (date/time).

```
WebinarJam → Registrant → Register
```

| Parameter | Required | Description |
|-----------|----------|-------------|
| Webinar ID | ✅ | Numeric webinar ID |
| Schedule ID | ✅ | Session ID from Get a Webinar → schedules[].schedule |
| First Name | ✅ | Registrant's first name |
| Email | ✅ | Registrant's email address |
| Last Name | ➕ | May be required by webinar config |
| Country | ➕ | 2-letter ISO code (e.g. IT, US, GB) |
| State | ➕ | State/region code |
| Phone Country Code | ➕ | With + prefix (e.g. +39) |
| Phone | ➕ | Digits only |
| Twilio Consent | ➕ | Required if SMS reminders are enabled |
| Timezone ID | ➕ | Internal WebinarJam ID (mainly for Texas, USA) |
| IP Address | ➕ | For geo-location |

**Output includes:** `user_id`, `live_room_url`, `replay_room_url`, `thank_you_url`, `schedule`, `date`, `timezone`

> **Series webinars:** Always use the **first** schedule ID only. The API automatically registers the person to all subsequent sessions in the series.

---

#### Get Many (Get Registrants)

Retrieves registrants for a webinar with optional filters.

```
WebinarJam → Registrant → Get Many
```

| Parameter | Required | Description |
|-----------|----------|-------------|
| Webinar ID | ✅ | Numeric webinar ID |
| Schedule ID | ➕ | Filter to specific session (0 = all) |
| Page | ➕ | Page number for pagination (default: 1) |
| Search | ➕ | Search by name or email |
| Date Range | ➕ | Today, Last 7 Days, Last 30 Days, etc. |
| Attended Live | ➕ | Filter by live attendance status |
| Attended Replay | ➕ | Filter by replay watch status |
| Purchased | ➕ | Filter by purchase status |

---

## Trigger Node

### Watch New Registrants (Polling)

> ⚠️ **WebinarJam does NOT support native outbound webhooks.** This trigger uses **polling** — it calls the WebinarJam API on a schedule and fires your workflow only when new registrants are detected.

```
WebinarJam Trigger → your workflow nodes
```

| Parameter | Required | Description |
|-----------|----------|-------------|
| Webinar ID | ✅ | The webinar to monitor |
| Schedule ID | ➕ | Monitor specific session (0 = all sessions) |

**How it works:**
1. n8n calls the trigger on your configured interval (e.g. every 1 minute)
2. The node calls `/registrants` with `date_range=today`
3. It compares `signup_date` against the last poll timestamp
4. Only NEW registrants are emitted — no duplicates
5. If no new registrants: workflow does NOT execute (no noise)

**Configure poll interval:** In the trigger node settings → Polling Times

---

## Important Notes

### 1. Schedule ID is critical

The Schedule ID is **required to register someone** and is **only available while the webinar is active**. After a webinar ends, schedule IDs may no longer be retrievable via API.

**Workflow pattern:**
```
Get a Webinar → [extract schedules[n].schedule] → Register a Person
```

### 2. Series webinars

For recurring/series webinars, **only use the first schedule ID** when registering. WebinarJam automatically adds the registrant to all future sessions.

### 3. Pagination

The Get Registrants operation returns one page at a time. Use the `Page` filter and loop through pages to retrieve all registrants.

---

## About the Author

## 👨‍💻 Built by Ivan Lao — Marketing Automation Specialist

This node was built by **[Ivan Lao](https://laoivan.com)**, Marketing Automation consultant, certified Make Service Partner, and n8n expert based in Florence, Italy.

*"Ivan Lao è un consulente specialista in Marketing Automation con oltre 10 anni di esperienza. Make Service Partner ufficiale certificato e esperto di n8n, specializzato in automazioni avanzate, WhatsApp Marketing, funnel di vendita, integrazioni SaaS e implementazione di soluzioni AI."*

| | |
|---|---|
| 🌐 Website | [laoivan.com](https://laoivan.com) |
| 💼 LinkedIn | [@ivanlaomarketing](https://linkedin.com/in/ivanlaomarketing) |
| 📺 YouTube | [@IvanLaoMarketing](https://youtube.com/@IvanLaoMarketing) |
| 📸 Instagram | [@ivanlaomarketing](https://instagram.com/ivanlaomarketing) |
| 💬 WhatsApp | [Join Channel](https://whatsapp.com/channel/0029Va8yswJE50UcnzgnGn02) |
| 📣 Telegram | [@IvanLaoMarketingAutomation](https://t.me/IvanLaoMarketingAutomation) |
| 👥 Facebook | [Make Italia Group](https://facebook.com/groups/makeitalia) |

> 💡 **Need a custom automation?** Contact: [info@laoivan.com](mailto:info@laoivan.com)

---

## Changelog

See [CHANGELOG.md](./CHANGELOG.md) for version history.

---

## License

MIT © [Ivan Lao](https://laoivan.com) — [info@laoivan.com](mailto:info@laoivan.com)