node-red-contrib-zoom-meetings 0.0.3
Custom Node-RED nodes for Zoom Meetings API.
node-red-contrib-zoom-meetings
Custom Node-RED nodes for Zoom Meetings API.
- ✅ Config node to store
API_TOKEN
- ✅ One “Zoom Meetings” node with dynamic dropdown for all operations
- ✅ Friendly operation names in dropdown
- ✅ Example JSON for POST/PATCH/PUT operations shown directly in the editor
Installation
Via local folder
# Unzip this folder, then from inside it:
npm install
# Link into Node-RED
npm link
# In your Node-RED user dir (~/.node-red)
cd ~/.node-red
npm link node-red-contrib-zoom-meetings
node-red
Or copy directly
Copy the unzipped folder into ~/.node-red/node_modules/
and restart Node-RED.
Nodes
1. Zoom API (config)
Stores your API Token and base URL.
Fields:
- Name (optional)
- Base URL (default:
https://api.zoom.us/v2
) - API Token (Bearer token from OAuth / Server-to-Server OAuth)
2. Zoom Meetings (main)
A single node that supports all Zoom Meetings API operations. When you select an operation, required fields (like meetingId
, userId
, etc.) will appear. For write operations (POST/PATCH/PUT), an Example JSON appears that you can copy & paste into msg.body
.
Dynamic Inputs:
msg.params
→ path/query overridesmsg.query
→ query string paramsmsg.body
→ request body (for POST/PATCH/PUT)msg.headers
→ extra headers
Outputs:
msg.statusCode
msg.headers
msg.payload
msg.request
(method + url)
Examples (POST/PATCH/PUT)
Create a meeting
Operation: POST /users/{userId}/meetings
{
"topic": "Weekly Sync",
"type": 2,
"start_time": "2025-08-22T10:00:00Z",
"duration": 30,
"timezone": "UTC",
"settings": {
"host_video": true,
"participant_video": false,
"join_before_host": true
}
}
Add registrant
Operation: POST /meetings/{meetingId}/registrants
{
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Doe",
"org": "ExampleCorp",
"custom_questions": [
{ "title": "How did you hear about us?", "value": "Newsletter" }
]
}
Update meeting details
Operation: PATCH /meetings/{meetingId}
{
"topic": "Updated Project Kickoff",
"agenda": "Discuss roadmap and milestones",
"settings": { "mute_upon_entry": true, "auto_recording": "cloud" }
}
Update poll
Operation: PUT /meetings/{meetingId}/polls/{pollId}
{
"title": "Feedback Poll",
"questions": [
{
"name": "How satisfied are you with today’s session?",
"type": "single",
"answers": ["Very satisfied", "Neutral", "Not satisfied"]
}
]
}
Update registrant status
Operation: PUT /meetings/{meetingId}/registrants/status}
{
"action": "approve",
"registrants": [ { "id": "abcd1234" }, { "id": "efgh5678" } ]
}
Official Documentation
- Meetings API overview: https://developers.zoom.us/docs/api/meetings/
- REST Meeting reference: https://developers.zoom.us/docs/api/rest/meeting/
Auth & Tokens
Use a Zoom OAuth access token (e.g. from Server-to-Server OAuth). The node sends:
Authorization: Bearer <API_TOKEN>
Notes
- Pagination: use
page_size
andnext_page_token
inmsg.query
- Non-2xx responses are still returned with
msg.statusCode
andmsg.payload
- Rate limits apply per app — design your flows accordingly
License
MIT