Reference · Tools

Gotify

Send, retrieve, and delete push notification messages on a self-hosted Gotify server.

Action Communication v1

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Gotify API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Messagemessage

Operations

OperationValueDescription
CreatecreateSend a new push notification message
DeletedeleteDelete an existing message by ID
Get ManygetAllRetrieve messages from the server

Parameters

Message: Create

ParameterTypeRequiredDefaultDescription
MessagestringYesThe message to send. If using Markdown, set the Content Type option to “text/markdown”. Supports expressions like {{ $json.body }}.
Additional FieldscollectionNo{}Additional optional fields for the message.
— PrioritynumberNo1The priority of the message. Higher values indicate higher priority.
— TitlestringNoThe title of the message. Supports expressions.
OptionscollectionNo{}Additional options for the message.
— Content TypeoptionsNotext/plainThe content type of the message body.
Options: text/plain, text/markdown

Message: Delete

ParameterTypeRequiredDefaultDescription
Message IDstringYesThe ID of the message to delete. Supports expressions like {{ $json.id }}.

Message: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo20Max number of results to return. (shown when Return All is false)

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum 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.

OperationOutput items
createOne item — the message record Gotify created, including the fields it assigned.
deleteOne item carrying success: true. A delete that fails raises an item error instead.
getAllFans 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes 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/markdown or 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 BusyBot

Last updated . Spotted something wrong? Tell us.