Power Automate : guide pour débutant | tutoriel

Ricardo ALPHONSE
📆
maj :

Comprendre les bases

Power Automate est un service d’automatisation de tâches en ligne de Microsoft. Il permet de créer des flux (workflows) qui exécutent automatiquement des actions lorsque certains événements se produisent. Par exemple, vous pouvez envoyer un message sur Teams dès qu’un nouvel e-mail arrive dans votre boîte mail Outlook.

Un flux se compose généralement d’un déclencheur (l’événement de départ) et d’une ou plusieurs actions (ce que fait le flux ensuite).

Les connecteurs relient Power Automate à différents services (Outlook, Teams, SharePoint, etc.), permettant ainsi d’automatiser des tâches entre ces applications.

Dans cet article, l’interface de Power Automate sera en anglais.

Les modules “Control”

Les modules Control gèrent la logique de votre flux.

On y trouve les actions suivantes : Condition, Switch, Apply to each, Do until, Scope et Terminate.

Condition vs Switch

L’action Condition fonctionne comme un “si/sinon”.

Vous définissez un test qui renvoi un booléen (vrai/faux), et le flux suit l’une des deux branches selon que la condition est vraie ou fausse.

Par exemple : “Si le montant d’une facture reçues est supérieur à 1000, envoyer un mail au directeur financier ; sinon, continuer normalement.”

En revanche, Switch permet de tester une seule valeur par rapport à plusieurs cas différents.

Par exemple, on peut tester le type d’une demande (“vacances”, “matériel”, “congé maladie”, etc.) et définir plusieurs branches : chaque case déclenche un ensemble d’actions spécifique.

La structure Switch propose une branche Par défaut si aucune des valeurs ne correspond. Switch est particulièrement pratique quand il faut gérer de nombreux cas possibles pour une même variable.

Apply to each vs Do until

L’action Apply to each parcourt une liste ou un tableau d’éléments et exécute ses actions pour chacun d’entre eux.

Par exemple, vous pouvez parcourir tous les éléments d’une liste SharePoint et envoyer un e-mail pour chaque ligne de la liste.

À l’inverse, Do until effectue une boucle qui se répète tant qu’une condition reste fausse (ou jusqu’à un nombre maximal d’itérations).

Par exemple, vous pourriez vérifier toutes les 5 minutes si un serveur est disponible et arrêter la boucle dès que le serveur répond.

Apply to each est utile quand on connaît le nombre d’éléments à traiter (comme la taille d’une liste), tandis que Do until sert à répéter jusqu’à ce qu’une condition soit satisfaite ou qu’une limite soit atteinte.

Scope

L’action Scope sert à regrouper plusieurs actions sous une même unité logique, un peu comme un dossier contenant plusieurs étapes.
Cela n’ajoute pas de logique supplémentaire au flux en soi, mais cela aide à organiser et à structurer vos actions.

Par exemple, vous pouvez placer plusieurs actions dans un Scope et définir un seul “Run after” (exécution conditionnelle) sur tout le groupe.

Scope est surtout utile lorsque vous devez gérer les erreurs. Exemple, si un des modules dans le scope retourne une erreur, il est possible de mettre une action sur le scope liée à l’erreur.

Terminate

L’action Terminate arrête immédiatement l’exécution du flux.

Vous pouvez indiquer si l’arrêt doit être considéré comme un succès ou un échec, et ajouter un message facultatif.

C’est utile pour interrompre le flux dans certaines situations précises. Par exemple, si vous détectez une erreur critique (comme des données manquantes ou une condition non respectée), vous pouvez terminer le flux en échec avec un message d’erreur, ou lorsque vous utilisez le module Response de Request.

Data Operations

Module Compose

L’action Compose est comme un espace de stockage temporaire pour une donnée ou un calcul.

C’est utile pour préparer ou conserver une valeur intermédiaire sans faire appel à un connecteur externe. Par exemple, si vous avez un prénom et un nom, vous pouvez utiliser Compose avec l’expression concat(prénom, ' ', nom) pour créer un nouveau texte complet (par exemple “Jean Dupont”). Compose retournera cette chaîne en sortie, que vous pourrez réutiliser plus tard dans le flux.

De même, on peut utiliser Compose pour construire des objets complexes (tableaux ou JSON) étape par étape avant de les utiliser ailleurs. En résumé, Compose est utile pour stocker temporairement une donnée calculée et la réutiliser où nécessaire dans le flux.

Module Select

L’action Select sert à transformer un tableau d’objets (JSON).

Elle parcourt chaque élément du tableau d’origine et construit un nouveau tableau en choisissant (et éventuellement renommant) certains champs.

Par exemple, imaginez que vous avez un tableau d’utilisateurs sous forme de {"Name":"Alice","Age":30} et {"Name":"Bob","Age":25}.

Avec Select, vous pouvez créer un nouveau tableau ne contenant que le champ Name ou le renommer en français.

Par exemple, le résultat pourrait être [{"Nom":"Alice"},{"Nom":"Bob"}]. Ainsi, Select parcourt chaque élément du tableau d’origine et crée un nouveau tableau contenant uniquement les propriétés sélectionnées.

C’est particulièrement utile pour filtrer ou restructurer des données en sortie.

Les modules Request et HTTP

Request (webhook)

Le déclencheur “When a HTTP request is received” (littéralement “Lorsque une requête HTTP est reçue”) permet de lancer un flux à distance.

Power Automate vous fournit une URL unique : dès que vous envoyez une requête HTTP (généralement un POST avec un corps JSON) à cette URL, le flux démarre automatiquement et reçoit ces données en entrée.

C’est pratique pour faire communiquer d’autres applications ou services avec votre flux (on parle parfois de webhook).

Par exemple, un formulaire externe ou une autre application peut appeler cette URL pour transmettre des données au flux. Vous pouvez ensuite utiliser ces données comme entrées dans vos actions.

Cette approche est idéale pour intégrer Power Automate avec d’autres systèmes ou services qui n’ont pas de modules natifs.

HTTP

L’action HTTP permet d’appeler un service web ou une API externe depuis le flux.

Vous choisissez le verbe HTTP (GET, POST), l’URL cible, et éventuellement les en-têtes ou le corps de la requête.

Par exemple, après avoir récupéré certaines données, vous pouvez faire un GET vers une API météo pour obtenir la température actuelle, ou un POST vers une API de messagerie pour envoyer une notification. L’action renvoie la réponse du service (généralement du JSON ou du XML), que vous pouvez ensuite utiliser dans le flux.

Fonctions de base

Power Automate propose de nombreuses fonctions intégrées pour manipuler les données, similaires à Excel ou à un langage de programmation. Voici quelques catégories et exemples courants :

  • Chaînes de caractères : concat(), length(), toUpper(), substring(). Par exemple, concat('Hello', ' World') renvoie “Hello World”, et length('texte') renvoie 5.
  • Mathématiques : add(), sub(), mul(), div(). Par exemple, add(5, 3) renvoie 8 et mul(4, 2) renvoie 8.
  • Dates/Heures : utcNow(), addDays(), formatDateTime(). Par exemple, utcNow() donne la date/heure actuelle (en UTC), et addDays(utcNow(), 7) donne la date dans une semaine.
  • Logique et conditions : if(), equals(), greater(), etc. Par exemple, if(equals(Statut, 'OK'), 'Terminé', 'En attente') renvoie “Terminé” si Statut vaut “OK”, sinon “En attente”.
  • Tableaux/Collections : union(), intersection(), first(), last(), etc. Par exemple, union(createArray(1,2), createArray(2,3)) renvoie [1,2,3].

Ces fonctions s’utilisent souvent dans des actions comme Compose ou dans les propriétés dynamiques des actions. Elles sont essentielles pour transformer, calculer ou tester des données dans votre flux.

Fonctions avancées : manipulation JSON/XML

Pour gérer des données structurées, Power Automate offre des outils avancés :

  • Analyser le contenu JSON (Parse JSON) : c’est une action qui prend un bloc JSON (par exemple la réponse d’une API) et génère un schéma. Elle crée ensuite des propriétés dynamiques pour chaque champ JSON, ce qui facilite leur utilisation dans le flux.
  • json() : c’est une fonction qui convertit une chaîne de texte JSON en un objet interne manipulable. Par exemple, json('{ "nom": "Alice", "age": 30 }') renvoie un objet où nom et age sont des propriétés accessibles.
  • xml() : c’est l’équivalent pour le XML. Par exemple, xml('<personne><nom>Jean</nom></personne>') convertit cette chaîne XML en un objet JSON interne sur lequel vous pouvez naviguer grâce à xpath() (par exemple, ['personne']['nom'] donne “Jean”).
  • Accès direct aux données : vous pouvez combiner ces outils pour naviguer directement dans le contenu renvoyé. Par exemple, après un appel HTTP renvoyant du JSON, vous pouvez utiliser l’expression body('NomActionHTTP')?['value'][0]['Title'] pour lire un champ spécifique du résultat.

Ces techniques avancées permettent de travailler avec des formats JSON ou XML complexes et de les transformer selon vos besoins, ce qui est très utile lorsqu’on interagit avec des API ou des services web externes.

Ne laisse pas tes idées attendre :
dans 2 semaines, elles peuvent devenir réalité.