Les branches permettent à un workflow de suivre différents chemins selon des conditions que vous définissez, ou d'exécuter plusieurs actions en même temps, au lieu de toujours s'exécuter en ligne droite. Trois types de branches sont disponibles (if, switch et parallèle), et chacun peut être ajouté à l'intérieur d'un autre.
Cliquez sur l'icône + à l'endroit où vous voulez que le workflow se divise
Choisissez un type de branche dans le menu : Ajouter une condition (Add condition, if), Ajouter un switch (Add switch) ou Diviser en parallèle (Split in parallel)

Option 1 : Ajouter une condition (if)
Suit l'un de deux chemins, vrai ou faux, selon une condition.
Définissez l'Opérateur (Operator), qui détermine comment la condition est évaluée :
All of (AND)
Any of (OR)
Not
Contains
Equals
Not equals
Greater than
Greater than or equal
Less than
Less than or equal
Is one of
All of (AND), Any of (OR) et Not sont récursifs : ils permettent d'imbriquer et de combiner plusieurs conditions, plutôt que de comparer une seule paire de valeurs. Par exemple, "All of (AND)" peut regrouper plusieurs vérifications Equals ou Contains, qui doivent toutes être vraies pour que la branche continue.
Renseignez les champs Valeur (Value) et Comparé à (Compared to), tous deux obligatoires. Tapez {{ dans l'un ou l'autre pour insérer une variable d'une étape précédente (par ex. step1.hrEmploymentStatus), ou pour utiliser une fonction intégrée comme concat(), coalesce(), date_add() ou now().

Les étapes ajoutées sous true ne s'exécutent que si la condition est remplie, celles sous false s'exécutent dans le cas contraire. Les deux chemins se rejoignent une fois terminés.
Option 2 : Ajouter un switch
Compare une seule valeur à plusieurs cas possibles.
Définissez la Valeur à comparer (Value to compare), un chemin de variable comme user.team
Ajoutez un ou plusieurs cas (cases), chacun avec un nom et une valeur à faire correspondre. Par ex. is_engineering pour "Engineering", is_sale pour "Sales"

Corma suit le premier cas dont la valeur correspond, ou le cas default si aucun ne correspond. Dans cet exemple, le compte d'un utilisateur de l'équipe Engineering est créé sur GitHub, celui d'un utilisateur Sales sur HubSpot
Option 3 : Diviser en parallèle
Exécute deux branches ou plus en même temps, au lieu de choisir entre elles.
Par défaut, les branches s'appellent branch_1, branch_2, etc. Contrairement aux branches if ou switch, nommées selon leur résultat, ces noms peuvent être remplacés par des noms plus parlants
Cliquez directement sur le libellé d'une branche pour la renommer. Les noms ne peuvent contenir que des lettres, chiffres et tirets bas : pas d'espaces, de traits d'union ni de symboles. Un nom invalide est rejeté sans message d'erreur et l'ancien nom est rétabli, vérifiez donc que le changement a bien été pris en compte.

Toutes les branches s'exécutent simultanément, et non l'une après l'autre
Vous pouvez ajouter autant de branches que nécessaire, il n'y a pas de limite fixe
Une division en parallèle peut aussi être imbriquée dans l'une de ses propres branches, lorsqu'un chemin doit se diviser à nouveau pendant que les autres continuent de leur côté

Tous les types de branches se rejoignent en un seul chemin une fois terminés, et chacun peut être imbriqué dans un autre pour une logique plus avancée.
Portée des variables
Une étape peut utiliser les variables de n'importe quelle étape qui la précède, y compris des étapes situées hors de sa branche, avant la division. Une étape ne peut pas référencer une variable d'une autre branche parallèle, car celle-ci peut s'exécuter en même temps ou ne pas être évaluée du tout.
Consultez [Comment utiliser des variables dans les workflows] pour le guide complet sur le référencement des sorties d'étapes.
Suivre les exécutions avec branches
Le graphe d'exécution en direct reprend exactement la structure construite dans l'éditeur, y compris le chemin réellement suivi. Chaque étape affiche un indicateur de statut :
Coche verte : terminée
Croix rouge : échouée
Icône Ignorer : l'étape s'est exécutée, a échoué, puis a été ignorée manuellement pour que l'exécution puisse continuer
Grisée : la branche n'a pas du tout été activée lors de cette exécution (sa condition n'était pas remplie, ou un autre cas ou une autre branche a été suivi)

Si une exécution comporte des étapes échouées, un bouton Relancer (Retry) apparaît en haut de l'exécution et relance uniquement les étapes échouées.
Tout combiner
Vous n'êtes pas limité à un seul type de branche à la fois. Un même workflow peut combiner des conditions if, des switch et des divisions en parallèle, imbriqués les uns dans les autres, pour gérer une logique plus complexe.
Voici un exemple concret :
Récupérer les données de l'utilisateur (Get user data) s'exécute en premier et récupère les champs sur lesquels le reste du workflow va se diviser.
Une condition if vérifie deux conditions (any) et oriente vers true ou false.
Sur le chemin true, un switch vérifie step2.isArchived et oriente vers case_1 ou default. Les deux cas se rejoignent ensuite.
Une fois réunis, un second switch vérifie step2.team et oriente vers case_1, case_2 ou default.
Une fois ce switch résolu, le workflow se divise en parallèle en branch_1 et branch_2, qui exécutent des actions différentes : ici, une branche attend pendant que l'autre modifie le statut de l'utilisateur dans l'IdP.

Chaque niveau se rejoint en un seul chemin avant le début de la branche suivante, ce qui permet au workflow de rester lisible même avec plusieurs types de branches superposés.
Conseils : commencez par un workflow simple (un déclencheur, une branche) et ajoutez de la complexité une fois que cela fonctionne. Vérifiez toujours les Exécutions précédentes après votre première exécution.