Proxmox Notifications to Telegram with a Webhook Target
push.tgSince Proxmox VE 8.3 the notification system has a Webhook target, so backup failures, replication errors, fencing events and package updates can go straight to Telegram. Template fields were checked against the Proxmox VE notifications chapter (October 2026).
Step 1: get your endpoint (30 seconds)
Open @trafficRobot in Telegram and press Start. You get an address like k3x9q@push.tg. Your endpoint is the part before the @: https://push.tg/k3x9q. Every example below uses k3x9q, so swap in your own key.
There's no bot to create, no chat_id to look up and no token to keep safe. Add @trafficRobot to a group and the group gets its own address, so the whole team sees the alerts.
Step 2: add a webhook target
Datacenter → Notifications → Notification Targets → Add → Webhook:
- Endpoint Name:
pushtg - Method: POST
- URL:
https://push.tg/{{ secrets.key }} - Secret: name
key, valuek3x9q. Secrets are stored in a root-only file and stay out of the readable config. - Body:
[{{ severity }}] {{ title }}
{{ message }}Click Test on the target.
Step 3: route events with a matcher
Add a Notification Matcher with your new target. With no rules it sends everything. To get only failures, set severity to error, or match type (vzdump for backups, replication, fencing, package-updates, system-mail).
Example /etc/pve/notifications.cfg matcher:
matcher: telegram-errors
match-severity warning,error
target pushtgThen make sure your backup jobs use notification mode "notification system" (the default on new jobs), not legacy sendmail.
Available template fields: {{ title }}, {{ message }}, {{ severity }} (info, notice, warning, error, unknown), {{ timestamp }}, {{ fields.hostname }}, {{ fields.type }}.
Older Proxmox or zero templating
Any version: add an SMTP or Sendmail target whose recipient is k3x9q@push.tg. The email lands in Telegram. Long emails are shortened in the chat. The full copy sits behind a secret link for up to 12 hours, then it's destroyed.
Check that the message really arrived. push.tg answers HTTP 200 even when the key is wrong. The body says {"error":"no such user"} instead of {"ok":...}. So a green "test sent" in your tool doesn't prove delivery. Look at Telegram.
More copy-paste guides
- Claude Code, Codex and Cursor: Get a Telegram Message When Your AI Agent Finishes
- Claude Code Telegram Notification Hook
- Uptime Kuma Telegram Alerts Without a Bot Token
- Healthchecks.io Alerts to Telegram
- Home Assistant Telegram Notification Without a Bot
- n8n Error Workflow: Telegram Alert When a Workflow Fails
- Grafana Alerts to Telegram with a Custom Webhook Payload
- Cron Job Failure Alert to Telegram (cron and systemd)
- GitHub Actions and GitLab CI Telegram Notification in One Line
- Synology NAS Email Alerts to Telegram
- Nagios Alerts to Telegram with curl
- Python: Get a Telegram Notification When Training Finishes
- How to Receive Email in Telegram Without Giving Out Your Real Address
- Send Server Alerts to Telegram with One curl Command
Get your endpoint: t.me/trafficRobot?start=tg-proxmox. It takes 30 seconds, it has no ads, and it has been running since 2016.