Power Automate : un vrai TRY-CATCH pour vos workflows en production
Un flow qui échoue silencieusement pendant trois semaines, personne ne le sait — jusqu'au client qui appelle. Voici un pattern TRY-CATCH réutilisable pour reprendre la main.
Pourquoi ce pattern change la donne
Les erreurs en production passent souvent sous le radar. L'admin découvre l'incident sans contexte, le développeur apprend le problème par un utilisateur. Un vrai TRY-CATCH permet de détecter l'échec dès qu'il se produit, de notifier les bonnes personnes avec les bonnes informations, et de fournir un lien direct vers l'exécution fautive.
Structure générale
- Un Scope « TRY » qui contient toute la logique métier.
- Un Scope « CATCH » qui ne se déclenche qu'en cas d'échec, timeout ou skip du TRY.
- Dans le CATCH : capture des métadonnées, reconstruction du lien vers l'exécution, notification, terminaison propre.
1. Le scope TRY
Créez un Scope nommé TRY et placez-y toutes les actions du workflow — sauf les déclarations de variables, qui doivent rester à l'extérieur pour être visibles depuis le CATCH.
2. Le scope CATCH conditionnel
Ajoutez un second Scope nommé CATCH. Dans « Configure run after » du CATCH, cochez has failed, is skipped et has timed out pour le TRY. Décochez is successful. Résultat : le CATCH ne s'exécute que si quelque chose s'est mal passé.
3. Récupérer les métadonnées du workflow
Dans le CATCH, ajoutez une action Compose qui appelle la fonction workflow(). Elle renvoie un objet JSON contenant l'ID du flow, l'ID de l'environnement et l'ID de l'exécution en cours.
// Inputs de la Compose
@{workflow()}
4. Parser le JSON
Ajoutez une action Parse JSON qui prend en entrée la sortie de la Compose précédente. Le schéma vous donnera accès à trois valeurs clés :
- tags.environmentName — l'ID de l'environnement
- name — l'ID du flow
- run.name — l'ID de l'exécution
5. Construire le lien vers l'exécution
Reconstruisez l'URL de l'exécution fautive dans une nouvelle Compose. C'est ce lien qui fait gagner un temps fou à l'admin.
https://make.powerautomate.com/environments/{environmentId}/flows/{flowId}/runs/{runId}
6. Notifier les admins
Ajoutez une action « Send an email (V2) » configurée ainsi :
- To : une variable d'environnement contenant la liste des admins (ne codez jamais l'adresse en dur).
- Subject : nom du flow + type d'erreur, par exemple « GET items SharePoint — Erreur ».
- Body : un message clair + le lien vers l'exécution reconstruit à l'étape précédente.
7. Terminer le workflow proprement
Dernière action du CATCH : Terminate avec le status Failed et un message d'erreur explicite. Ainsi l'échec remonte correctement dans l'historique et déclenche vos alertes existantes.
Ce que vous y gagnez
- Notification immédiate avec tout le contexte utile.
- Un lien cliquable qui amène l'admin directement sur l'exécution fautive.
- Un statut d'échec propre dans l'historique — plus de faux positifs verts.
- Une base réutilisable : le même CATCH sert dans tous vos flows métier.
En résumé
Le TRY-CATCH prend vingt minutes à mettre en place et vous fait gagner des heures dès le premier incident. Sur un tenant Power Automate en production, c'est un standard, pas une option.