Reference · Tools
Pushover
Send push notifications with optional image attachments via the Pushover notification service.
The Pushover node sends push notifications to users and devices, optionally with an image attached, and supports priority levels up to an emergency mode that keeps re-alerting until acknowledged. A typical build is paging an on-call engineer with a graph of the failing metric attached.
- Node type
- Action (binary)
- Parameters
- 9
- Outputs
- Output, Error
- Credentials
- Pushover API
Pushover
Send push notifications with optional image attachments via Pushover
Overview
The Pushover tool sends push notifications to users and devices via the Pushover API (POST https://api.pushover.net/1/messages.json). Supports message priority levels (-2 lowest through 2 emergency), optional image attachments from upstream binary data, HTML formatting, supplementary URLs, custom sounds, device targeting, and timestamps. Emergency priority (2) requires retry and expire parameters. All requests use multipart/form-data. Authentication uses an application API token and a per-recipient user/group key.
Category: Communication
Tool Name: pushover
Version: 1
Appearance: Icon: lucide-Bell | Color: #249DF1
Node Type
Action (Binary) — handles file/binary data operations
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Pushover API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Message | message |
Operations
| Operation | Value | Description |
|---|---|---|
| Message: Push | push | Send a push notification |
Parameters
Message: Push
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| User Key | string | Yes | — | The user/group key (not email address) of the recipient, viewable on the Pushover dashboard (https://pushover.net/). Supports expressions. |
| Message | string | Yes | — | The notification message body. Supports expressions. |
| Priority | options | No | -2 | Notification priority. -2 = silent, -1 = quiet, 0 = normal, 1 = high (bypasses quiet hours), 2 = emergency (requires user confirmation, retry, and expire). |
Options: -2 (lowest), -1 (low), 0 (normal), 1 (high), 2 (emergency — also send Retry and Expire) | ||||
| Retry (Seconds) | number | Yes | 30 | How often (in seconds) the Pushover servers will resend the notification. Minimum 30 seconds. Required for emergency priority. (shown when Priority is 2) |
| Expire (Seconds) | number | Yes | 30 | How many seconds the notification will continue to be retried for. Maximum 10800 (3 hours). Required for emergency priority. (shown when Priority is 2) |
| Additional Fields | collection | No | {} | Optional fields for enhanced notifications. |
| — Attachment (Binary Property) | string | No | — | Name of the input binary property containing an image file to attach to the notification. Leave empty for no attachment. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. |
| — Device | string | No | — | Target device name(s), comma-separated. Omit to send to all of the user’s devices. Supports expressions. |
| — HTML Formatting | boolean | No | false | Whether to enable HTML formatting in the message body. |
| — Sound | options | No | — | Notification sound. Choose “Custom” and provide the sound name if your desired sound is not listed. |
Options: pushover (the default Pushover sound), bike, bugle, cashregister, classical, cosmic, falling, gamelan, incoming, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat, alien (long), climb (long), persistent (long), echo (long), updown (long), vibrate (vibrate only), none (silent), __custom (use the Custom Sound Name field) | ||||
| — Custom Sound Name | string | No | — | Custom sound name when “Custom” is selected for Sound. (shown when Sound is __custom) |
| — Timestamp | string | No | — | Unix timestamp or ISO 8601 datetime for the message display time. If omitted, the API receipt time is used. Supports expressions. |
| — Title | string | No | — | Message title. Defaults to the application name in Pushover if omitted. Supports expressions. |
| — URL | string | No | — | A supplementary URL to show with the message. Supports expressions. |
| — URL Title | string | No | — | A title for the supplementary URL. If omitted, just the URL is shown. Supports expressions. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. Keep low to respect Pushover rate limits (10,000 messages/month). |
Output Data
One output item per input item, on the Output port. The Pushover API response is merged onto the item JSON at the top level, so the incoming fields pass through unchanged and the response fields sit alongside them — reference them directly, for example {{ $json.status }}. Binary data on the input item is forwarded to the output item, including the property used as the attachment.
A successful send returns status set to 1, plus the request ID Pushover assigns to the message. Anything the API rejects — an unknown user key, a message over the size limit, an attachment the service refuses — raises an error for that item: in errorPort mode the item leaves through the Error port carrying an _error object instead.
Usage Examples
- Send a push notification when a workflow completes
- Send an alert with high priority when an error is detected
- Send an emergency notification with retry/expire for critical alerts
- Attach a screenshot image to a push notification
- Send a notification with a supplementary URL link
Example Configuration
Send a plain notification at normal priority:
{
"type": "pushover",
"parameters": {
"resource": "message",
"operation": "push",
"userKey": "u1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o",
"message": "Your server backup completed successfully",
"priority": 0
}
}
Raise a high-priority alert with a title and a siren sound:
{
"type": "pushover",
"parameters": {
"resource": "message",
"operation": "push",
"userKey": "u1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o",
"message": "Database connection failed - immediate attention required",
"priority": 1,
"additionalFields": {
"title": "Critical System Alert",
"sound": "siren"
}
}
}
Escalate with emergency priority, repeating every minute for an hour until someone acknowledges it:
{
"type": "pushover",
"parameters": {
"resource": "message",
"operation": "push",
"userKey": "u1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o",
"message": "Production payment service is down - immediate response required",
"priority": 2,
"retry": 60,
"expire": 3600,
"additionalFields": {
"title": "EMERGENCY: Payment Service Down",
"url": "https://monitoring.example.com/alerts/12345",
"urlTitle": "View Alert Details"
}
}
}
Attach an image produced upstream and format the body as HTML, targeting two named devices:
{
"type": "pushover",
"parameters": {
"resource": "message",
"operation": "push",
"userKey": "u1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o",
"message": "<b>Sales Report</b><br/>Revenue increased by 15% this month",
"priority": 0,
"additionalFields": {
"title": "Monthly Sales Update",
"html": true,
"binaryPropertyName": "chart_image",
"sound": "cashregister",
"device": "iphone,android-tablet"
}
}
}
Log a silent notification built from the incoming item, stamped with the current time:
{
"type": "pushover",
"parameters": {
"resource": "message",
"operation": "push",
"userKey": "{{ $json.pushoverUserKey }}",
"message": "Scheduled maintenance completed for {{ $json.hostname }}",
"priority": -2,
"additionalFields": {
"title": "Maintenance Log",
"timestamp": "{{ $datetime.unix }}"
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Send push notifications (with optional image attachments) to users and devices via the Pushover API.
Notes
- Priority defaults to
-2. At that level Pushover delivers the message silently and generates no alert, which is rarely what you want for a notification. Set Priority to0for a normal push, and raise it only where the interruption is justified. - Emergency priority needs acknowledgement. Priority
2keeps re-alerting every Retry seconds until the recipient acknowledges it or Expire seconds elapse, so keep it for genuinely urgent traffic. - Expressions are resolved per item in User Key, Message, Title, URL, URL Title, Device and Timestamp, so a single node can notify a different recipient for every item that reaches it.
- The attachment is optional even when named. If the binary property you name is not present on an item, that item is still sent — as a notification without an image.
Frequently asked questions
Why did my notification arrive silently?
Priority defaults to `-2`, at which Pushover delivers the message silently and generates no alert. Set Priority to `0` for a normal push — this default catches almost everyone out.
How does emergency priority work?
Priority `2` keeps re-alerting every Retry seconds until the recipient acknowledges it. Reserve it for things that genuinely justify waking someone.
Can it attach an image?
Yes — image attachments are supported, which is what turns a bare alert into something actionable at a glance.
Which credential does it need?
A Pushover API credential.
Build with the Pushover node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Pushover API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.