Transformer les courriels des installations en demandes de service avec Power Automate et une invite d'IA (partie A)
Chaque équipe des installations a une boîte de réception partagée comme facilities@ ou service@. Les locataires et le personnel des immeubles y écrivent dans leurs propres mots : « le robinet au 2e fuit encore », « ça sent le brûlé près du quai », « la clim est morte dans notre salle d'attente ». Quelqu'un doit ensuite lire chaque courriel, déterminer de quel bâtiment il s'agit, juger de l'urgence et tout saisir dans un outil de suivi.
Cette étape de recopie est lente, sujette aux erreurs, et c'est la première à glisser lors d'une journée chargée. Dans ce guide, nous la remplaçons par un flux Power Automate et une seule invite d'IA qui lit chaque courriel, en extrait les champs nécessaires et crée un billet dans une liste SharePoint, généralement moins d'une minute après l'arrivée du courriel.
Voici la partie A d'une série en trois parties :
Partie A (cet article) : Power Automate et une invite d'IA qui renvoie du JSON structuré.
Partie B : le même travail confié à un agent autonome Copilot Studio, capable de demander les détails manquants et de repérer les doublons.
Partie C : Microsoft 365 Copilot qui répond à des questions sur la liste des demandes.
Voici le résultat visé. Quatre courriels réalistes en entrée, quatre billets en sortie, avec la priorité, la catégorie et l'emplacement remplis par l'IA :

Ce qu'il vous faut
Microsoft 365 avec Exchange Online, SharePoint et Power Automate.
Une boîte aux lettres partagée pour les demandes. Nous en avons utilisé une nommée Facilities Desk.
L'accès aux invites (Power Apps > AI hub > Prompts, ou Copilot Studio). Les invites consomment des crédits Copilot (Copilot Credits) : votre environnement a donc besoin d'une capacité prépayée ou d'un plan de facturation à l'utilisation. Plus de détails sur les coûts à la fin.
Les listes Sites et Buildings de notre application d'inspection de sites, ou toute autre liste de vos propriétés.
Étape 1 : Créer la boîte aux lettres partagée
Dans le Centre d'administration Microsoft 365, allez à Équipes et groupes > Boîtes aux lettres partagées > Ajouter une boîte aux lettres partagée. Donnez-lui un nom d'affichage et une adresse, puis ajoutez-vous (ainsi que l'équipe des installations) comme membres. Les boîtes aux lettres partagées ne nécessitent aucune licence.
Étape 2 : Créer la liste Service Requests
Dans SharePoint, créez une liste nommée Service Requests. Renommez la colonne Title en Summary et ajoutez les colonnes suivantes :
TicketNo : une seule ligne de texte, remplie par le flux.
SiteID, SiteName, Building, Floor et Location : l'endroit où se trouve le problème.
Category : un choix parmi Plumbing, HVAC, Electrical, Cleaning, Security, Elevator, Doors & Access ou Other (plomberie, CVCA, électricité, nettoyage, sécurité, ascenseur, portes et accès, autre).
Priority : un choix parmi Emergency, Urgent ou Routine (urgence, urgent, routine).
PriorityReason : une phrase de l'IA qui justifie la priorité.
RequesterName, RequesterEmail et ReceivedOn : qui a envoyé la demande, et quand.
Status : un choix parmi New, Needs review, Assigned, In progress ou Resolved (nouveau, à vérifier, assigné, en cours, résolu).
Confidence : un nombre de 0 à 1.
MissingInfo, EmailSubject, EmailBody et MessageId : pour la vérification et la traçabilité.
Ajoutez une mise en forme de colonne simple à Priority et Status pour faire ressortir les éléments urgents. Une pastille de couleur par valeur suffit.
Étape 3 : Rédiger l'invite
C'est ici que l'IA fait le travail. Dans Power Apps, ouvrez AI hub > Prompts > Build your own prompt et nommez l'invite Extract facility service request.
L'invite comporte quatre entrées. Tapez / dans les instructions pour ajouter chacune d'elles comme entrée de type Text :
Sender : l'adresse « De » du courriel.
Subject : l'objet du courriel.
Body : le corps du courriel.
Sites : un court répertoire de vos sites et bâtiments, construit par le flux à partir de SharePoint.
Rédigez ensuite les règles en langage clair. Voici celles qui ont fait la plus grande différence lors de nos essais :
Associer le site à partir d'une liste connue, et utiliser siteId 0 en cas de doute. Ne jamais deviner.
Définir clairement ce que signifient Emergency, Urgent et Routine, pour que la priorité soit uniforme.
Demander un champ missingInfo qui énumère ce dont un technicien aurait encore besoin.
Demander un indice de confiance, pour que les billets à faible confiance soient signalés à une personne.
Ne jamais inventer de détails absents du courriel.
Réglez Output sur JSON et donnez un exemple de la structure voulue. Ainsi, le flux reçoit des champs nommés plutôt que du texte libre :
{"summary":"","siteId":0,"siteName":"","building":"","floor":"","location":"","category":"","priority":"","priorityReason":"","requesterName":"","missingInfo":"","confidence":0}Entrez des données d'exemple pour chaque entrée et sélectionnez Test. Avec un courriel sur un robinet qui fuit, l'invite a trouvé le bon site, le bon bâtiment et le bon étage, a choisi Plumbing et Urgent, et a expliqué pourquoi :

Étape 4 : Créer le flux
Créez un flux de cloud automatisé nommé Facilities Inbox to Service Requests avec le déclencheur Office 365 Outlook > When a new email arrives in a shared mailbox (V2). Indiquez l'adresse de la boîte aux lettres et le dossier Inbox.
Le flux complet est court :

Étape 5 : Donner à l'IA un répertoire des sites
L'invite ne peut associer qu'un site qu'elle connaît. Ajoutez SharePoint > Get items pour votre liste Sites (filtre Active eq 1) et une autre pour Buildings. Ajoutez ensuite deux actions Select en mode texte pour transformer chaque ligne en une seule ligne de texte :
concat(item()?['ID'],' | ',item()?['Title'],' | ',item()?['Address'],', ',item()?['City'])
concat(item()?['SiteID'],' | ',item()?['Title'])Une action Compose nommée Site directory les réunit en un seul bloc de texte :
concat(join(body('Site_lines'),decodeUriComponent('%0A')),decodeUriComponent('%0A'),decodeUriComponent('%0A'),'Buildings (site ID | building):',decodeUriComponent('%0A'),join(body('Building_lines'),decodeUriComponent('%0A')))decodeUriComponent('%0A') est simplement un saut de ligne. Comme le répertoire provient de SharePoint à chaque exécution, un nouveau site devient reconnaissable dès qu'il est ajouté à la liste. Aucune modification de l'invite n'est nécessaire.
Étape 6 : Exécuter l'invite
Ajoutez AI Builder > Run a prompt, choisissez Extract facility service request et associez les entrées : From à Sender, Subject à Subject, Body à Body, et la sortie Site directory à Sites.

Le JSON revient sous structuredOutput, ce qui rend chaque champ accessible par son nom. Par exemple, la priorité s'obtient ainsi :
body('Extract_request_details')?['responsev2']?['predictionOutput']?['structuredOutput']?['priority']Étape 7 : Consigner le billet
Ajoutez SharePoint > Create item sur la liste Service Requests et associez chaque champ à partir de structuredOutput. Deux petites touches rendent la liste beaucoup plus utile. (Dans les expressions ci-dessous, structuredOutput est un raccourci pour le chemin complet présenté à l'étape 6.)
D'abord, réglez Status sur Needs review lorsque l'IA n'est pas certaine, qu'elle n'a pas trouvé le site ou que des détails manquent :
if(or(less(float(structuredOutput?['confidence']),0.7),equals(int(structuredOutput?['siteId']),0),not(empty(structuredOutput?['missingInfo']))),'Needs review','New')Ensuite, ajoutez SharePoint > Update item tout de suite après pour attribuer à la demande un numéro de billet convivial basé sur son ID :
concat('FR-',string(add(1000,outputs('Log_service_request')?['body/ID'])))Étape 8 : Répondre au demandeur
Ajoutez Office 365 Outlook > Send an email from a shared mailbox (V2) pour que la réponse provienne de l'adresse des installations et non d'une personne. Indiquez le numéro de billet dans l'objet et résumez ce qui a été consigné. Si missingInfo n'est pas vide, ajoutez une ligne surlignée qui demande ces détails :
if(empty(structuredOutput?['missingInfo']),'',concat('<p>To send the right technician, please reply with the missing details: <b>',structuredOutput?['missingInfo'],'</b>.</p>'))Le demandeur reçoit un numéro de billet en quelques secondes, et l'équipe des installations obtient les détails nécessaires sans échanges à répétition :

Étape 9 : Faire remonter les urgences
Terminez par une Condition qui vérifie si la priorité est égale à Emergency. Dans la branche True, envoyez un courriel d'importance élevée (ou un message Teams) au gestionnaire des installations avec le résumé, l'emplacement et la justification de l'IA.
Étape 10 : Tester
Nous avons envoyé quatre courriels à la boîte aux lettres partagée, rédigés comme les gens écrivent vraiment :
« Le robinet des toilettes pour hommes au niveau 2 de la tour A à Harbourfront coule sans arrêt... » est devenu FR-1001 : Plumbing, Urgent, Harbourfront Office Tower, Tower A, étage 2.
« Il y a une forte odeur de brûlé qui vient de la salle électrique à côté du quai de chargement à l'entrepôt Northgate... » est devenu FR-1002 : Electrical, Emergency, signalé pour vérification parce qu'aucun étage n'était précisé, et transmis au gestionnaire.
« Quelqu'un a renversé la cafetière de la cuisinette du niveau 2 de la tour A... » est devenu FR-1003 : Cleaning, Routine.
« La climatisation de notre salle d'attente ne fonctionne pas, il fait environ 28 degrés... » est devenu FR-1004 : HVAC, Routine, Needs review. Le courriel ne nommait aucun site : l'IA a donc laissé le champ vide au lieu de deviner, et la réponse a demandé le site, le bâtiment et l'étage.
C'est exactement le comportement souhaité. Une IA qui admet ne pas savoir est bien plus utile qu'une IA qui classe le billet avec assurance sous le mauvais bâtiment.
La boîte de réception, avant et après
Avant : quelqu'un ouvre un courriel intitulé « Clim en panne », le lit deux fois, parcourt la liste des sites, devine qu'il s'agit sans doute de Lakeview, le saisit dans un tableur, oublie de répondre, puis reçoit une heure plus tard un courriel de relance demandant si quelqu'un l'a vu.
Après : le billet existe avant que cette personne ait fini son café, le demandeur connaît déjà son numéro de billet, et les seuls courriels qui exigent une intervention humaine sont ceux marqués Needs review.
Combien ça coûte
Chaque courriel exécute l'invite une fois. Lors de nos essais, cela représentait environ 0,3 crédit Copilot par courriel, affiché directement dans le générateur d'invites après chaque test. Si votre locataire (tenant) n'a pas de crédits Copilot prépayés, configurez un plan de facturation à l'utilisation dans le Centre d'administration Power Platform (Licences > Plans de facturation), liez-le à un abonnement Azure et limitez-le au compteur Copilot Studio et au seul environnement dont vous avez besoin. Ajoutez une alerte budgétaire dans Azure Cost Management pour éviter les surprises.
Idées pour aller plus loin
Lire les pièces jointes : transmettez les photos du problème à une entrée Image or document, pour que l'IA puisse décrire ce qu'elle voit.
Nettoyer d'abord le corps du message : passez le corps HTML dans l'action Html to text avant l'invite pour économiser des jetons sur les longs fils de courriels.
Acheminer selon la catégorie : trouvez le bon technicien ou fournisseur pour chaque catégorie et chaque site, et assignez le billet automatiquement.
Gérer les réponses : lorsqu'un demandeur répond à la demande de détails manquants, repérez le numéro de billet dans l'objet et mettez à jour le billet existant au lieu d'en créer un nouveau. C'est précisément ce que nous confierons à un agent Copilot Studio dans la partie B.
Relier aux inspections : affichez les demandes de service ouvertes à côté des inspections de chaque site dans l'application d'inspection de sites.
Pourquoi c'est important
Les demandes liées aux installations arrivent déjà avec tout ce qu'il vous faut. L'information est simplement enfouie dans des phrases. Une invite qui transforme ces phrases en champs est la façon la plus simple et la plus concrète de mettre l'IA au travail : réunissez les données de votre boîte de réception et de vos listes de propriétés en un seul endroit, placez l'IA devant, et laissez votre équipe consacrer son temps à réparer plutôt qu'à ressaisir.
Besoin d'aide?
Smart Solutions conçoit des solutions Power Automate, Power Apps et Copilot pour les équipes immobilières et de gestion des installations au Canada, de l'automatisation d'une boîte aux lettres partagée comme celle-ci jusqu'aux centres de services complets. Communiquez avec nous pour discuter de ce que vous aimeriez automatiser. À venir dans la partie B : le même processus sous forme d'agent Copilot Studio.




Commentaires