A la découverte de Flow Orchestrator
Bonjour à tous ! Nous sommes heureux de vous retrouver pour un nouvel article. Aujourd’hui, nous allons mettre l’accent sur une fonctionnalité de la Spring ’22 que nous vous avons teasé lors de notre premier article : Flow Orchestrator. Pour rappel, la Spring ’22 a été déployé automatiquement sur vos plateformes entre le 14 janvier et le 11 février.
Salesforce explique que Flow Orchestrator est un outil permettant aux administrateurs de construire des processus métier complexes impliquant plusieurs utilisateurs sur plusieurs étapes en utilisant plusieurs flows. Mais qu’est-ce que cela signifie exactement ? C’est la question à laquelle nous allons essayer de répondre dans cet article !
Présentation de Flow Orchestrator
L’un des cas d’utilisation souvent utilisé par Salesforce est de mettre en parallèle Flow Orchestrator et les Approval Processes. Dans un Approval Process, il est possible de configurer plusieurs étapes d’approbation (approval steps) qui peuvent s’exécuter les unes à la suite des autres ou en même temps et d’assigner chaque étape à des utilisateurs différents (assigned approver). L’approbateur qui est l’utilisateur désigné (par exemple un manager) envoie ensuite une réponse qui peut déclencher des actions conditionnelles en fonction de la réponse. Les potentielles actions qu’il est possible de mettre en place sont les mêmes que celles disponibles pour les Workflows, on peut donc présenter un Approval Process comme un processus impliquant plusieurs utilisateurs (via assigned approver) sur plusieurs étapes en utilisant plusieurs workflows. Cette définition ne vous rappelle pas quelque chose ?
Si vous avez répondu des crêpes, c’est certainement parce que vous avez un petit creux en cette période de chandeleur mais ce n’est pas la réponse que j’attendais ! En effet, ceux qui auront suivi auront remarqué que la définition ressemble à la définition donnée par Salesforce pour décrire Flow Orchestrator à une petite différence près… Les flows viennent remplacer les workflows.
Flow Orchestrator partage donc des similitudes avec un Approval Process car on y retrouve des étapes assignées à des utilisateurs qui peuvent s’exécuter soit les unes à la suite des autres soit en parallèle. Arrêtons maintenant le jeu des comparaisons et consacrons-nous à la plus-value apportée par notre nouvel outil. Dans Flow Orchestrator, chaque étape principale est définie par un Stage contenant lui-même potentiellement plusieurs étapes définies par des Steps. Une Step a pour caractéristique d’avoir un flow déjà existant dans votre organisation qui lui est assigné.
Et c’est ici que tout change : là où un Approval Process est une agrégation de workflows, Flow Orchestrator est une agrégation de flows où les flows peuvent être des Screen Flows (Interactive Steps) ou des Autolaunched Flows (Background Steps) permettant de passer outre la limite des approbations et de l’utiliser dans toutes sortes de situation.
Voici un exemple de Stage composé de 3 Steps :
Il est possible de demander à l’utilisateur assigné de remplir différents champs dans le composant Work Guide grâce à une Interactive Step comme le montre l’image ci-dessous. Le contenu du composant varie en fonction des utilisateurs et des étapes. Il est aussi possible d’exécuter une logique métier complexe en arrière-plan en utilisant une Background Step.
Structure de Flow Orchestrator
- Les Flows : Flow Orchestrator utilise les flows qui existent dans votre organisation et il est possible d’utiliser les Screen Flows et les Autolaunched Flows. Un flow est ajouté à une Step
- Les Steps : Elles doivent contenir un flow préalablement construit via Flow Builder et doivent être configurées en remplissant différents champs (Entry conditions, Flow, Record page, Assigned user et Exit conditions). Les Steps sont regroupées par Stage et peuvent s’exécuter à la suite ou en parallèle. Vous trouverez à droite un schéma représentant le cycle de travail d’une Step. Il est possible d’assigner une Step à un User mais aussi à une Queue ou à un Group
Image tirée du Flow Orchestrator Closed Pilot Guide v1 consultable ici
- Les Stages : Ils regroupent des Steps liées entre elles en les organisant de manière logique, ils s’exécutent les uns après les autres et ne peuvent pas s’exécuter en même temps (contrairement aux Steps). Pour configurer un Stage, il faut renseigner les conditions à remplir mettant fin à son exécution, dans la plupart des cas, le Stage est considéré comme terminé lorsque toutes les Steps le constituant le sont aussi.
Utilisation de Flow Orchestrator
Passons maintenant à la pratique et voyons ensemble comment créer votre premier Flow Orchestrator !
1. Prérequis
Tout d’abord, il faut se rendre dans Organization-Wide-Adresses depuis le Setup pour ajouter les adresses email des utilisateurs qui sont concernés par les étapes de votre flow. Grâce à cela, ils recevront des notifications par email leur signalant qu’un élément d’action (ou action item) vient de leur être attribué et que c’est à leur tour d’agir.
N’oubliez pas que vos utilisateurs doivent aussi avoir la permission d’exécuter des flows car ils vont interagir avec ces derniers, notamment lors des Interactive Steps où ils pourront potentiellement remplir des champs. Cliquez ici pour consulter la documentation expliquant la procédure.
2. Créer un Flow Orchestrator
Depuis Setup, rendez-vous maintenant dans Flows et cliquez sur le bouton New Flow exactement comme lorsque vous souhaitez créer un flow traditionnel. Dans la fenêtre qui apparait, cliquez sur All + templates puis sur Flow Orchestrator (Beta) et enfin choisissez le type de flow qui vous intéresse entre Autolaunched Orchestration et Record-Triggered Orchestration. Autolaunched permet de lancer l’orchestration en utilisant une classe Apex personnalisée, un bouton personnalisé, une API REST et plus encore. Record-triggered s’exécute à la création ou à la mise à jour d’un enregistrement mais uniquement après que l’enregistrement soit sauvegardé, c’est donc un after-trigger.
3. L’espace de travail Flow Orchestrator
L’image ci-dessous vous offre un aperçu de ce à quoi ressemble Flow Orchestrator :

En bon créateur de flows, vous ne serez pas trop dépaysés par l’interface de Flow Orchestrator. Tout à gauche, nous retrouvons la Toolbox (1) qui vous permet d’avoir un aperçu de votre flow et de ses éléments constitutifs (resources, steps, stages,…). Si vous avez choisi un Record-Triggered Orchestration, vous pouvez cliquer sur le bouton Start pour sélectionner un objet et configurer le type de trigger. Le bouton Add element (2) vous permet de créer un Stage ou un embranchement (avec le bouton Decision). Une fois que vous avez créé votre Stage en lui donnant un nom et en renseignant les conditions à remplir pour mettre fin à son exécution, une fenêtre lui correspondant apparait (3). Ici, vous pouvez cliquer sur Add step pour ajouter une Step qui viendra se ranger dans le Stage (4). A droite se trouve un panneau avec un affichage conditionnel qui vous permet de voir les détails d’un élément du Flow Orchestrator (5), dans notre exemple, il permet de configurer une Step. Pour cela il faut remplir les différents champs Entry conditions, Flow (6), Record page, Assigned user et Exit conditions.
4. Ajouter le composant Flow Orchestrator Work Guide via l’App builder
Une fois votre flow terminé, activez-le puis rendez-vous à la page d’un enregistrement de l’objet concerné par votre flow. Cliquez sur Setup et Edit Page pour vous rendre dans l’App Builder et ajouter le composant Flow Orchestrator Work Guide (Beta). Votre Flow Orchestrator est maintenant prêt à être utilisé !
Cas d’utilisation
Nous vous avons concocter un petit exemple d’utilisation de Flow Orchestrator pour vous permettre de mieux comprendre ce qu’il est possible de faire avec celui-ci ! Le voici :


Comme vous pouvez le voir sur les captures d’écran ci-dessus, ce Flow Orchestrator contient 4 Stages et se déclenche lorsqu’une nouvelle opportunité est créée avec un StageName Prospecting.
Le Stage 1 Update Opportunity To Go To Qualification Stage contient 2 steps qui s’exécutent simultanément :
- La première est une Interactive Step utilisant un Screen Flow permettant à l’agent propriétaire de l’opportunité de mettre à jour les champs nécessaires puis de la soumettre à son manager pour une approbation.
- La deuxième Step est une Background Step utilisant un Autolaunched Flow et créant une tâche d’appel à l’agent propriétaire de l’opportunité car on imagine dans notre scénario que l’agent peut avoir besoin d’appeler le compte de l’opportunité pour obtenir les informations qu’il doit mettre à jour. L’agent renseigne donc les informations et clique sur Next ce qui a pour effet de faire passer le stageName de l’opportunité à Qualification et passer au Stage 2 de notre Flow Orchestrator.

Le Stage 2 Approval Manager Process contient 2 steps qui s’exécutent l’une après l’autre :
- Lors de la première Step, le manager de l’agent reçoit un email indiquant qu’un Action Item lui a été attribué et un lien lui permet de se diriger vers l’enregistrement concerné. Il peut ensuite choisir d’approuver ou de rejeter l’opportunité, celle-ci continue son chemin dans le Flow Orchestrator s’il approuve et son StageName passe à Value Proposition, s’il refuse l’opportunité revient au Stage 1.
- La seconde Step contient un Screen flow et permet d’afficher à l’agent la réponse de son manager.



Une fois le Stage 2 complété avec approbation du manager, nous passons au Stage 3 Approval Financial Service Process. Celui-ci est similaire au Stage précédent sauf qu’il implique un nouvel utilisateur : un agent du service financier. S’il choisit d’approuver, on passe au Stage 4 de notre Flow Orchestrator, s’il choisit de refuser, l’opportunité retourne au Stage 2. Les Interactive Steps et les Screen Flows utilisés sont les mêmes que pour le Stage 2 et c’est ici que réside la force et l’intérêt de Flow Orchestrator : en créant un Flow générique avec des variables disponibles à l’Input et/ou l’Output, on peut utiliser ce même Flow dans plusieurs Steps en lui faisant faire des choses différentes !


Enfin, lorsque le Stage 3 est complété avec approbation de l’agent du service financier, nous passons à notre dernier Stage : le Stage Send Email With Quote To Customer. Celui-ci se compose d’une unique Background Step se chargeant d’envoyer le devis au client. Cette Step marque la fin de notre cas d’utilisation (plutôt simple) de Flow Orchestrator où nous avons pu faire l’expérience de l’ensemble des fonctionnalités que ce nouvel outil a à nous proposer !
Conclusion
Flow Orchestrator est donc un outil permettant d’enchainer les flows tout en les structurant et en les organisant mieux. Il y a clairement un intérêt à regrouper tous les flows qui dépendent d’un même processus au sein d’un Flow Orchestrator pour avoir un espace de travail plus lisible et plus simple à débugger. Il est important de préciser que d’après la communauté Salesforce, Flow Orchestrator, s’exécutant uniquement avec des after-triggers, n’a pas pour vocation de remplacer les Subflows utilisables dans des Flows traditionnels et donc potentiellement avec des before-triggers. Néanmoins, on peut supposer qu’à moyen ou long terme, le but est de remplacer les Workflow Rules et les Approval Processes par les Flows et Flow Orchestrator car les cas d’utilisation que présentent Salesforce pour Flow Orchestrator sont souvent centrés autour des approbations même si l’on a vu qu’il est possible de faire beaucoup d’autres choses avec. Enfin si vous êtes intéressés par Flow Orchestrator et son utilisation, il est important de garder en tête que vous devrez construire vos Flows autrement et utiliser le plus souvent des variables disponibles à l’Input et/ou l’Output afin qu’ils soient réutilisables dans des contextes différents. Le but sera de faire des Flows très génériques et de paramétrer le Flow Orchestrator qui les utilise pour obtenir le résultat voulu.
Merci pour votre attention et à bientôt pour le prochain article du blog KPC dédié à la technologie Salesforce !
Les sources :
Documentation Salesforce sur Flow Orchestrator :
- https://help.salesforce.com/s/articleView?id=release-notes.rn_automate_orchestrator.htm&type=5&release=236
- https://help.salesforce.com/s/articleView?id=release-notes.rn_automate_orchestrator_assign_work_items.htm&type=5&release=236
Flow Orchestrator Closed Pilot Guide V1