Créer un flux Power Automate pour un rapport hebdomadaire des courriels sans réponse
La surcharge de courriels est un défi courant en milieu de travail, et il est facile de laisser filer des messages importants. Imaginez recevoir chaque semaine un résumé clair et automatisé de tous les courriels que vous avez envoyés et qui n'ont toujours pas obtenu de réponse, pour pouvoir faire un suivi avant de rater des occasions. Ce guide étape par étape vous montre exactement comment créer cette automatisation dans Microsoft Power Automate, à l'aide d'Outlook et d'un peu de logique, pour que rien ne vous échappe. Le meilleur? Une fois configurée, elle fonctionne entièrement en pilote automatique.
Visitez notre nouvelle page produit à https://procuracloud.ca/
Ce guide vous accompagne dans la création d'un flux Power Automate qui vous envoie par courriel un résumé hebdomadaire des messages envoyés la semaine dernière qui n'ont pas encore reçu de réponse. Nous utiliserons le connecteur Office 365 Outlook, quelques variables, un appel HTTP à Microsoft Graph (au moyen du connecteur Outlook) et un tableau HTML pour obtenir un rapport soigné.
Ce dont vous aurez besoin
- Microsoft 365 avec une boîte aux lettres Outlook
- Un accès à Power Automate (https://flow.microsoft.com)
- L'autorisation d'utiliser le connecteur Office 365 Outlook
Étape 1 — Créer le flux
1) Allez dans Create → Scheduled cloud flow (Créer → Flux de cloud planifié).
2) Nommez-le « Last Week's Unanswered Email Summary » (Résumé des courriels sans réponse de la semaine dernière).
3) Réglez-le pour qu'il s'exécute chaque semaine au jour et à l'heure de votre choix.
Étape 2 — Configurer le déclencheur Recurrence
Réglez : Frequency = Week, Interval = 1, Day = Friday, Time zone = Eastern Standard Time (ou adaptez l'heure et le fuseau horaire selon vos préférences)

Étape 3 — Initialiser les variables
EmailTO (chaîne)
CC (chaîne)
Array (tableau)

Étape 4 — Composer un filtre de temps glissant (7 derniers jours), à modifier au besoin
Ajoutez une action Compose nommée « FilterValue » avec cette expression :
sentDateTime ge @{addDays(utcNow(),-7)}
Étape 5 — Récupérer les éléments envoyés de la dernière semaine
Ajoutez une requête HTTP avec le connecteur Office 365 Outlook (opération : HttpRequest) pour interroger SentItems :
GET /V1.0/me/mailFolders/SentItems/messages?$filter=@{outputs('FilterValue')}&$top=999 &$select=id,subject,from,toRecipients,ccRecipients,internetMessageId,conversationId,sentDateTime
Analysez la réponse avec une action Parse JSON (incluez id, subject, from.emailAddress, toRecipients[], ccRecipients[], internetMessageId, conversationId, sentDateTime).
Schéma
{
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"subject": {
"type": "string"
},
"sentDateTime": {
"type": "string"
},
"from": {
"type": "object",
"properties": {
"emailAddress": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
}
}
}
}
},
"toRecipients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"emailAddress": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
}
}
}
},
"required": [
"emailAddress"
]
}
},
"ccRecipients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"emailAddress": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
}
}
}
},
"required": [
"emailAddress"
]
}
},
"internetMessageId": {
"type": "string"
},
"conversationId": {
"type": "string"
}
},
"required": [
"id",
"subject",
"from",
"toRecipients",
"ccRecipients",
"internetMessageId",
"conversationId"
]
}
}
}
}
Étape 6 — Pour chaque courriel envoyé, vérifier si le fil contient une réponse

À l'intérieur d'une boucle 'Apply to each' sur body('Parse_JSON')?['value'] :1) Ajoutez une action Compose qui construit un filtre par conversationId :

conversationId eq '@{items('Apply_to_each_2')?['conversationId']}'
2) Ajoutez une requête HTTP sur Inbox avec les deux filtres (conversationId + 7 derniers jours) et $top=1 :

GET /V1.0/me/mailFolders/Inbox/messages?$filter=@{outputs('Compose_3')} and @{outputs('FilterValue')}&$top=13) Analysez cette réponse (Parse JSON). Si la longueur du tableau == 0, il n'y a eu aucune réponse dans ce fil.

Utilisez le même schéma que ci-dessus.
Ignorez aussi les réponses automatiques du calendrier en vérifiant que l'objet (Subject) ne commence pas par 'Tentative:', 'Accepted:' ou 'Declined:'.

Étape 7 — Construire les lignes du rapport
Dans la branche « vrai » (true) de la condition :

Utilisez Select pour extraire les adresses To et CC sous forme de chaînes simples.
Ajoutez-les aux variables EmailTO et CC dans de petites boucles.




Ajoutez un objet à Array avec les clés : To, Subject, CC, Date (sentDateTime).

Réinitialisez EmailTO et CC à null après chaque ligne.

Étape 8 — Créer un tableau HTML et envoyer le courriel
1) Composez votre CSS (facultatif) pour la mise en forme du tableau.

<style> table { width:100%; border-collapse:collapse; font-family:Arial; font-size:12px; } th { background-color:#003F2D; color:#fff; text-align:left; padding:8px; } td { border:1px solid #ddd; text-align:left; padding:8px; } tr:nth-child(even) { background:#f2f2f2;}</style>2) Utilisez Create HTML table sur variables('Array').

3) Envoyez-vous un courriel (Send an email (V2)). Objet : « Weekly Notification: Emails Awaiting Replies » (Avis hebdomadaire : courriels en attente de réponse). Pour les totaux, utilisez :

Total sent: @{length(body('Parse_JSON')?['value'])}
Unanswered Emails: @{length(variables('Array'))}
@{outputs('Style')}@{body('Create_HTML_table')}
Étape 9 — Enregistrer, activer et tester
Enregistrez le flux, activez-le, puis testez une exécution manuelle ou attendez l'heure planifiée.
Améliorations facultatives
- Pagination si vous envoyez plus de 999 courriels par semaine.
- Ajouter une « liste d'exclusion » d'objets ou d'expéditeurs.
- Adapter le fuseau horaire et le format des dates.
- Enregistrer le tableau dans Excel ou SharePoint avant l'envoi du courriel.
Personnalisez-le pour votre entreprise
Ce guide porte sur les courriels sans réponse, mais le même modèle peut s'adapter à une foule d'autres cas d'usage. En ajustant la source de données, le filtre et le résultat, vous pouvez faire correspondre l'automatisation exactement à vos besoins.
Voici quelques idées :
Suivi du service à la clientèle : repérer les billets ou dossiers ouverts qui n'ont pas été mis à jour depuis X jours et envoyer un rappel à l'équipe de soutien.
Suivi des pistes de vente : signaler les pistes qui n'ont pas répondu dans un délai donné et déclencher une alerte pour des appels de suivi.
Rappels de gestion de projet : détecter les mises à jour de tâches en retard dans Planner ou des listes SharePoint et envoyer un rapport d'état par courriel aux parties prenantes.
Suivis internes d'équipe : résumer les messages Teams sans réponse pour les gestionnaires afin qu'aucun blocage ne reste sans solution.
En remplaçant simplement la logique de récupération des courriels par un autre connecteur ou jeu de données, vous pouvez réutiliser cette automatisation pour presque n'importe quel scénario de suivi répétitif.
Vous travaillez en immobilier commercial? Frontage, notre CRM de location pour les courtiers canadiens, accepte ces mêmes envois Power Automate au moyen d'une clé API : les courriels, appels et réunions captés par vos flux sont ainsi rattachés à la bonne transaction plutôt qu'à un rapport hebdomadaire.





Commentaires