Vue d'ensemble des automatisations
Les automatisations constituent le moteur de workflows de Sovrium. Chaque automatisation associe un déclencheur (l'événement qui la démarre) à une liste ordonnée d'actions (les étapes qu'elle exécute). Lorsque le déclencheur se déclenche, les actions s'exécutent séquentiellement — en transmettant les données vers l'avant via des variables de gabarit — jusqu'à ce que le workflow se termine, s'arrête ou échoue.
Les automatisations sont déclarées dans le tableau de premier niveau app.automations[]. Les déclencheurs réagissent aux changements d'enregistrements, aux planifications, aux webhooks entrants, aux événements d'authentification, aux soumissions de formulaires, aux boutons manuels, aux appels de sous-workflows, aux échecs d'autres automatisations et aux commentaires. Les actions couvrent plus de 20 familles : HTTP, CRUD d'enregistrements, e-mail, IA, opérations sur fichiers, contrôle de flux, approbations, et plus encore.
automations:
- name: new-order-alert
label: Notify the team about new orders
trigger:
type: record
table: orders
events: [create]
actions:
- name: notifyTeam
type: email
operator: send
props:
to: '{{trigger.data.owner_email}}'
subject: 'New order {{trigger.data.id}}'
body: 'Amount: ${{trigger.data.amount}}'
timeout: 60000
Anatomie
Une automatisation possède exactement un trigger et au moins une entrée dans actions. Tout le reste — timeout, retry, concurrence, tags, permissions, exposition à l'IA — est optionnel.
| Propriété | Description |
|---|---|
name |
Identifiant unique en kebab-case (^[a-z][a-z0-9-]*$, max 100 caractères). Utilisé dans les URL de webhook et comme cible de automation/call. |
label |
Libellé lisible affiché dans l'interface d'administration. |
description |
Description en texte libre de ce que fait l'automatisation. |
enabled |
Booléen. Lorsqu'il vaut false, l'automatisation est enregistrée mais ne se déclenche jamais. Vaut true par défaut. |
trigger |
L'événement unique qui démarre ce workflow. Voir Déclencheurs. |
actions |
Tableau ordonné d'étapes d'action (minimum 1). Les étapes s'exécutent séquentiellement sauf si une action path/loop crée une branche. Voir Vue d'ensemble des actions. |
retry |
Politique de relance au niveau de l'automatisation appliquée à l'ensemble de l'exécution. Voir Relance et échec. |
timeout |
Timeout total de l'exécution en millisecondes (1000–900000, par défaut 300000). |
concurrency |
{ limit } — nombre maximal d'exécutions simultanées de cette automatisation (1–50). Voir la note sur la concurrence ci-dessous. |
tags |
Tableau de chaînes de caractères pour organiser et filtrer les automatisations. |
permissions |
{ trigger } — qui peut invoquer manuellement cette automatisation (all, authenticated, ou un tableau de rôles). |
aiAccess |
Déclare une automatisation à déclenchement manuel comme invocable via le serveur MCP de Sovrium. La définir sur un déclencheur non manuel est une erreur de décodage. |
Les données circulent entre les étapes via des variables de gabarit. Référencez la charge utile du déclencheur avec {{trigger.data.fieldName}}, la sortie d'une étape précédente avec {{stepName.result}}, un secret d'environnement avec $env.VAR_NAME (jamais journalisé), et une information d'identification stockée avec $connection.NAME. Voir Helpers de gabarit ci-dessous.
Variables de gabarit
Chaque propriété de chaîne de caractères dans une action peut interpoler des valeurs à l'exécution. Les sources de résolution sont :
| Source | Syntaxe | Notes |
|---|---|---|
| Charge utile du déclencheur | {{trigger.data.field}} |
Les données transportées par le déclencheur (ligne d'enregistrement, corps de webhook, valeurs de formulaire, …). |
| Étape précédente | {{stepName.result}} |
La sortie de toute action antérieure, référencée par son name. |
| Variable d'environnement | $env.VAR_NAME |
Résolue depuis app.env. Masquée dans les journaux. Voir Variables d'environnement. |
| Connexion | $connection.NAME |
Informations d'identification résolues pour un service externe. Voir Connexions. |
| Fonctions helper | {{helperName arg "lit"}} |
Plus de 100 helpers de formatage (texte, nombre, date, logique, collection, encodage). Imbriquez avec des parenthèses : {{uppercase (trim step.text)}}. |
Concurrence
Chaque automatisation possède un sémaphore FIFO indépendant. Lorsque concurrency.limit est défini, les déclencheurs entrants au-delà de la limite sont persistés en queued et promus en running à mesure que des créneaux en cours d'exécution se libèrent. Sans ce bloc, la variable d'environnement globale AUTOMATION_CONCURRENCY_DEFAULT (par défaut 5) s'applique. La mise en file d'attente est en mémoire et mono-processus — conçue pour le modèle de déploiement mono-locataire de Sovrium.
Surface de configuration
Les automatisations côtoient trois blocs frères de premier niveau qu'elles référencent régulièrement :
| Bloc | Objectif | Page |
|---|---|---|
app.automations |
Les workflows eux-mêmes. | cette page |
app.actions |
Modèles d'action réutilisables référencés via l'action ref. |
Vue d'ensemble des actions |
app.connections |
Informations d'identification stockées pour les appels HTTP/IA authentifiés. | Connexions |
app.env |
Variables d'environnement / secrets déclarés. | Variables d'environnement |
Pages connexes
- Déclencheurs — les 9 types de déclencheurs.
- Vue d'ensemble des actions — le modèle d'action et les ~22 familles.
- Exécutions — surveillance de l'historique d'exécution et des statuts.
- Relance et échec — politiques de relance, timeouts, idempotence.
- Connexions — informations d'identification OAuth2, clé API, basic, bearer.
- Variables d'environnement — secrets pour les automatisations.