Skip to main content
View as Markdown

Actions d'approbation et de délai

Ces deux familles mettent en pause un workflow en cours d'exécution. La famille approval attend une décision humaine (human-in-the-loop). La famille delay attend une durée, une date-heure, un rappel de webhook externe, ou cadence une file d'éléments.

Approval — Human-in-the-loop

Un operator, request. Il suspend l'exécution, notifie les approbateurs, et reprend une fois qu'une décision est enregistrée (ou que le timeout se déclenche). Nécessite que app.auth soit configuré.

Prop Description
approvers all-admins, ou un tableau d'adresses e-mail / noms de rôles. Requis.
message Message affiché aux approbateurs (templatable). Requis.
options Choix d'approbation, minimum 2 ({ value, label? }). Par défaut [{ value: approve }, { value: reject }]. La value choisie devient la sortie de l'étape.
timeout Durée d'attente (par ex. 24h, 7d). Aucun timeout par défaut.
onTimeout En cas de timeout : approve (approbation automatique), reject (rejet automatique), ou escalate (notifier l'escalade).
notifyVia Canal de notification : email (par défaut), webhook, ou both.
- name: approveRefund
  type: approval
  operator: request
  props:
    approvers: all-admins
    message: 'Approve refund of ${{trigger.data.amount}} for order {{trigger.data.id}}?'
    options:
      - { value: approve, label: 'Approve refund' }
      - { value: reject, label: 'Deny' }
    timeout: 48h
    onTimeout: reject
    notifyVia: email

Delay — Wait, Queue, Webhook

Trois operators qui mettent l'exécution en pause de différentes manières.

wait

Met en pause pendant une durée fixe ou jusqu'à une date-heure précise.

Prop Description
duration Délai sous forme de nombre + unité (ms/s/m/h/d), par ex. 30s, 24h, 7d.
until Date-heure ISO 8601 (ou gabarit) jusqu'à laquelle attendre, par ex. 2025-12-01T09:00:00Z.
- name: cooldown
  type: delay
  operator: wait
  props: { duration: 15m }

queue

Traite les éléments en file un par un avec un espacement configurable — idéal pour les API en aval à débit limité.

Prop Description
interval Délai minimal entre le traitement de chaque élément — nombre + unité (ms/s/m/h), par ex. 500ms, 2s. Requis.
maxQueueSize Nombre maximal d'éléments dans la file avant que les nouvelles entrées soient rejetées (par défaut illimité).
- name: paceApiCalls
  type: delay
  operator: queue
  props: { interval: 1s, maxQueueSize: 1000 }

webhook

Met en pause jusqu'à ce qu'un rappel de webhook externe soit reçu (par ex. la fin d'une tâche tierce asynchrone).

Prop Description
callbackId Identifiant de rappel personnalisé (templatable). Généré automatiquement s'il est omis.
timeout Temps maximal d'attente du rappel — nombre + unité, par ex. 1h, 7d.
onTimeout En cas de timeout : continue, stop, ou error (par défaut error).
expectedData Forme attendue utilisée pour valider la charge utile du rappel entrant.
- name: awaitProcessing
  type: delay
  operator: webhook
  props:
    callbackId: 'job-{{trigger.data.id}}'
    timeout: 2h
    onTimeout: error

Pages connexes