Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@processlink/node-red-contrib-processlink) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Node-RED Integration
Connect your Node-RED flows to the Process Link platform
What's Included
| Node | What it does |
|---|---|
| files upload | Upload files to Process Link |
| send email | Send emails with optional file attachments |
| send SMS | Send SMS messages |
| notify group | Notify a managed group (email + SMS) |
| system info | Output device diagnostics (hostname, memory, disk, uptime, etc.) |
All messaging nodes use the ProcessMail API and output on two pins: success (1) and error (2). System info has a single output.
Installation
Palette Manager (recommended): Menu > Manage palette > Install > search @processlink/node-red-contrib-processlink
npm:
cd ~/.node-red
npm install @processlink/node-red-contrib-processlinkGetting Started
- Log in to the Process Link Portal
- Go to Developer > API Keys and generate a key
- Copy your Site ID and API Key
- In Node-RED, drag any Process Link node into your flow
- Double-click it, click the pencil icon next to "Config", and enter your credentials
[Inject] > [File In] > [files upload] --+-- success > [Debug]
+-- error > [Debug]Node Reference
Files Upload
Uploads files to Process Link.
Config: Set a filename (overrides msg.filename), pick a destination folder, and optionally prefix filenames with a timestamp.
Input: msg.payload (Buffer or string) with the file content. msg.filename as an optional fallback.
Success output: msg.file_id, msg.statusCode (201)
Send Email
Sends emails via ProcessMail. Supports To, CC, BCC, Reply-To, plain text or HTML body.
Input: msg.to, msg.subject, msg.body, msg.bodyType ("text" or "html")
Attachments: Connect an upload node first — msg.file_id is picked up automatically. For multiple files, collect IDs into msg.attachments as [{ fileId: "uuid" }].
Success output: msg.email_id, msg.statusCode (200)
Send SMS
Sends SMS messages via ProcessMail. Phone numbers must be in E.164 format (+61412345678).
Input: msg.to (string or array), msg.body
Success output: msg.message_id, msg.payload.segment_count, msg.statusCode (200)
Notify Group
Sends notifications to a managed group. Instead of hardcoding recipients in your flow, you reference a group key (e.g. maintenance-alerts). Org admins manage members and their preferred channels (email, SMS, or both) in ProcessMail — no flow changes needed.
Input: msg.group_key, msg.subject, msg.body
Options: Branded email template, link-only attachments (sends download links instead of inline files), HTML body support.
Attachments: Same as send email — connect an upload node or pass msg.attachments.
Success output: msg.payload.notifications_sent (e.g. { email: 3, sms: 2 }), msg.payload.total_recipients
Setup:
- Create a notification group in ProcessMail
- Add members and set contact preferences
- Use the group key in this node
System Info
Outputs system diagnostics: hostname, platform, OS, CPU, memory, disk, network, uptime, Node-RED version, and more.
Triggers on deploy (optional) or on any incoming message. Single output with everything in msg.payload.
Example Flows
We include a demo flow with examples for every node. Import it into Node-RED to try things out.
Download the demo flow — copy the JSON, then Menu > Import > Clipboard.
Quick start flow (file upload)
[
{
"id": "pl-inject",
"type": "inject",
"z": "",
"name": "Upload File",
"props": [],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 110,
"y": 100,
"wires": [["pl-file-in"]]
},
{
"id": "pl-file-in",
"type": "file in",
"z": "",
"name": "Read File",
"filename": "/tmp/myfile.csv",
"filenameType": "str",
"format": "",
"chunk": false,
"sendError": false,
"encoding": "none",
"allProps": true,
"x": 270,
"y": 100,
"wires": [["pl-upload"]]
},
{
"id": "pl-upload",
"type": "processlink-files-upload",
"z": "",
"name": "Upload to Process Link",
"server": "",
"filename": "",
"timeout": "30000",
"apiUrl": "https://files.processlink.com.au/api/v1/sites/{siteId}/files/upload",
"x": 470,
"y": 100,
"wires": [["pl-debug-success"], ["pl-debug-error"]]
},
{
"id": "pl-debug-success",
"type": "debug",
"z": "",
"name": "Success",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 680,
"y": 80,
"wires": []
},
{
"id": "pl-debug-error",
"type": "debug",
"z": "",
"name": "Error",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 670,
"y": 120,
"wires": []
}
]After importing, update the file path and add your credentials.
Security
API keys are stored encrypted by Node-RED, all communication uses HTTPS, and keys are never logged or exposed in flow exports.
Requirements
- Node-RED >= 2.0.0
- Node.js >= 18.0.0
Support
- Issues: GitHub
- Email: support@processlink.com.au
- Website: processlink.com.au