Workflow
Exécutez d'autres workflows comme composants réutilisables au sein de votre workflow actuel
Le bloc Workflow vous permet d'exécuter d'autres workflows comme composants réutilisables au sein de votre workflow actuel. Cette fonctionnalité puissante favorise la conception modulaire, la réutilisation du code et la création de workflows imbriqués complexes composés de workflows plus petits et ciblés.

Les blocs Workflow favorisent la conception modulaire en vous permettant de composer des workflows complexes à partir de composants plus petits et réutilisables.
Vue d'ensemble
Le bloc Workflow sert de pont entre les workflows, vous permettant de :
Réutiliser des workflows existants : exécuter des workflows déjà créés comme composants au sein de nouveaux workflows
Créer des conceptions modulaires : décomposer des processus complexes en workflows plus petits et gérables
Maintenir la séparation des responsabilités : isoler les différentes logiques métier dans des workflows distincts
Faciliter la collaboration en équipe : partager et réutiliser des workflows entre différents projets et membres d'équipe
Fonctionnement
Le bloc Workflow :
- Prend une référence vers un autre workflow de votre espace de travail
- Transmet les données d'entrée du workflow actuel au workflow enfant
- Exécute le workflow enfant dans un contexte isolé
- Renvoie les résultats au workflow parent pour un traitement ultérieur
Options de configuration
Sélection du workflow
Choisissez le workflow à exécuter depuis une liste déroulante des workflows disponibles dans votre espace de travail. La liste inclut :
- Tous les workflows auxquels vous avez accès dans l'espace de travail actuel
- Les workflows partagés avec vous par d'autres membres de l'équipe
- Les workflows activés et désactivés (seuls les workflows activés peuvent être exécutés)
Données d'entrée
Définissez les données à transmettre au workflow enfant :
- Entrée à variable unique : sélectionnez une variable ou une sortie de bloc à passer au workflow enfant
- Références de variables : utilisez
<variable.name>pour référencer les variables du workflow - Références de blocs : utilisez
<blockName.field>pour référencer les sorties des blocs précédents - Correspondance automatique : les données sélectionnées sont automatiquement disponibles sous
start.inputdans le workflow enfant - Optionnel : le champ d'entrée est facultatif — les workflows enfants peuvent s'exécuter sans données d'entrée
- Préservation des types : les types de variables (chaînes, nombres, objets, etc.) sont préservés lors de leur transmission au workflow enfant
Accéder aux résultats
Après l'exécution d'un workflow, vous pouvez accéder à ses sorties :
<workflow.response>: la sortie complète du workflow enfant<workflow.name>: le nom du workflow enfant exécuté<workflow.success>: booléen indiquant la réussite de l'exécution<workflow.error>: détails de l'erreur si le workflow a échoué<workflow.execution_time>: temps d'exécution du workflow
Contexte d'exécution
Le workflow enfant s'exécute avec :
- Son propre contexte d'exécution isolé
- Accès aux mêmes ressources de l'espace de travail (clés API, variables d'environnement)
- Vérifications appropriées de l'appartenance à l'espace de travail et des permissions
- Journalisation et monitoring indépendants
Sécurité et limitations
Pour prévenir la récursion infinie et garantir la stabilité du système, le bloc Workflow inclut plusieurs mécanismes de sécurité :
Détection des cycles : le système détecte et prévient automatiquement les dépendances circulaires entre workflows afin d'éviter les boucles infinies.
- Limite de profondeur maximale : les workflows imbriqués sont limités à une profondeur maximale de 10 niveaux
- Détection des cycles : détection et prévention automatiques des dépendances circulaires entre workflows
- Protection contre les délais d'expiration : les workflows enfants héritent des paramètres de délai d'expiration pour éviter une exécution indéfinie
- Limites de ressources : des limites de mémoire et de temps d'exécution s'appliquent pour prévenir l'épuisement des ressources
Fonctionnalités avancées
Sélection dynamique de workflow
Sélectionnez des workflows dynamiquement en fonction des conditions d'exécution :
// In a Function block before the Workflow block
const workflowId = <condition.result> ? 'premium-workflow' : 'standard-workflow';
return { selectedWorkflow: workflowId };Gestion des erreurs et mécanismes de repli
Implémentez une gestion robuste des erreurs pour les workflows enfants :
// In a Function block after the Workflow block
if (!<workflow.success>) {
console.error('Child workflow failed:', <workflow.error>);
// Implement fallback logic
return { fallback: true, error: <workflow.error> };
}
return <workflow.response>;Chaînage de workflows
Chaînez plusieurs workflows ensemble :
// Pass output from one workflow to another
Workflow 1 Input: <start.input>
Workflow 2 Input: <workflow1.response>
Workflow 3 Input: <workflow2.response>Entrées et sorties
Sélection du workflow : choisissez quel workflow exécuter
Données d'entrée : référence de variable ou de bloc à passer au workflow enfant
Contexte d'exécution : environnement isolé avec les ressources de l'espace de travail
workflow.response : sortie complète du workflow enfant
workflow.name : nom du workflow enfant exécuté
workflow.success : booléen indiquant le statut d'achèvement
workflow.error : détails de l'erreur si le workflow a échoué
workflow.execution_time : temps d'exécution
Réponse du workflow : sortie principale du workflow enfant
Statut d'exécution : statut de réussite et informations sur les erreurs
Accès : disponible dans les blocs situés après le workflow
Exemples d'utilisation
Onboarding client modulaire
Scénario : décomposer un onboarding complexe en composants réutilisables
- Le workflow principal reçoit les données client
- Le bloc Workflow exécute le workflow de validation
- Le bloc Workflow exécute le workflow de création de compte
- Le bloc Workflow exécute le workflow d'e-mail de bienvenue
Architecture microservices
Scénario : créer des workflows de service indépendants
- Le workflow de traitement des paiements gère les transactions
- Le workflow de gestion des stocks met à jour les niveaux
- Le workflow de notification envoie les confirmations
- Le workflow principal orchestre tous les services
Traitement conditionnel
Scénario : exécuter différents workflows selon les conditions
- Le bloc Condition évalue le type d'utilisateur
- Utilisateurs entreprise → Workflow d'approbation complexe
- Utilisateurs standard → Workflow d'approbation simple
- Utilisateurs gratuits → Workflow de traitement de base
Exemple : Workflow de validation client
// Main workflow passes customer data to validation workflow
const customerData = <start.input>;
// Validation workflow processes the data
const emailValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(customerData.email);
const phoneValid = /^\+?[1-9]\d{1,14}$/.test(customerData.phone);
return {
customer: customerData,
validation: {
email: emailValid,
phone: phoneValid,
overall: emailValid && phoneValid
}
};Bonnes pratiques
- Gardez les workflows ciblés : concevez les workflows enfants pour gérer des tâches spécifiques et bien définies avec des entrées et sorties claires
- Minimisez la profondeur d'imbrication : évitez les hiérarchies de workflows profondément imbriquées pour une meilleure maintenabilité et de meilleures performances
- Gérez les erreurs avec élégance : implémentez une gestion appropriée des erreurs pour les échecs des workflows enfants et prévoyez des mécanismes de repli
- Documentez les dépendances : documentez clairement quels workflows dépendent d'autres et maintenez des cartes de dépendances
- Testez de manière indépendante : assurez-vous que les workflows enfants peuvent être testés et validés indépendamment des workflows parents
- Surveillez les performances : sachez que les workflows imbriqués peuvent avoir un impact sur le temps d'exécution total et l'utilisation des ressources
- Utilisez des noms sémantiques : donnez aux workflows des noms descriptifs qui indiquent clairement leur objet et leur fonctionnalité
