Notifications
Notifications multi-canaux avec templates et journal de livraisons
PNeX notifie les humains comme le reste du produit fonctionne : canaux, templates et un journal complet des livraisons, le tout org-scoped.
Canaux
- websocket — le bus de la plateforme, remonté dans l’app
- webhook — POST générique qui couvre ntfy, Gotify, bots Telegram, domotique
- ntfy, telegram, slack, discord, smtp — intégrations dédiées




Modèles
Automatisation › Notifications a trois onglets : Canaux, Modèles et
Événements. Les modèles sont des documents minijinja résolus au déploiement du flow ;
leurs variables deviennent des entrées câblables du nœud Notification. Le
déclencheur est strictement booléen — l’entrée trigger est obligatoire (l’enregistrement
est refusé sans elle) et la notification ne part que s’il est vrai.
L’Anti-spam — limite d'envois du nœud (Messages max, Fenêtre (min)) contient les rafales : « Max N envois par fenêtre de D min ». Un envoi au-delà de la limite n’est pas délivré : il apparaît comme Bloqué (anti-spam) dans le journal.
Pièce jointe PDF
Un nœud PDF d'une page rend une version de page (par exemple un rapport
hebdomadaire écrit par un flow) en PDF rangé dans la médiathèque. Le champ Pièce
jointe PDF du nœud Notification désigne le champ qui porte l’identifiant de ce
fichier (asset_id) : les canaux Email (SMTP) joignent le PDF, les autres envoient le
message seul. Par défaut, une version rédigée par l’IA n’est exportée qu’une fois
approuvée par une personne dans Pages.
Identifiants
Mots de passe et jetons des canaux (SMTP, webhook, ntfy, Telegram…) sont rangés dans le coffre de secrets de l’organisation ; seul un owner ou un admin peut les y attacher, et un membre ne peut pas rediriger vers un autre serveur un canal qui détient un secret.

Événements : le journal des envois
Il n’y a pas de nouvel essai automatique : chaque tentative est journalisée dans OpenObserve avec son statut et affichée dans l’onglet Événements — Envoyé, Échec ou Bloqué (anti-spam) — avec sa source (Flow, Test ou OTA), sur les 30 derniers jours, filtrable par canal, statut et source. Le bouton Tester d’un canal ou d’un modèle envoie un essai réel avant de le câbler dans un flow.







