# Schedule Gotify notifications

Send messages to your self-hosted [Gotify](https://gotify.net) server on a schedule: backup reports, reminders, and alerts with a title and priority.

## Example: a nightly backup report

```json
{
  "name": "Backup report",
  "cron": { "expression": "15 4 * * *", "time_zone": "Europe/Berlin" },
  "nodes": [
    { "id": "status", "request": { "method": "GET", "endpoint": "https://backup.example.com/api/last-run", "credential_id": "YOUR_BACKUP_TOKEN_ID" } },
    { "id": "push", "gotify_send_message": {
        "credential_id": "YOUR_GOTIFY_APP_ID",
        "title": "Backup {{ $.status }}",
        "message": "{{ $.files }} files, {{ $.size_gb }} GB in {{ $.minutes }} min",
        "priority": 5 } }
  ]
}
```

## Set up

In Gotify, create an application and copy its token. Save your server URL and the token as a `gotify` credential. Your server must be reachable from the internet over HTTPS.

## Reference

### Send a Gotify message: `gotify_send_message`

**Sends** POST `<server>/message` with header `X-Gotify-Key`. **Output** for the next step: The created message.

| Field | Type | Notes |
| --- | --- | --- |
| `credential_id` | string, required | The id of a `gotify` credential holding your server URL and an application token. |
| `message` | string, required | Up to 4,096 characters. Placeholders allowed. |
| `title` | string | Optional. Placeholders allowed. |
| `priority` | integer | 0 (default) to 10. |

## More ideas

- A weekly reminder to check for container updates: `0 10 * * SAT`.
- A certificate expiry warning from your own endpoint, every morning.
