Préparer un appel client sur un sujet technique en moins de dix minutes, sans sacrifier la rigueur de la documentation : c'est exactement ce que permet l'association de Copilot Studio, du Researcher agent de Microsoft 365 Copilot et de Power Automate. Cet article s'adresse aux administrateurs M365 et aux architectes de solutions qui cherchent à optimiser la consommation de messages tout en automatisant la production de contenu structuré.
Pourquoi HTML est le format de sortie idéal pour un agent IA
Les grands modèles de langage (LLM) ont été entraînés massivement sur le contenu du web, lequel est structuré en HTML. En pratique, cela signifie que ces modèles génèrent du HTML avec une fiabilité nettement supérieure à d'autres formats de sortie. Une réponse en Markdown brut peut poser des problèmes d'interprétation selon le client ; un fichier HTML est immédiatement lisible dans n'importe quel navigateur, sans dépendance à un moteur de rendu tiers.
L'autre avantage concret : HTML s'enregistre en un seul fichier, peut être converti en PDF via Power Automate (action OneDrive for Business – Convert file), et s'intègre sans friction dans un flux SharePoint ou Teams.
Cas d'usage courants
Fiches de préparation d'appel client, notes de veille technique, synthèses de documentation Microsoft Learn, tableaux de bord de monitoring système — tous ces contenus gagnent à être produits en HTML plutôt qu'en texte brut.
Architecture de la solution en trois blocs
L'architecture repose sur trois composants distincts, chacun avec un rôle précis :
- Researcher — l'agent de recherche inclus dans Microsoft 365 Copilot, qui interroge le web et la documentation officielle (dont Microsoft Learn) sans consommer de messages Copilot Studio.
- Un agent Copilot Studio personnalisé — chargé uniquement de la mise en forme HTML à partir du contenu de recherche fourni en entrée.
- Un flux Power Automate — orchestre les deux, passe les données d'un bloc à l'autre, et enregistre le fichier HTML produit dans OneDrive.
La séparation entre la phase de recherche et la phase de génération HTML est le point clé de l'architecture : elle évite de faire appel à des capacités de browsing depuis l'agent Copilot Studio, ce qui consommerait des messages.
Consommation de messages Copilot Studio
Le Researcher agent de Microsoft 365 Copilot est inclus dans la licence M365 Copilot et n'impute aucun message sur le quota Copilot Studio. Seul l'appel à votre agent personnalisé (la génération HTML) consomme des messages — et encore, uniquement s'il est invoqué directement hors du nœud Copilot d'un flux Power Automate (voir section suivante).
Créer l'agent de génération HTML dans Copilot Studio
L'agent a un rôle unique et bien délimité : recevoir un bloc de texte de recherche, le structurer et retourner du HTML pur.
Créer l'agent dans Copilot Studio
Dans Copilot Studio, créez un nouvel agent dans votre environnement sandbox. Nommez-le par exemple Create Battle Card.
Configurer les instructions système
Dans les instructions de l'agent, précisez le format de sortie attendu. Voici un exemple directement exploitable :
1Based on the research provided, create a one-page HTML battle card style document.2The document must contain:3- What it is (definition)4- An analogy to explain the concept5- Core concepts6- Common misconceptions and how to correct them7- When to use it / when not to use it8- A quick example9- Relevant documentation links (Microsoft Learn preferred)10 11Respond only with pure HTML — no markdown, no explanation, no code block fence.12The HTML must be self-contained (inline CSS, dark mode preferred).Choisir le modèle
Dans les paramètres de l'agent, sélectionnez le modèle claude-sonnet (ou équivalent disponible dans votre région). Des modèles plus légers réduisent la latence pour des tâches de mise en forme pure où la puissance de raisonnement n'est pas critique.
Publier l'agent
Publiez l'agent pour le rendre disponible dans Power Automate. Sans publication, le nœud Copilot d'un flux ne peut pas le référencer.
Construire le flux Power Automate
C'est ici que réside l'économie de messages. Le nœud Copilot dans Power Automate peut appeler Researcher sans consommer de messages Copilot Studio. Le même nœud peut ensuite appeler votre agent personnalisé.
Créer un flux avec déclencheur manuel
Dans Power Automate, créez un nouveau flux Instant cloud flow avec un déclencheur Manually trigger a flow. Ajoutez un champ texte nommé research_topic.
Ajouter le nœud Copilot — Researcher
Ajoutez une action Copilot (section Microsoft 365 Copilot). Dans la configuration :
- Agent : sélectionnez
Researcher - Message : construisez le prompt avec la variable dynamique
research_topic
1Only write two to three pages on the topic: [research_topic]2Do not ask extra questions. Research broadly on the topic.3Focus mainly on Microsoft knowledge but explore further if relevant.4Provide links from Microsoft Learn when available.Ce nœud n'impute aucun message sur votre quota Copilot Studio.
Ajouter le nœud Copilot — votre agent HTML
Ajoutez une seconde action Copilot. Cette fois :
- Agent : sélectionnez
Create Battle Card(votre agent publié) - Message : passez la sortie du nœud Researcher (variable
ResponseouOutputselon le connecteur) - Output type : sélectionnez Text response pour obtenir le HTML brut, et non un objet JSON avec un champ texte imbriqué
Enregistrer le fichier HTML dans OneDrive
Ajoutez l'action OneDrive for Business – Create file :
- Folder path :
/(racine) ou un dossier dédié - File name :
[research_topic].html(concaténation de la variable et de l'extension) - File content : sortie texte de l'étape précédente
Double-clic sur le nœud OneDrive
Si le nœud OneDrive affiche un avertissement de configuration non terminée, double-cliquez dessus pour forcer l'ouverture du panneau de paramétrage. Ce comportement est connu dans l'éditeur Power Automate.
Optionnel : convertir en PDF
Ajoutez l'action OneDrive for Business – Convert file pour produire un PDF directement exploitable :
- File : référencez l'ID du fichier créé à l'étape précédente
- Target type :
pdf
Résultats observés et performances
Sur un test portant sur le sujet Custom Connectors Power Platform, la séquence complète s'est déroulée comme suit :
| Étape | Durée | Consommation messages |
|---|---|---|
| Researcher (recherche web + Microsoft Learn) | ~5 minutes | 0 message Copilot Studio |
| Agent Create Battle Card (génération HTML) | ~2,5 minutes | 1 message Copilot Studio |
| OneDrive Create file | <30 secondes | 0 message Copilot Studio |
Le fichier HTML produit contenait : définition du concept, analogie (l'adaptateur de voyage universel), cinq concepts fondamentaux, options d'authentification, erreurs de conception courantes, limites de la plateforme, et une liste de liens directs vers la documentation Microsoft (aperçu, création, DLP, certification).
Mise en œuvre
Le script suivant illustre comment appeler votre agent Copilot Studio directement via Microsoft Graph pour des tests hors flux Power Automate. Il requiert le module Microsoft.Graph et un accès avec le rôle minimum Copilot Studio User.
1# Module requis : Microsoft.Graph (>= 2.x)2# Install-Module Microsoft.Graph -Scope CurrentUser3# Permission minimum : CopilotStudio.Conversations.ReadWrite (déléguée)4 5# Paramètres à adapter6$TenantId = "<votre-tenant-id>"7$ClientId = "<votre-app-registration-client-id>"8$AgentId = "<id-de-votre-agent-copilot-studio>"9$ResearchText = "Collez ici le contenu retourné par Researcher"10 11# Connexion interactive (flux délégué)12Connect-MgGraph -TenantId $TenantId -ClientId $ClientId `13 -Scopes "CopilotStudio.Conversations.ReadWrite"14 15# Création d'une nouvelle conversation avec l'agent16$ConversationBody = @{17 agentId = $AgentId18} | ConvertTo-Json19 20$Conversation = Invoke-MgGraphRequest -Method POST `21 -Uri "https://api.copilotstudio.microsoft.com/environments/{environmentId}/bots/$AgentId/conversations" `22 -Body $ConversationBody `23 -ContentType "application/json"24 25$ConversationId = $Conversation.id26Write-Host "Conversation créée : $ConversationId"27 28# Envoi du contenu de recherche à l'agent29$MessageBody = @{30 content = $ResearchText31} | ConvertTo-Json32 33$Response = Invoke-MgGraphRequest -Method POST `34 -Uri "https://api.copilotstudio.microsoft.com/environments/{environmentId}/bots/$AgentId/conversations/$ConversationId/activities" `35 -Body $MessageBody `36 -ContentType "application/json"37 38# Récupération de la réponse HTML39$HtmlContent = $Response.value | Where-Object { $_.type -eq "message" } | Select-Object -Last 1 -ExpandProperty text40 41# Enregistrement local du fichier HTML42$OutputPath = ".\battle-card-output.html"43$HtmlContent | Out-File -FilePath $OutputPath -Encoding UTF844Write-Host "Fichier HTML enregistré : $OutputPath"45 46# Vérification : ouvrir dans le navigateur par défaut47Start-Process $OutputPathEndpoints Copilot Studio en GA
L'API REST de Copilot Studio est en évolution. Vérifiez les endpoints actuels dans la documentation Microsoft Learn sur Copilot Studio APIs avant de déployer en production. Le script ci-dessus illustre la logique d'appel — adaptez les URI à votre région et version d'API.
Dépannage des erreurs courantes
Le nœud OneDrive affiche « Need setup » Double-cliquez sur le nœud pour forcer l'ouverture du panneau de configuration. L'éditeur Power Automate ne l'ouvre pas toujours automatiquement lors de la première insertion.
L'agent retourne du JSON au lieu du HTML brut
Vérifiez que le paramètre Output type du nœud Copilot est bien réglé sur Text response et non sur la valeur par défaut. Ajoutez également dans les instructions de l'agent : Respond only with pure HTML — no markdown fence, no explanation.
Researcher ne ramène pas de liens Microsoft Learn
Ajoutez explicitement provide links from Microsoft Learn when available dans le prompt du nœud Researcher. Sans cette instruction, l'agent privilégie parfois des sources génériques.
Temps d'exécution dépassant 10 minutes Power Automate impose une limite de 30 minutes sur les flux déclenchés manuellement, mais Researcher peut être lent sur des sujets larges. Réduisez la demande à « one to two pages » pour contenir le temps de recherche sous 5 minutes.
Le fichier HTML produit est vide
Vérifiez que l'expression référençant la sortie de l'agent est correcte. Dans l'éditeur d'expression Power Automate, utilisez outputs('Nom_etape_agent')?['text'] pour extraire le champ texte brut.
Ce que vous pouvez faire dès maintenant
Cette architecture est reproductible en moins d'une heure sur n'importe quel tenant M365 disposant de licences Copilot Studio et M365 Copilot. Voici les actions concrètes à enchaîner :
- Créez l'agent
Create Battle Carddans Copilot Studio avec les instructions de mise en forme HTML ci-dessus. - Publiez-le et relevez son identifiant pour le référencer dans Power Automate.
- Construisez le flux avec les deux nœuds Copilot (Researcher → votre agent) et l'action OneDrive.
- Testez sur un sujet interne — par exemple, un composant de votre stack technique que vous devez souvent expliquer à des parties prenantes.
Si votre organisation gère un budget de messages Copilot Studio serré, l'enjeu de cette architecture dépasse la simple génération de fiches : elle démontre qu'il est possible de déléguer la partie coûteuse (la recherche web) à un composant inclus dans la licence M365, et de réserver les messages Copilot Studio aux transformations à forte valeur ajoutée. Cette logique s'applique à n'importe quel flux où une étape d'enrichissement précède une étape de génération.



