Aller au contenu principal

Notifications

Une notification prévient quelqu'un qu'un événement s'est produit : une période clôturée, une tâche de nuit en échec, une planification manquée. Les règles décident quand ; les canaux décident comment — la cloche de l'application, un e-mail, ou un appel à un connecteur.


Vue d'ensemble​

+ Add ruleperiod_closedscreen · insert, updateportal emailjob_failedjobemailask_reviewfired by a screen actionportal[notifications.period_closed]Rule idperiod_closedLabelPériode clôturéeEnabledTRIGGERA screen eventA job eventA screen actionAppsales ▾Screenperiod_status ▾EventsinsertupdatedeleteOnly when the written row has (AND)STATUSclosedDELIVERYportalemailactionRecipientsrole: controllersuser: aliceemail: finance@example.comMESSAGESubjectPériode {PERIOD} clôturée par {USER}BodySociété {COMPANY} : la période passe en lecture seule.Link (a route the notification opens)/screen/sales/period_statusSend a testCancelSaveRèglesdéclencheur · canauxTrois déclencheursécriture, tâche, actionCondition sur la lignechamp = valeur, cumuléesCanauxcloche, e-mail, requêteDestinatairesuser:, role:, email:Variables{COLONNE}, {USER}, {JOB}…Envoyer un testvaleurs d'exemple, sans enregistrer

Ce que voient les utilisateurs​

  • La cloche de l'en-tête affiche le nombre de notifications non lues, mis à jour en temps réel. Son menu liste les six dernières ; Tout marquer comme lu et Tout voir sont en bas. Un clic sur une notification la marque comme lue et ouvre son lien.
  • La page Notifications (depuis Tout voir) les liste avec les onglets Toutes / Non lues et Tout marquer comme lu.

Chaque utilisateur ne voit que ses propres notifications.


Le compte e-mail​

Les e-mails passent par le serveur SMTP défini dans Liberty Next → Administrer → App → Notifications (email) :

ChampDéfautRemarques
Notifications enabledactivéDésactivé : aucune règle ne se déclenche.
SMTP host, Port—, 587Sans hôte, seule la cloche fonctionne.
EncryptionSTARTTLSSTARTTLS (usually port 587), SSL / implicit TLS (usually port 465) ou None. Changer d'option règle le port habituel.
Timeout (s)20
User, Password—Le mot de passe est chiffré avec la clé maître de l'installation.
From addressl'utilisateurReprend le nom d'utilisateur s'il est vide.

| Keep read notifications (days, 0 = forever) | 90 | Les notifications lues plus anciennes sont purgées, au démarrage puis toutes les six heures. Les notifications non lues sont conservées. |

Les e-mails sont en texte brut : l'objet, le corps, puis le lien de la règle.


Règles​

Les règles se modifient dans Liberty Next → Construire → Notifications et s'enregistrent dans notifications.toml — une modification s'applique sans redémarrage. Send a test envoie la règle en cours de modification, même non enregistrée, avec des valeurs d'exemple à ses destinataires.

Déclencheurs​

DéclencheurSe déclenche quandRéglages
A screen eventUne ligne est créée, modifiée ou supprimée par un écran.App, Screen, Events (insert / update / delete) et, au besoin, Only when the written row has : des conditions champ = valeur, toutes requises (STATUS = closed).
A job eventUne exécution Nomaflow se termine.Jobs — plusieurs choisies dans une même liste, vide = toutes les tâches — et Events : failure, succeeded, canceled, missed (une planification qui ne s'est pas exécutée — voir Planifications), long_run avec un seuil en minutes, late (aucune exécution réussie à l'échéance Doit avoir réussi avant de la tâche).
A screen actionUne action d'écran de type send_notification s'exécute (un bouton ou une étape d'une chaîne d'actions).Rien de plus : l'action d'écran nomme la règle et transmet les valeurs de la ligne.

long_run se vérifie à la fin de l'exécution : il signale une exécution qui a duré au moins le seuil, pas une exécution encore en cours.

Canaux​

CanalDélivre
portalUne notification dans la cloche de chaque utilisateur destinataire.
emailUn e-mail à chaque destinataire qui a une adresse.
actionLance une requête (connecteur SQL) ou appelle un endpoint (connecteur API) avec les valeurs du message — pour publier dans Teams ou sur un webhook, ou écrire dans une table de journal. Ses paramètres sont les valeurs de l'événement, plus SUBJECT, BODY et RULE.

Un canal en échec est journalisé et n'arrête pas les autres. L'envoi se fait en arrière-plan : un enregistrement ou une tâche n'attend jamais le serveur de messagerie.

Destinataires​

FormeSignifie
user:aliceCet utilisateur.
role:controllersChaque utilisateur actif titulaire du rôle.
email:finance@example.comUne adresse — e-mail uniquement.

Dans l'éditeur, choisir les utilisateurs et les rôles dans la liste, ou saisir une adresse. Une entrée sans préfixe qui contient @ est traitée comme une adresse ; toute autre est ignorée et consignée dans le journal.

Variables​

L'objet, le corps et le lien acceptent des variables {NOM}, en majuscules ou en minuscules :

DéclencheurVariables
Événement d'écranChaque colonne de la ligne écrite, plus USER, APP, SCREEN, EVENT.
Événement de tâcheJOB, RUN_ID, STATE, ERROR, DURATION_MINUTES, ROWS, et EXPECTED_AT pour une planification manquée ou une échéance.
Action d'écranLes valeurs transmises par l'action, plus USER.

Une variable inconnue est laissée telle quelle. Dans l'éditeur, le bouton à côté de l'objet, du corps et du lien liste les variables du déclencheur et insère celle choisie à l'emplacement du curseur ; le même bouton figure à côté de l'objet et du corps d'une étape notify.

En TOML​

notifications.toml
[notifications.period_closed]
label = "Période clôturée"
trigger = { kind = "screen", app = "sales", screen = "period_status", events = ["update"], when = [{ field = "STATUS", value = "closed" }] }
channels = ["portal", "email"]
recipients = ["role:controllers", "email:finance@example.com"]
subject = "Période {PERIOD} clôturée par {USER}"
body = "Société {COMPANY} : la période passe en lecture seule."
link = "/screen/sales/period_status"

[notifications.job_failed]
trigger = { kind = "job", events = ["failure", "missed"] }
channels = ["email"]
recipients = ["role:ops"]
subject = "{JOB} : {STATE}"
body = "{ERROR}"

Depuis une étape de tâche​

Une tâche peut aussi envoyer elle-même un message, sous forme d'étape, avec en pièces jointes les fichiers qu'elle a produits — une synthèse planifiée. Voir Étapes → Notification.


Les alertes propres à une tâche​

Une tâche peut aussi prévenir en cas d'échec sans règle, depuis le bloc Alertes de l'éditeur de tâche :

jobs.toml
[jobs.alerts]
on_failure = true
recipients = ["role:ops", "user:alice"]

En cas d'échec, chaque destinataire reçoit une notification Job <id> failed avec l'erreur, dans la cloche et par e-mail. Avec Avertir si une exécution dépasse (minutes) (on_long_run_minutes), une exécution qui dure au moins ce temps envoie en plus Job <id> ran N min (threshold T), qu'elle ait échoué ou non. Écrire les destinataires sous la forme user:, role: ou email: — une entrée sans préfixe est prise pour une adresse e-mail.


Conseils​

  • Commencer par une règle : failure et missed sur toutes les tâches, vers le rôle d'exploitation.
  • Préférer les rôles aux utilisateurs nommés : la règle suit les changements d'équipe.
  • Utiliser Send a test après avoir modifié le compte SMTP.
  • Réserver la cloche à ce qui demande une action ; envoyer le reste par e-mail à une boîte partagée.