Reference · Tools
Gotify
Send, retrieve, and delete push notification messages on a self-hosted Gotify server.
The Gotify node sends, retrieves, and deletes push notification messages on your self-hosted Gotify server. You can use it to build alert pipelines that fire a push notification when a monitored condition is met — for example, when a deployment fails or a form is submitted. It connects to whichever server URL you configure, since Gotify is always self-hosted.
- Node type
- Action
- Parameters
- 9
- Outputs
- Output, Error
- Credentials
- Gotify API
Gotify
Send, retrieve, and delete push notification messages on a self-hosted Gotify server.
Overview
Gotify is a self-hosted push notification server. This tool lets you create (send) push notification messages, retrieve existing messages, and delete messages. It uses two separate API tokens: an App API Token for creating messages and a Client API Token for reading/deleting messages. Both are sent via the X-Gotify-Key header. The server URL is user-configured since Gotify is always self-hosted.
Category: Communication
Tool Name: gotify
Version: 1
Appearance: Icon: lucide-Bell | Color: #0063B0
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Gotify API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Message | message |
Operations
| Operation | Value | Description |
|---|---|---|
| Create | create | Send a new push notification message |
| Delete | delete | Delete an existing message by ID |
| Get Many | getAll | Retrieve messages from the server |
Parameters
Message: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Message | string | Yes | — | The message to send. If using Markdown, set the Content Type option to “text/markdown”. Supports expressions like {{ $json.body }}. |
| Additional Fields | collection | No | {} | Additional optional fields for the message. |
| — Priority | number | No | 1 | The priority of the message. Higher values indicate higher priority. |
| — Title | string | No | — | The title of the message. Supports expressions. |
| Options | collection | No | {} | Additional options for the message. |
| — Content Type | options | No | text/plain | The content type of the message body. |
Options: text/plain, text/markdown |
Message: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Message ID | string | Yes | — | The ID of the message to delete. Supports expressions like {{ $json.id }}. |
Message: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 20 | Max number of results to return. (shown when Return All is false) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
The Gotify response is merged into the incoming item JSON at the top level — the fields you sent in pass through and binary data is forwarded.
| Operation | Output items |
|---|---|
create | One item — the message record Gotify created, including the fields it assigned. |
delete | One item carrying success: true. A delete that fails raises an item error instead. |
getAll | Fans out — one output item per message. With Return All on, every page is fetched; otherwise up to Limit messages. When the server returns no messages, the input item is emitted unchanged. |
Because Get Many fans out, downstream nodes see one item per message and need no Split Out node.
Usage Examples
- Send a push notification to Gotify
- List all messages from Gotify server
- Delete a Gotify message by ID
- Send a Markdown-formatted push notification
Example Configuration
Send a simple notification:
{
"type": "gotify",
"parameters": {
"resource": "message",
"operation": "create",
"message": "Nightly backup finished"
}
}
Send a titled, high-priority notification:
{
"type": "gotify",
"parameters": {
"resource": "message",
"operation": "create",
"message": "Server maintenance completed successfully",
"additionalFields": {
"title": "Maintenance Alert",
"priority": 5
}
}
}
Send Markdown so the Gotify client renders formatting:
{
"type": "gotify",
"parameters": {
"resource": "message",
"operation": "create",
"message": "# Daily Report\n\n**Processed:** {{ $json.count }} items\n**Status:** Complete",
"additionalFields": {
"title": "Daily Processing Summary",
"priority": 3
},
"options": {
"contentType": "text/markdown"
}
}
}
Delete messages listed by an upstream node:
{
"type": "gotify",
"parameters": {
"resource": "message",
"operation": "delete",
"messageId": "{{ $json.id }}",
"maxConcurrency": 3
}
}
Retrieve the 10 most recent messages:
{
"type": "gotify",
"parameters": {
"resource": "message",
"operation": "getAll",
"returnAll": false,
"limit": 10
}
}
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, retrieve, or delete push notification messages on a self-hosted Gotify server.
- Two tokens, two jobs. Creating a message uses the App API Token; reading and deleting use the Client API Token. Configure both on the credential or the operations you did not supply a token for will fail.
- Markdown needs the Content Type option. Writing Markdown into Message is not enough — set Content Type to
text/markdownor the client shows the raw characters. - Priority drives client behavior. Higher values are treated as more urgent by the Gotify clients; pick a consistent scale across your workflows.
- Delete one message per item. To clear several messages, feed the node one item per message ID — for example from a Get Many run — rather than a comma-separated list.
Frequently asked questions
Why do I need two separate API tokens, and where do I get them?
Gotify uses different tokens for different roles: an App API Token authorizes creating (sending) messages, while a Client API Token authorizes reading and deleting them. You generate each token inside your Gotify server's admin interface and enter both on the BusyBot credential. If you only configure one, any operation that requires the other token will fail.
I put Markdown in my message body but the Gotify client is showing raw asterisks and hashes. What's wrong?
Setting the message text to Markdown syntax is not enough on its own. You also need to set the Content Type parameter to `text/markdown`. Without it, Gotify treats the body as plain text and your client renders it literally.
How do I delete multiple messages at once?
The node deletes one message per item it processes. To clear several messages, first use a Get Many operation to retrieve the messages you want to remove, then feed each result as a separate item into a Delete operation — one item per message ID. There is no batch-delete input that accepts a list of IDs.
What does the Priority parameter actually control?
Priority is a numeric value that Gotify clients use to decide how urgently to surface a notification — higher numbers are treated as more urgent. The Gotify node lets you set this per message, so you should pick a consistent scale across your workflows (for example, 1 for informational and 8 for critical) to keep client behavior predictable.
What happens when the node encounters an error, and how do I handle it?
The node has two outputs: Output and Error. Successful operations route through Output; failures — such as an unreachable server URL or a missing token — route through Error. Connecting the Error output to a handler step lets your workflow respond to failures rather than silently stopping.
Build with the Gotify node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Gotify API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.