Proxmox Notifications to Telegram with a Webhook Target

Proxmox Notifications to Telegram with a Webhook Target

push.tg

Since 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, value k3x9q. 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 pushtg

Then 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

Get your endpoint: t.me/trafficRobot?start=tg-proxmox. It takes 30 seconds, it has no ads, and it has been running since 2016.

Report Page