Bon de commande d'entretien
Ce flux Power Automate automatise la gestion des demandes d'entretien de véhicules du Groupe Niort. Il couvre l'ensemble du processus, du déclenchement via un formulaire Microsoft Forms jusqu'à la génération et l'envoi du bon de commande PDF.
Vue d'ensemble du flux
flowchart TD
A[Déclencheur : Microsoft Forms] --> B[Obtenir les détails de la réponse]
B --> C[Obtenir le profil utilisateur V2]
C --> D[Initialisation des variables]
D --> E[Envoi de la demande d'approbation]
E --> F{Décision}
F -- Refus --> G[Envoi email de refus au demandeur]
F -- Acceptation --> H[Sélection de la template Word selon société]
H --> I[Remplissage du document Word]
I --> J[Conversion DOCX → PDF via Plumsail]
J --> K[Envoi email de validation avec PDF joint]
K --> L[Enregistrement dans Excel SharePoint]
1. Déclencheur
Type : Microsoft Forms — Quand une réponse est soumise
Le flux se déclenche à chaque nouvelle soumission du formulaire de demande d'entretien. Le formulaire collecte les informations suivantes :
| Champ du formulaire | Identifiant interne | Description |
|---|---|---|
| Immatriculation | r4fdfbd72880d47d28b2143fd478b41f3 | Plaque d'immatriculation du véhicule |
| Kilométrage | re160aaa8238d4f72a47e572724c4bf7e | Kilométrage actuel du véhicule |
| Type d'entretien | re496ced402d641f497be99fec53dee17 | Entretien(s) souhaité(s) (choix multiple) |
| Nom du prestataire | r108283b2f1954e969cca9ea62006b967 | Garage / prestataire choisi |
| Adresse du prestataire | r28f16ab5cc144d8b926f67382baf39bc | Adresse du garage |
| Email du répondant | responder | Email automatique de l'auteur du formulaire |
2. Actions de récupération de données
Après déclenchement, le flux effectue deux appels :
- Obtenir les détails de la réponse — récupère les champs du formulaire.
- Obtenir le profil de l'utilisateur (V2) — interroge Microsoft Graph pour obtenir le profil Azure AD du répondant (
displayName,companyName,department).
3. Variables initialisées
varAnnee
formatDateTime(utcNow(), 'yyyy')
Année en cours, utilisée pour l'archivage et horodatage des documents.
varDateDemande
formatDateTime(utcNow(), 'dd/MM/yyyy')
Date du jour au format français, insérée dans les documents générés.
varNumero
string(rand(10000, 99999))
Numéro aléatoire à 5 chiffres, base de la référence unique de la demande.
varSocieteBis
Détermine le nom normalisé de la société du demandeur, avec des corrections pour certains utilisateurs spécifiques :
| Condition | Valeur résultante |
|---|---|
| Jérémy ROCHE, Jean-François NIORT, Nicolas LE HER, Eliott TAILLEPIED | FINANCIERE NIORT |
| Charles-Henry CACHIA | TURBOS MOTEURS MIGNE |
| Sylvain SERENA | TURBOS MOTEURS MIGNE |
companyName = NIORT FRERES | NIORT FRERES DISTRIBUTION |
companyName = Turbos Migne | TURBOS MOTEURS MIGNE |
| Autres | Valeur brute de companyName |
varServiceBis
Détermine le service normalisé du demandeur :
| Condition | Valeur résultante |
|---|---|
| Jérémy ROCHE, Jean-François NIORT, Nicolas LE HER, Eliott TAILLEPIED | Financier |
| Charles-Henry CACHIA | Direction |
| Sylvain SERENA | Direction |
| Autres | Valeur brute de department |
varReference
Référence unique générée par concaténation du numéro aléatoire et d'un code société :
concat(varNumero, <code société>)
Table des codes société :
| Société | Code |
|---|---|
| Financière Niort (utilisateurs spécifiques) | FINA |
| Charles-Henry CACHIA / Sylvain SERENA | TMM |
| 4BUS / AD FORTIA | ADF |
| DPAN | DPAN |
| NIORT FRERES DISTRIBUTION | NFD |
| Mecatrans | MCT |
| NIORT FRERES POIDS LOURDS | NFPL |
| NIORT FRERES SERVICES | NFS |
| NDIGITAL | NDI |
| NTECH | NTE |
| Autres | Nom de société brut |
Exemple de référence générée : 47832NFD
varSiret
SIRET attribué en fonction de varSocieteBis :
| Société | SIRET |
|---|---|
| DPAN | 511 015 620 00012 |
| NIORT FRERES DISTRIBUTION | 434 074 878 00159 |
| AD FORTIA | 441 717 345 00017 |
| Mecatrans | 514 270 875 00016 |
| NDIGITAL | 892 351 065 00016 |
| NIORT FRERES POIDS LOURDS | 979 825 924 00017 |
| NIORT FRERES SERVICES | 880 035 712 00012 |
| NTECH | 921 417 093 00017 |
| FINANCIERE NIORT | 394 197 487 00017 |
| TURBOS MOTEURS MIGNE | 308 530 492 00039 |
adresseSocieteNiort
Adresse du siège social de la société du demandeur :
| Société | Adresse |
|---|---|
| DPAN | 154 Avenue du Mont Riboudet |
| NIORT FRERES DISTRIBUTION | 154 Avenue du Mont Riboudet |
| AD FORTIA | 7 Rue de l'Ouest |
| Mecatrans | 11-13 Rue Coignebert |
| NDIGITAL | 158 Avenue du Mont Riboudet |
| NIORT FRERES POIDS LOURDS | Boulevard Lénine |
| NIORT FRERES SERVICES | 154 Avenue du Mont Riboudet |
| NTECH | 8 Rue Pierre-Gilles de Gennes |
| FINANCIERE NIORT | 154 Avenue du Mont Riboudet |
| TURBOS MOTEURS MIGNE | 20 Av. des Frères Montgolfier |
codePostalEntreprise
| Société | Code postal |
|---|---|
| DPAN | 76000 |
| NIORT FRERES DISTRIBUTION | 76000 |
| AD FORTIA | 78711 |
| Mecatrans | 76000 |
| NDIGITAL | 76000 |
| NIORT FRERES POIDS LOURDS | 76800 |
| NIORT FRERES SERVICES | 76000 |
| NTECH | 76150 |
| TURBOS MOTEURS MIGNE | 64140 |
| FINANCIERE NIORT | 76000 |
villeEntreprise
| Société | Ville |
|---|---|
| DPAN | Rouen |
| NIORT FRERES DISTRIBUTION | Rouen |
| AD FORTIA | Mantes-la-Ville |
| Mecatrans | Rouen |
| NDIGITAL | Rouen |
| NIORT FRERES POIDS LOURDS | Saint-Étienne-du-Rouvray |
| NIORT FRERES SERVICES | Rouen |
| NTECH | Saint-Jean-du-Cardonnay |
| TURBOS MOTEURS MIGNE | Lons |
| FINANCIERE NIORT | Rouen |
varNomEntretien
Nettoie la valeur brute du champ "Type d'entretien" (issu d'une question à choix multiple dans Forms, qui renvoie un tableau JSON) :
replace(replace(replace(replace(
outputs('Obtenir_les_détails_de_la_réponse')?['body/re496ced402d641f497be99fec53dee17'],
'[', ''), ']', ''), '"', ''), ',', ', ')
Transforme par exemple ["Vidange","Freins"] en Vidange, Freins.
4. Approbation
Une demande d'approbation est envoyée aux approbateurs suivants :
| Approbateur | |
|---|---|
| Responsable flotte 1 | j-vanderhoeven@groupeniort.fr |
| Gestionnaire flotte | gestionnaire-flotte@niortfreres.fr |
| Responsable 2 | j-soudais@groupeniort.fr |
| Responsable 3 | e-taillepied@groupeniort.fr |
La demande contient les informations clés : référence, immatriculation, kilométrage, type d'entretien, prestataire et demandeur.
5. Traitement selon la décision
5.1 En cas de refus
Un email HTML est envoyé au demandeur avec :
- La référence de la demande
- L'immatriculation et le kilométrage du véhicule
- Le motif du refus (
items('For_each_2')?['comments']— issu du champ commentaire de l'approbateur) - Le rappel de la possibilité de déposer une nouvelle demande
Expéditeur apparent : Service Gestion de Flotte — gestionnaire-flotte@niortfreres.fr
Aperçu du template email de refus
En-tête rouge
#c0392b· Contenu structuré en tableaux · Motif de refus mis en évidence · Signature Groupe Niort
Objet : Demande refusée — Bon de commande d'entretien
Le corps du message contient :
| Bloc | Contenu |
|---|---|
| Référence | @{variables('varReference')} |
| Société | @{outputs('Obtenir_le_profil_de_l''utilisateur_(V2)')?['body/companyName']} |
| Immatriculation | @{body/r4fdfbd72880d47d28b2143fd478b41f3} |
| Kilométrage | @{body/re160aaa8238d4f72a47e572724c4bf7e} km |
| Motif du refus | @{items('For_each_2')?['comments']} |
Voir le code HTML complet du template de refus
<div style="font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; max-width: 650px; margin: 0 auto; background-color: #ffffff; border: 2px solid #c0392b;">
<!-- En-tête -->
<div style="background-color: #c0392b; color: #ffffff; padding: 25px; text-align: center;">
<h1 style="margin: 0; font-size: 24px; font-weight: 600;">Demande refusée</h1>
<p style="margin: 8px 0 0 0; font-size: 16px;">Bon de commande d'entretien</p>
</div>
<!-- Contenu -->
<div style="padding: 30px; color: #2c3e50;">
<!-- Référence -->
<div style="background-color: #fdecea; border-left: 5px solid #c0392b; padding: 20px; margin-bottom: 25px;">
<h2 style="margin: 0 0 10px 0; color: #c0392b; font-size: 18px; font-weight: 600;">
Référence : @{variables('varReference')}
</h2>
<p style="margin: 0; font-size: 14px;">
Société : @{outputs('Obtenir_le_profil_de_l''utilisateur_(V2)')?['body/companyName']}
</p>
</div>
<!-- Véhicule -->
<h3 style="border-bottom: 2px solid #ecf0f1; padding-bottom: 10px; margin-bottom: 15px; font-size: 16px; font-weight: 600;">Véhicule</h3>
<table style="width: 100%; border-collapse: collapse; margin-bottom: 25px;">
<tbody>
<tr>
<td style="padding: 10px; font-weight: bold; width: 180px; background-color: #f8f9fa;">Immatriculation</td>
<td style="padding: 10px; background-color: #fff3cd; font-weight: bold;">
@{outputs('Obtenir_les_détails_de_la_réponse')?['body/r4fdfbd72880d47d28b2143fd478b41f3']}
</td>
</tr>
<tr>
<td style="padding: 10px; font-weight: bold; background-color: #f8f9fa;">Kilométrage</td>
<td style="padding: 10px;">
@{outputs('Obtenir_les_détails_de_la_réponse')?['body/re160aaa8238d4f72a47e572724c4bf7e']} km
</td>
</tr>
</tbody>
</table>
<!-- Motif du refus -->
<div style="background-color: #fff3f3; border: 1px solid #f5c6cb; padding: 20px; margin-bottom: 30px; border-radius: 6px;">
<h4 style="margin: 0 0 10px 0; color: #721c24; font-size: 16px; font-weight: 600;">
Motif du refus : @{items('For_each_2')?['comments']}
</h4>
</div>
<!-- Suite -->
<div style="background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 6px; padding: 20px; margin-bottom: 30px;">
<h4 style="margin: 0 0 10px 0; color: #495057; font-size: 16px; font-weight: 600;">Suite de la demande</h4>
<p style="margin: 0; font-size: 14px; line-height: 1.6;">
Vous pouvez, si nécessaire, effectuer une nouvelle demande en tenant compte du motif indiqué ci-dessus.
Pour toute question, merci de contacter le service concerné.
</p>
</div>
<!-- Signature -->
<div style="margin: 30px 0 0 0; padding-top: 25px; border-top: 2px solid #e0e0e0;">
<table style="width: 100%; border-collapse: collapse;">
<tbody>
<tr>
<td style="vertical-align: top; padding-right: 20px; width: 60px;">
<img src="https://i.imgur.com/TSCMnwg.png" alt="Logo Groupe Niort" style="width: 50px; height: auto; display: block;">
</td>
<td style="vertical-align: middle; border-left: 3px solid #c0392b; padding-left: 20px;">
<p style="margin: 0 0 8px 0; font-size: 14px; color: #2c3e50; font-weight: 600;">Service Gestion de Flotte</p>
<p style="margin: 0 0 5px 0; font-size: 13px; color: #c0392b; font-weight: 500;">Groupe Niort</p>
<p style="margin: 0; font-size: 12px; color: #7f8c8d; line-height: 1.4;">gestionnaire-flotte@niortfreres.fr</p>
</td>
</tr>
</tbody>
</table>
<p style="margin: 20px 0 0 0; font-size: 13px; color: #555; font-style: italic;">Cordialement,</p>
</div>
</div>
<!-- Pied de page -->
<div style="background-color: #f8f9fa; padding: 15px 30px; border-top: 1px solid #e0e0e0; text-align: center;">
<p style="margin: 0; font-size: 12px; color: #95a5a6;">Message généré automatiquement - Ne pas répondre à cet email</p>
</div>
</div>
5.2 En cas d'acceptation
Le flux enchaîne les étapes suivantes :
- Sélection de la template Word adaptée à la société (une template par entité du groupe), disponibles dans SharePoint :
https://niortfreresdistribution.sharepoint.com/sites/TraitementdesfacturesMicrosoft Word Desktop
Les templates sont au format .docx et doivent être éditées depuis Microsoft Word Desktop uniquement (la version en ligne ne supporte pas les fonctionnalités avancées utilisées).
:::
-
Remplissage du document avec les variables du flux (référence, société, SIRET, adresse, véhicule, prestataire, type d'entretien, date...).
-
Conversion DOCX → PDF via l'API Plumsail Documents.
-
Envoi d'un email de confirmation au demandeur avec le résumé complet + PDF en pièce jointe.
-
Enregistrement dans le fichier Excel de suivi partagé sur SharePoint (
Traitementdesfactures).
Aperçu du template email d'acceptation
En-tête sombre
#2c3e50· Résumé demandeur / véhicule / prestataire · PDF joint · Instructions prochaines étapes
Objet : Demande d'entretien validée — Bon de commande joint
| Bloc | Données affichées |
|---|---|
| Référence | @{variables('varReference')} |
| Date de demande | @{variables('varDateDemande')} |
| Demandeur | @{body/displayName} |
| Société | @{variables('varsocietebis')} |
| Service | @{variables('varservicebis')} |
| Email demandeur | @{body/responder} |
| Immatriculation | @{body/r4fdfbd72880d47d28b2143fd478b41f3} |
| Kilométrage | @{body/re160aaa8238d4f72a47e572724c4bf7e} km |
| Prestataire | @{body/r108283b2f1954e969cca9ea62006b967} |
| Adresse prestataire | @{body/r28f16ab5cc144d8b926f67382baf39bc} |
| Type d'entretien | @{variables('varnomentretien')} |
Les prochaines étapes indiquées au demandeur :
- Prendre rendez-vous avec le prestataire
- Présenter le bon de commande PDF lors du passage
- Envoyer la facture à
gestionnaire-flotte@niortfreres.fr
Voir le code HTML complet du template d'acceptation
<div style="font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; max-width: 650px; margin: 0 auto; background-color: #ffffff; border: 1px solid #e0e0e0;">
<!-- En-tête -->
<div style="background-color: #2c3e50; color: #ffffff; padding: 20px 30px;">
<h1 style="margin: 0; font-size: 20px; font-weight: 600;">Demande d'entretien validée</h1>
<p style="margin: 5px 0 0 0; font-size: 13px; color: #bdc3c7;">Bon de commande joint à ce message</p>
</div>
<!-- Contenu principal -->
<div style="padding: 30px; color: #333333; line-height: 1.6;">
<p style="margin: 0 0 10px 0; font-size: 15px; color: #2c3e50;"><strong>Bonjour,</strong></p>
<p style="margin: 0 0 25px 0; font-size: 14px; color: #333;">Votre demande d'entretien a été validée.</p>
<!-- Référence -->
<table style="width: 100%; border-collapse: collapse; margin-bottom: 25px; background-color: #f8f9fa; border: 1px solid #e0e0e0;">
<tbody>
<tr>
<td style="padding: 15px; border-right: 1px solid #e0e0e0; width: 140px; font-weight: 600; font-size: 13px; color: #555;">Référence</td>
<td style="padding: 15px; font-size: 15px; font-weight: 600; color: #2c3e50;">@{variables('varReference')}</td>
</tr>
<tr>
<td style="padding: 15px; border-right: 1px solid #e0e0e0; border-top: 1px solid #e0e0e0; font-weight: 600; font-size: 13px; color: #555;">Date de demande</td>
<td style="padding: 15px; border-top: 1px solid #e0e0e0; font-size: 14px; color: #333;">@{variables('varDateDemande')}</td>
</tr>
</tbody>
</table>
<!-- Demandeur -->
<h3 style="font-size: 15px; font-weight: 600; color: #2c3e50; margin: 0 0 12px 0; padding-bottom: 8px; border-bottom: 2px solid #ecf0f1;">Demandeur</h3>
<table style="width: 100%; border-collapse: collapse; margin-bottom: 25px;">
<tbody>
<tr>
<td style="padding: 10px 0; width: 140px; font-size: 13px; color: #666;">Nom / Prénom</td>
<td style="padding: 10px 0; font-size: 14px; color: #333;">@{outputs('Obtenir_le_profil_de_l''utilisateur_(V2)')?['body/displayName']}</td>
</tr>
<tr>
<td style="padding: 10px 0; font-size: 13px; color: #666;">Société</td>
<td style="padding: 10px 0; font-size: 14px; color: #333;">@{variables('varsocietebis')}</td>
</tr>
<tr>
<td style="padding: 10px 0; font-size: 13px; color: #666;">Service</td>
<td style="padding: 10px 0; font-size: 14px; color: #333;">@{variables('varservicebis')}</td>
</tr>
<tr>
<td style="padding: 10px 0; font-size: 13px; color: #666;">Email</td>
<td style="padding: 10px 0; font-size: 14px; color: #333;">@{outputs('Obtenir_les_détails_de_la_réponse')?['body/responder']}</td>
</tr>
</tbody>
</table>
<!-- Véhicule -->
<h3 style="font-size: 15px; font-weight: 600; color: #2c3e50; margin: 0 0 12px 0; padding-bottom: 8px; border-bottom: 2px solid #ecf0f1;">Véhicule</h3>
<table style="width: 100%; border-collapse: collapse; margin-bottom: 25px;">
<tbody>
<tr>
<td style="padding: 10px 0; width: 140px; font-size: 13px; color: #666;">Immatriculation</td>
<td style="padding: 10px 0; font-size: 14px; font-weight: 600; color: #2c3e50;">
@{outputs('Obtenir_les_détails_de_la_réponse')?['body/r4fdfbd72880d47d28b2143fd478b41f3']}
</td>
</tr>
<tr>
<td style="padding: 10px 0; font-size: 13px; color: #666;">Kilométrage</td>
<td style="padding: 10px 0; font-size: 14px; color: #333;">
@{outputs('Obtenir_les_détails_de_la_réponse')?['body/re160aaa8238d4f72a47e572724c4bf7e']} km
</td>
</tr>
</tbody>
</table>
<!-- Prestataire -->
<h3 style="font-size: 15px; font-weight: 600; color: #2c3e50; margin: 0 0 12px 0; padding-bottom: 8px; border-bottom: 2px solid #ecf0f1;">Prestataire</h3>
<table style="width: 100%; border-collapse: collapse; margin-bottom: 25px;">
<tbody>
<tr>
<td style="padding: 10px 0; width: 140px; font-size: 13px; color: #666;">Nom</td>
<td style="padding: 10px 0; font-size: 14px; color: #333;">
@{outputs('Obtenir_les_détails_de_la_réponse')?['body/r108283b2f1954e969cca9ea62006b967']}
</td>
</tr>
<tr>
<td style="padding: 10px 0; font-size: 13px; color: #666;">Adresse</td>
<td style="padding: 10px 0; font-size: 14px; color: #333;">
@{outputs('Obtenir_les_détails_de_la_réponse')?['body/r28f16ab5cc144d8b926f67382baf39bc']}
</td>
</tr>
</tbody>
</table>
<!-- Type d'entretien -->
<h3 style="font-size: 15px; font-weight: 600; color: #2c3e50; margin: 0 0 12px 0; padding-bottom: 8px; border-bottom: 2px solid #ecf0f1;">
Type d'entretien : @{variables('varnomentretien')}
</h3>
<!-- Document joint -->
<div style="background-color: #f8f9fa; border-left: 3px solid #3498db; padding: 15px; margin-bottom: 25px;">
<p style="margin: 0; font-size: 14px; color: #2c3e50;">
<strong>Document joint :</strong> Le bon de commande d'entretien est joint à ce message en format PDF.
Merci de le conserver et de le présenter lors de votre rendez-vous.
</p>
</div>
<!-- Instructions -->
<div style="background-color: #ffffff; border: 1px solid #e0e0e0; padding: 20px; margin-bottom: 25px;">
<p style="margin: 0 0 12px 0; font-size: 14px; font-weight: 600; color: #2c3e50;">Prochaines étapes :</p>
<ol style="margin: 0; padding-left: 20px; font-size: 14px; color: #555; line-height: 1.8;">
<li>Prenez rendez-vous avec le prestataire mentionné ci-dessus</li>
<li>Présentez le bon de commande joint lors de votre passage</li>
<li>Envoyez la facture à : <strong style="color: #2c3e50;">gestionnaire-flotte@niortfreres.fr</strong></li>
</ol>
</div>
<!-- Signature -->
<div style="margin: 30px 0 0 0; padding-top: 25px; border-top: 2px solid #e0e0e0;">
<table style="width: 100%; border-collapse: collapse;">
<tbody>
<tr>
<td style="vertical-align: top; padding-right: 20px; width: 60px;">
<img src="https://i.imgur.com/TSCMnwg.png" alt="Logo Groupe Niort" style="width: 50px; height: auto; display: block;">
</td>
<td style="vertical-align: middle; border-left: 3px solid #2c3e50; padding-left: 20px;">
<p style="margin: 0 0 8px 0; font-size: 14px; color: #2c3e50; font-weight: 600;">Service Gestion de Flotte</p>
<p style="margin: 0 0 5px 0; font-size: 13px; color: #3498db; font-weight: 500;">Groupe Niort</p>
<p style="margin: 0; font-size: 12px; color: #7f8c8d; line-height: 1.4;">gestionnaire-flotte@niortfreres.fr</p>
</td>
</tr>
</tbody>
</table>
<p style="margin: 20px 0 0 0; font-size: 13px; color: #555; font-style: italic;">Cordialement,</p>
</div>
</div>
<!-- Pied de page -->
<div style="background-color: #f8f9fa; padding: 15px 30px; border-top: 1px solid #e0e0e0; text-align: center;">
<p style="margin: 0; font-size: 12px; color: #95a5a6;">Message généré automatiquement - Ne pas répondre à cet email</p>
</div>
</div>
6. Templates Word et génération du PDF
Principe
Chaque entité du Groupe Niort dispose de sa propre template Word (.docx) pour le bon de commande d'entretien. Ces templates :
- Sont stockées dans SharePoint :
https://niortfreresdistribution.sharepoint.com/sites/Traitementdesfactures - Doivent être éditées depuis Microsoft Word Desktop uniquement (la version en ligne ne supporte pas les fonctionnalités avancées utilisées)
- Contiennent des marqueurs de remplacement que Power Automate remplace par les valeurs des variables
Variables injectées dans la template
| Marqueur dans le .docx | Variable Power Automate |
|---|---|
| Référence | varReference |
| Date | varDateDemande |
| Société | varSocieteBis |
| SIRET | varSiret |
| Adresse | adresseSocieteNiort |
| Code postal | codePostalEntreprise |
| Ville | villeEntreprise |
| Demandeur | displayName (profil Azure AD) |
| Service | varServiceBis |
| Immatriculation | champ Forms |
| Kilométrage | champ Forms |
| Prestataire | champ Forms |
| Adresse prestataire | champ Forms |
| Type d'entretien | varNomEntretien |
Conversion DOCX → PDF
Le document Word rempli est converti en PDF via l'API Plumsail Documents.
Le connecteur Power Automate Plumsail reçoit le fichier .docx en binaire et retourne le PDF converti, qui est ensuite joint à l'email d'acceptation.
7. Ressources et dépendances
| Ressource | Description |
|---|---|
| Microsoft Forms | Formulaire de déclenchement des demandes |
| Microsoft Graph (Profil V2) | Récupération du profil Azure AD du demandeur |
| SharePoint (Traitementdesfactures) | Stockage Excel de suivi + templates Word .docx |
| Plumsail Documents | API de conversion DOCX → PDF |
| Microsoft 365 Mail | Envoi des emails de refus et d'acceptation |
| Power Automate Approvals | Circuit d'approbation multi-approbateurs |