Portail ZAPP

Déclencheurs automatiques

Available in en es fr

Updated on 10/25/2026

Un dĂ©clencheur crĂ©e des demandes sur un service sans que personne ne les saisisse : Ă  une Ă©chĂ©ance, Ă  la lecture d'une boĂźte mail, d'un fichier, etc. La demande suit le mĂȘme chemin qu'une demande saisie : le formulaire du service est rempli (sans ĂȘtre affichĂ©), le processus dĂ©marre, et le demandeur est le compte SystĂšme, sauf rĂ©glage contraire.

Les dĂ©clencheurs se rĂšglent dans l'onglet DĂ©clencheurs de la fiche du service (menu Administration â€ș Catalogue et workflow â€ș Catalogue, puis le service). Cet onglet apparaĂźt une fois le service enregistrĂ©. Il est ouvert aux Administrateurs et aux Administrateurs Scoop.

Les types de déclencheurs proposés dépendent des modules installés.

Réglages du service

  • Commandable dans le catalogue (cochĂ© par dĂ©faut) : dĂ©cochĂ©, le service disparaĂźt du catalogue, de la recherche et du catalogue sans compte, et ne peut plus ĂȘtre commandĂ© directement. Seuls ses dĂ©clencheurs crĂ©ent alors des demandes.
  • Plafond de demandes par passage (100 par dĂ©faut) : quand un passage produirait davantage de demandes, il n'en crĂ©e aucune. Il est BloquĂ© (plafond) et les responsables du service sont alertĂ©s. Le plafond protĂšge contre une source qui s'emballe. Exception : une boĂźte mail ou une Ă©chĂ©ance est une file qui s'Ă©coule — le passage crĂ©e les demandes jusqu'au plafond et laisse le reste au passage suivant.

Enregistrer valide ces deux réglages.

Ajouter un déclencheur

Choisissez le type dans Ajouter un déclencheur, puis Ajouter. La page qui s'ouvre demande :

  • un Nom ;
  • Actif : un nouveau dĂ©clencheur est inactif par dĂ©faut. RĂ©glez-le, testez-le avec Aperçu, puis activez-le ;
  • le Demandeur des demandes créées : Compte SystĂšme, un Utilisateur dĂ©signĂ©, ou DĂ©signĂ© par la source (par exemple l'expĂ©diteur d'un mail ; Ă  dĂ©faut, le compte SystĂšme) ;
  • les RĂ©glages du type, propres Ă  chaque type de dĂ©clencheur.

La liste des déclencheurs

Pour chaque déclencheur, la liste indique son nom, son type, son état (Actif, Inactif, Passage en cours) et son Dernier passage. Les actions :

  • Modifier ;
  • Activer ou DĂ©sactiver ;
  • Lancer maintenant : lance un passage tout de suite (dĂ©clencheur actif), puis ouvre son journal ;
  • Aperçu (pour les types qui le proposent) : montre ce qu'un passage recevrait, sans rien crĂ©er, et prĂ©vient si le plafond serait dĂ©passĂ© ;
  • Journal ;
  • Supprimer : le dĂ©clencheur et son journal disparaissent dĂ©finitivement.

Un type marqué Type indisponible vient d'un module désactivé : le déclencheur reste enregistré mais ne fait plus rien.

Minuterie

Le type Minuterie crée une demande à chaque échéance d'une Planification (cron) à six champs : seconde, minute, heure, jour, mois, jour de la semaine. Par exemple 0 0 8 * * MON : chaque lundi à 8 h. L'heure est celle du fuseau de l'instance, affiché sous le champ.

Chaque demande reçoit trigger_date (2026-10-12), trigger_time (08:00) et trigger_datetime (2026-10-12T08:00:00+02:00) : un champ du formulaire portant ce nom est rempli, sinon la valeur devient une variable de la demande. DĂ©sactiver ou supprimer le dĂ©clencheur dĂ©sactive ou supprime sa tĂąche dans le planificateur. Une Ă©chĂ©ance passĂ©e pendant un arrĂȘt de l'application n'est pas rattrapĂ©e.

Quand un passage de la minuterie ne réussit pas, l'historique de sa tùche dans le Planificateur l'explique dans votre langue : éléments refusés (nombre affiché, la tùche est alors réussie en partie), échec du passage, plafond du service dépassé (nombre d'éléments affiché, aucune demande créée), déclencheur supprimé (supprimez la tùche). Le détail de chaque élément est dans Le journal du déclencheur.

RequĂȘte planifiĂ©e

Le type RequĂȘte planifiĂ©e exĂ©cute une requĂȘte du module RequĂȘtes selon une Planification (cron) et crĂ©e une demande par ligne du rĂ©sultat. Choisissez la requĂȘte parmi celles que vous pouvez exĂ©cuter, puis donnez une valeur fixe Ă  chacun de ses paramĂštres (@nom). Le passage s'exĂ©cute au nom du compte SystĂšme.

Chaque colonne renseigne le champ du formulaire de mĂȘme nom ; sinon elle devient une variable de la demande. Une colonne article.<code> sĂ©lectionne un article. Les valeurs arrivent dans un format neutre : dates 2026-11-01, horodatages ISO 8601, nombres Ă  point dĂ©cimal (1250.50), boolĂ©ens true/false. Aucune ligne : rien n'est créé. Plus de lignes que le plafond : le passage est bloquĂ© et les responsables sont alertĂ©s.

La requĂȘte doit Ă©carter les lignes dĂ©jĂ  traitĂ©es, sinon chaque passage recrĂ©e les mĂȘmes demandes. Les valeurs des formulaires soumis sont lisibles dans la vue dynamicforms.v_submitted_field_values ; par exemple, avec un paramĂštre @service fixĂ© Ă  l'identifiant du service :

SELECT c.code AS contrat, c.ends AS echeance
FROM contracts c
WHERE c.ends < current_date + 30
  AND NOT EXISTS (
      SELECT 1 FROM dynamicforms.v_submitted_field_values v
      WHERE v.catalog_service_id = @service::uuid
        AND v.field_slug = 'contrat'
        AND v.value = c.code)

Avant d'activer le dĂ©clencheur, ouvrez l'Aperçu : il exĂ©cute la requĂȘte et montre, sans rien crĂ©er, les lignes qui seraient traitĂ©es, ce que devient chaque colonne (champ, article ou variable) et si la demande serait acceptĂ©e.

Fichier CSV

Le type Fichier CSV crée une demande par ligne d'un fichier que vous déposez. Dans la liste des déclencheurs, cliquez sur Déposer un fichier, choisissez le fichier, puis Aperçu : vous voyez les lignes lues, ce que devient chaque colonne (champ, article ou variable) et si chaque demande serait acceptée. Rien n'est créé avant Créer les demandes.

La premiĂšre ligne porte les noms des colonnes. SĂ©parateur ; ou ,, encodage UTF-8 (avec ou sans BOM), 5 Mo au plus ; un champ entre guillemets peut contenir le sĂ©parateur ou un retour Ă  la ligne. Chaque colonne renseigne le champ du formulaire de mĂȘme nom, sinon une variable ; article.<code> sĂ©lectionne un article. Plus de lignes que le plafond : rien n'est créé et les responsables sont alertĂ©s.

contrat;echeance;article.badge
C-1001;2026-11-01;1
C-1002;2026-11-15;0

Un fichier aperçu mais jamais transformĂ© en demandes est oubliĂ© au bout d'un jour. Par l'API : POST 
/triggers/{id}/csv/preview puis POST 
/triggers/{id}/csv, fichier dans le champ file.

BoĂźte mail

Le type Boßte mail crée une demande par mail reçu dans une boßte relevée par le module Boßtes mail. Choisissez la boßte dans la liste ; Voir la configuration ouvre sa fiche, Déclarer une boßte en ajoute une. Dans sa configuration, la boßte doit avoir le gestionnaire servicecatalog, et une boßte ne peut alimenter qu'un seul déclencheur.

Chaque mail renseigne les champs from, from_name, to, cc, subject, body, body_html, received_at et message_id (sinon des variables) ; ses piÚces jointes vont dans le champ piÚce jointe du formulaire, les images insérées dans le texte sont ignorées. Choisissez le demandeur Désigné par la source : l'expéditeur devient le demandeur s'il est un utilisateur connu et actif, sinon c'est le compte SystÚme. Le plafond s'applique à chaque relÚve de la boßte : au-delà, les mails les plus anciens sont traités d'abord, les autres à la relÚve suivante.

Une rĂ©ponse Ă  un mail dĂ©jĂ  traitĂ©, ou un mail dont le sujet contient le numĂ©ro d'une demande entre crochets (par exemple [WF-000123]), ne crĂ©e pas de demande : il est ajoutĂ© en commentaire Ă  cette demande, avec ses piĂšces jointes, mĂȘme si elle est close. Seules les demandes créées par ce dĂ©clencheur sont concernĂ©es : le numĂ©ro d'une autre demande est ignorĂ©, et le mail crĂ©e une nouvelle demande.

Attention : l'adresse d'un expéditeur se falsifie facilement. Limitez la boßte aux domaines de confiance avec les filtres d'inclusion du module Boßtes mail. La relÚve (tùche MailInboxPolling) est désactivée à l'installation : activez-la dans le Planificateur.

ÉvĂ©nement

Le type ÉvĂ©nement crĂ©e une demande quand un Ă©vĂ©nement du produit se produit : un ticket créé ou passĂ© dans un statut, une demande close, un objet de la CMDB modifié  Choisissez l'Ă©vĂ©nement dans la liste ; les valeurs qu'il transporte sont affichĂ©es en dessous. Chaque valeur renseigne le champ de mĂȘme nom, sinon une variable ; les valeurs imbriquĂ©es ont des noms Ă  points (par exemple values.cpu).

La condition, facultative, limite les Ă©vĂ©nements retenus : une rĂšgle par ligne, de la forme chemin opĂ©rateur valeur, toutes devant ĂȘtre vraies. OpĂ©rateurs : =, !=, contient (majuscules et accents ignorĂ©s), > et < (nombres). Exemple : eventType = StatusChanged.

Un mĂȘme Ă©vĂ©nement ne crĂ©e jamais deux demandes. Le plafond du service s'applique par minute : au-delĂ , les Ă©vĂ©nements sont ignorĂ©s et notĂ©s au journal, avec une seule alerte. Une demande qui ne peut pas ĂȘtre créée est notĂ©e au journal, sans effet sur l'action d'origine.

Un dĂ©clencheur qui Ă©coute les demandes de son propre service (leur crĂ©ation, un changement de statut, leur clĂŽture) ne tourne pas sans fin : comme pour le type Demande d'un autre service, une chaĂźne s'arrĂȘte Ă  la profondeur 5 (variable chain_depth). Le refus est notĂ© au journal et une alerte part aux responsables. La fin d'un passage d'un dĂ©clencheur ÉvĂ©nement, Seuil franchi ou Demande d'un autre service n'est jamais retenue comme Ă©vĂ©nement.

Seuil franchi

Le type Seuil franchi surveille une valeur numérique transportée par un événement, par exemple la quantité d'un article en stock. Choisissez l'événement, la valeur suivie (quantity), l'opérateur (<, <=, >, >=) et le seuil. L'élément surveillé est le chemin de la valeur qui identifie l'article ou l'alerte (stockItemId) ; vide, c'est le sujet de l'événement.

Une demande est créée quand la valeur franchit le seuil pour un élément, puis plus rien tant qu'elle reste de ce cÎté : une nouvelle baisse sous le minimum ne crée pas de deuxiÚme demande. Quand la valeur repasse de l'autre cÎté, le déclencheur se réarme ; le prochain franchissement crée une nouvelle demande. Chaque élément a son propre état. Un événement sans valeur numérique est ignoré.

Demande d'un autre service

Le type Demande d'un autre service enchaĂźne deux services : quand une demande du service source atteint l'un des statuts mĂ©tier indiquĂ©s (leurs codes, sĂ©parĂ©s par des virgules), ou se clĂŽt si la case est cochĂ©e, une demande de ce service est créée. Elle reprend les valeurs de la demande source (mĂȘme nom, mĂȘme champ ; sinon variable), plus source_request_id, source_request_number, source_status et chain_depth.

Avec le demandeur DĂ©signĂ© par la source, la nouvelle demande garde le demandeur de la source s'il est toujours actif, sinon le compte SystĂšme. Une demande source ne dĂ©clenche qu'une fois pour un mĂȘme statut, mĂȘme si elle l'atteint de nouveau. Une chaĂźne (A crĂ©e B, qui crĂ©e A
) s'arrĂȘte Ă  la profondeur 5 : le refus est notĂ© au journal et une alerte part aux responsables.

ÉchĂ©ance

Le type ÉchĂ©ance crĂ©e une demande quelques jours avant, ou aprĂšs, une date : la fin d'un contrat ou la fin de garantie d'un actif. Choisissez l'Ă©chĂ©ance, le dĂ©calage en jours (-30 = trente jours avant) et l'heure de vĂ©rification (planification, comme la minuterie).

Chaque élément concerné donne une seule demande pour une échéance donnée : les vérifications suivantes n'en recréent pas. Si la date change (contrat prolongé), une nouvelle demande est créée le moment venu pour la nouvelle date. Un jour de vérification manqué est rattrapé pendant sept jours. La demande reçoit les valeurs de l'élément, plus due_date et days_before. Plus d'éléments que le plafond : les échéances les plus proches d'abord, les autres à la vérification suivante.

Créer pour une partie des lignes

Dans l'aperçu d'une requĂȘte planifiĂ©e ou d'un fichier CSV, chaque ligne a une case Ă  cocher. Cochez les lignes voulues (ou Tout cocher), puis cliquez sur CrĂ©er pour la sĂ©lection : une demande est créée pour chaque ligne cochĂ©e, telle qu'elle apparaissait dans l'aperçu. Une ligne refusĂ©e par la validation ne peut pas ĂȘtre cochĂ©e ; la raison est indiquĂ©e dans la colonne Validation. Le plafond s'applique aux lignes cochĂ©es. La sĂ©lection vaut 15 minutes et ne sert qu'une fois : au-delĂ , refaites un aperçu. Le journal indique un lancement manuel et qui l'a fait.

Webhook / API

Le type Webhook / API laisse un outil tiers (n8n, Zapier, Make, Power Automate, un outil de supervision, un script) créer une demande par appel. Choisissez le mode d'authentification et la limite d'appels par minute (60 par défaut), enregistrez, puis cliquez sur Générer un nouveau secret. Le secret n'est affiché qu'une fois : copiez-le aussitÎt. En générer un autre rend l'ancien inutilisable ; aprÚs un changement de mode, générez-en un nouveau.

  • Jeton porteur : l'outil envoie l'en-tĂȘte Authorization: Bearer <secret> Ă  l'adresse affichĂ©e.
  • URL secrĂšte : pour un outil qui ne sait pas poser d'en-tĂȘte, il appelle l'adresse suivie de /<secret>.
  • Signature HMAC : pour un outil qui signe selon Standard Webhooks (en-tĂȘtes webhook-id, webhook-timestamp, webhook-signature) ; une signature de plus de 5 minutes est refusĂ©e.

L'outil envoie du JSON ou un formulaire encodĂ© (1 Mo au plus). Chaque clĂ© renseigne le champ de mĂȘme nom, sinon une variable ; un JSON imbriquĂ© donne des noms Ă  points, par exemple ticket.priority ou items.0.name. L'Ă©cran donne des exemples curl pour chaque mode.

RĂ©ponses : 202 avec le numĂ©ro de la demande, 422 si les donnĂ©es sont refusĂ©es, 401 mauvais secret, 404 dĂ©clencheur inconnu ou dĂ©sactivĂ©, 413 contenu trop gros, 429 trop d'appels. Si l'outil renvoie le mĂȘme en-tĂȘte Idempotency-Key (ou webhook-id) dans les 24 heures, il reçoit la mĂȘme rĂ©ponse et aucune seconde demande n'est créée.

Une intégration qui a déjà un compte peut appeler l'API POST /api/v1/catalog/triggers/<identifiant>/fire avec son jeton, sans secret de déclencheur.

Le journal

Le journal liste les passages, du plus récent au plus ancien : Début, Statut, éléments Reçus, demandes Créées, éléments Refusés. Choisissez un passage pour voir ses éléments : la source de chacun, puis la demande créée ou les erreurs qui l'ont fait refuser.

Statut Signification
Réussi Chaque élément a donné sa demande (un passage sans élément est réussi)
Terminé avec refus Au moins un élément a été refusé (donnée invalide) ; les autres ont donné leur demande
Échec Erreur technique, par exemple une source injoignable
Bloqué (plafond) Trop d'éléments : aucune demande créée
IgnorĂ© (passage en cours) Un autre passage du mĂȘme dĂ©clencheur tournait dĂ©jĂ 

Les passages de plus de 90 jours sont supprimés chaque nuit par la tùche planifiée PurgeServiceTriggerRuns, que l'on peut désactiver dans le planificateur.

Alertes

Un passage bloqué par le plafond, un élément refusé ou une erreur technique envoient une seule alerte par passage aux responsables du service (les personnes et les membres des groupes désignés dans l'onglet Général), selon les préférences de notification de chacun. L'alerte renvoie au journal du passage. Une boßte mail ou une échéance qui accumule plus d'éléments que le plafond envoie une alerte de retard, au plus une fois par 24 heures : relevez le plafond ou cherchez l'origine de l'afflux.

Export et import

Un service exportĂ© emporte ses dĂ©clencheurs, sans leurs secrets (mots de passe, jetons) ni leur utilisateur dĂ©signĂ©. À l'import, ils arrivent dĂ©sactivĂ©s : l'import liste ce qu'il reste Ă  ressaisir avant de les rĂ©activer.

Voir aussi

  • « Administrer le catalogue de services » : la fiche d'un service et ses responsables.
  • « Superviser les demandes » : les demandes créées par un dĂ©clencheur montrent ses donnĂ©es sur leur fiche.
Applies from version 1.0 Verified for version 1.0

Was this article helpful?

Still need help? Create a request