Vous voulez que chaque enregistrement d’une série récurrente dans Microsoft Teams finisse automatiquement au bon endroit (bibliothèque d’équipe ou sous‑dossier dédié), sans tri manuel après chaque réunion ? Voici une méthode éprouvée, avec étapes détaillées et bonnes pratiques.
Définir un dossier d’enregistrement distinct pour une série de réunions Teams
Vue d’ensemble de la question
Par défaut, Teams (Stream sur SharePoint/OneDrive) place les enregistrements de réunions hors canal dans le OneDrive de la personne qui a appuyé sur Enregistrer, sous Recordings. Pour les réunions planifiées dans un canal Teams, les fichiers vont dans la bibliothèque SharePoint du site d’équipe, sous Documents > <Nom du canal> > Recordings. À ce jour, aucun paramètre natif ne permet de sélectionner un autre dossier par défaut pour une réunion hors canal, ni de créer automatiquement un sous‑dossier par série récurrente.
Réponse & solutions
Ce qui existe aujourd’hui | Limites constatées |
---|---|
Réunions hors canal : l’enregistrement est placé dans OneDrive > Recordings du participant qui appuie sur Enregistrer. | Aucun paramètre n’autorise le choix d’un autre dossier par défaut. |
Réunions planifiées dans un canal Teams : le fichier est stocké dans SharePoint > Documents > <Nom du canal> > Recordings du site d’équipe. | Tous les invités doivent avoir accès au canal, sinon ils n’obtiendront qu’un lien partagé. |
Permissions : un lien « partagé avec vous » est créé automatiquement pour les membres internes ; les externes doivent être ajoutés manuellement. | Administration supplémentaire si des invités externes sont impliqués. |
En l’état, Teams/OneDrive ne propose aucun réglage pour :
- changer le dossier par défaut d’une réunion hors canal ;
- créer un sous‑dossier automatique pour chaque série.
Contournements praticables
- Planifier la réunion dans un canal lorsque cela est possible. Avantage : le fichier atterrit déjà dans la bibliothèque SharePoint du canal, accessible à l’ensemble de l’équipe. Limite : inadapté si le même rendez‑vous inclut régulièrement des personnes extérieures au canal. Procédure rapide
- Dans Teams, cliquez sur Calendrier > Nouvelle réunion.
- Activez Ajouter un canal et sélectionnez l’équipe/le canal cible.
- Vérifiez que les invités ont accès au canal (ou préférez une réunion hors canal si ce n’est pas possible).
- Power Automate (anciennement Flow) Principe : détecter automatiquement les nouveaux fichiers *.mp4* créés dans OneDrive > Recordings et les déplacer (ou copier/supprimer) vers le bon dossier SharePoint, idéalement dans un sous‑dossier portant le nom de la série. Avantage : automatisme complet, gestion fine des droits via SharePoint. Prérequis : licence Power Automate standard et accès aux emplacements OneDrive/SharePoint concernés.
- Politique de rétention et gouvernance Si l’objectif principal est la conservation ou la suppression après X jours, des politiques de rétention (Purview/Compliance) peuvent s’appliquer — mais elles ne déplacent pas physiquement les fichiers. À utiliser en complément pour limiter les copies orphelines.
- Script PowerShell & tâche planifiée Approche plus technique : surveiller OneDrive via Microsoft Graph (API/SDK PowerShell) et déplacer les nouveaux enregistrements vers la bibliothèque SharePoint cible. À réserver aux environnements maîtrisant l’automatisation/DevOps.
Mettre en place un flux Power Automate robuste (pas à pas)
Ci‑dessous, deux variantes : une méthode simple (détection par nom) et une méthode « entreprise » (table de routage de séries). Les deux évitent la manutention après chaque réunion.
Méthode A — Simple (détection par nom de réunion)
Objectif : si le nom du fichier contient un mot‑clé (par ex. « Sprint‑Review »), déplacer l’enregistrement vers Sites > Équipe A > Documents > Réunions > Sprint‑Review > Recordings.
- Déclencheur (OneDrive Entreprise) : Quand un fichier est créé (propriétaire du fichier).
- Condition 1 : traiter uniquement les *.mp4* du dossier Recordings.
Expressions utiles :endsWith(triggerOutputs()?['body/{FilenameWithExtension}'], '.mp4')
contains(toLower(triggerOutputs()?['body/FolderPath']), '/recordings')
(adapter selon le connecteur)
- Étape « Déterminer la série » : extraire un mot‑clé depuis le nom du fichier (souvent le sujet de la réunion). Le nom par défaut inclut généralement le titre de la réunion et l’horodatage. Exemple d’extraction basique :
- Composer (NomSansExtension) :
replace(triggerOutputs()?['body/{FilenameWithExtension}'], concat('.', last(split(triggerOutputs()?['body/{FilenameWithExtension}'], '.'))), '')
- Composer (MotCleSerie) : si votre convention est « [Série] Sujet », utilisez
first(split(outputs('NomSansExtension'), ' - '))
ou un mot‑clé fixe.
- Composer (NomSansExtension) :
- Condition 2 : si MotCleSerie égale par ex. Sprint‑Review → définir la variable DossierCible sur le chemin SharePoint correspondant. Répétez pour 2–3 séries principales.
- Copier le fichier (connecteur OneDrive → SharePoint) vers DossierCible, puis Supprimer le fichier source dans OneDrive. Pourquoi copier/supprimer plutôt que déplacer ? Les actions « Déplacer » entre stockages (OneDrive→SharePoint) peuvent être limitées. La séquence Copier→Supprimer est plus fiable et journalisable.
- Option : renommer le fichier (ex. « Sprint‑Review_2025‑09‑15.mp4 ») pour harmoniser la recherche.
Avantages : mise en œuvre rapide, aucun développement. Limites : dépend de conventions de nommage stables ; maintenance si les titres évoluent.
Méthode B — « Entreprise » (table de routage des séries)
Objectif : centraliser les règles dans une liste SharePoint afin que l’IT ou un PM puisse ajouter/enlever des séries sans modifier le flux.
Préparation : créez une liste SharePoint nommée Routage Enregistrements avec les colonnes suivantes :
- Titre (texte) : nom lisible de la série (ex. Sprint‑Review).
- MotCle (texte) : mot‑clé à rechercher dans le nom du fichier.
- DossierDestination (texte) : chemin relatif du dossier cible (ex. /Sites/EquipeA/Shared Documents/Reunions/Sprint‑Review/Recordings).
- Priorite (nombre) : plus le chiffre est élevé, plus la règle est prioritaire.
- PartagerAvecGroupe (texte, optionnel) : nom d’un groupe M365 ou e‑mail de sécurité à autoriser automatiquement.
Flux Power Automate :
- Déclencheur : Quand un fichier est créé (OneDrive > Recordings).
- Filtrer *.mp4* et vérifier le chemin Recordings (mêmes expressions que la méthode A).
- Extraire le nom sans extension (action Composer). Facultatif : normaliser en minuscules :
toLower(outputs('NomSansExtension'))
. - Obtenir les éléments (SharePoint > liste Routage Enregistrements), puis Filtrer un tableau en gardant les règles où
contains(variables('NomNormalise'), toLower(item()?['MotCle']))
. - Trier les règles filtrées par Priorite desc. (Compose/Select + Sort manuel si besoin), puis Prendre le premier.
- Copier le fichier vers DossierDestination, puis Supprimer la source.
- Option droits : si PartagerAvecGroupe est renseigné, exécuter Envoyer une requête HTTP à SharePoint pour accorder l’accès (lien direct ou attribution de rôle).
{ "method": "POST", "uri": "_api/web/GetFolderByServerRelativeUrl('@{outputs('DossierDestination')}')/ListItemAllFields/breakroleinheritance(true)", "headers": {"Accept": "application/json;odata=verbose"} }
Puis un second appel pour roleassignments/addroleassignment avec l’ID du principal (groupe M365). Cela permet d’isoler les droits du sous‑dossier si nécessaire. - Journalisation : écrire dans une liste Journal Enregistrements (date, fichier, règle appliquée, destination, statut).
Avantages : zéro retouche du flux quand une nouvelle série apparaît ; gouvernance claire ; extensible (scores/priorités). Limites : plus d’objets à gérer (liste de routage + liste de journal).
Méthode C — Séries identifiées par ID (avancé)
Si vous imposez que l’ID de réunion ou un code de série figure dans le titre de la réunion (ex. : [SRV-Q1] Sprint Review
), vous pouvez l’extraire in‑band du nom du fichier sans appeler d’API. C’est l’option la plus fiable à long terme (immutabilité de l’ID série) et la plus simple à maintenir.
Modéliser l’arborescence de destination
Pour que la navigation reste intuitive, adoptez une structure stable :
Documents (SharePoint de l’équipe)
└── Réunions
├── Sprint‑Review
│ └── Recordings
├── Copil‑Produit
│ └── Recordings
└── Démo‑Client
└── Recordings
Si votre équipe travaille par trimestre ou PI (Agile), vous pouvez ajouter un niveau 2025‑Q1, 2025‑Q2, etc. et faire pointer la règle de routage du moment vers le sous‑dossier actif.
Bonnes pratiques complémentaires
Objectif | Recommandation |
---|---|
Faciliter l’accès au bon dossier | Ajouter un lien épinglé vers la bibliothèque SharePoint « Enregistrements » dans l’onglet Fichiers du chat de la réunion. |
Limiter l’effort manuel | Nommer clairement la réunion (« [Équipe] Sujet – série X ») ; le nom est repris dans le fichier *.mp4*, ce qui facilite la détection par Power Automate ou une recherche. |
Gérer les invités externes | Prévoir un groupe de sécurité ou un lien partagé pré‑configuré pour le sous‑dossier cible afin d’éviter des ajouts manuels après chaque réunion. |
Influencer la feuille de route Microsoft | Soumettre la demande via le mécanisme de Commentaires de Teams et le portail de feedback. Plus une demande est votée, plus elle est priorisée. |
Exemple de script PowerShell (Microsoft Graph) pour déplacer automatiquement les *.mp4*
Usage : tâche planifiée toutes les 10 minutes. L’exemple ci‑dessous montre le déplacement d’un OneDrive « Recordings » vers un dossier SharePoint en fonction d’un mot‑clé trouvé dans le nom.
# Prérequis : Module Microsoft.Graph installé
# Install-Module Microsoft.Graph -Scope CurrentUser
# Scopes minimaux : Files.ReadWrite.All, Sites.ReadWrite.All, User.Read
$Scopes = @('Files.ReadWrite.All','Sites.ReadWrite.All','User.Read')
Connect-MgGraph -Scopes $Scopes | Out-Null
Select-MgProfile -Name beta # facultatif
# Paramètres
$userUPN = 'organisateur@exemple.com' # propriétaire des enregistrements
$seriesMap = @(
@{ MotCle='sprint-review'; DestSiteUrl='/sites/EquipeA'; DestPath='/Shared Documents/Reunions/Sprint-Review/Recordings' },
@{ MotCle='copil-produit'; DestSiteUrl='/sites/EquipeA'; DestPath='/Shared Documents/Reunions/Copil-Produit/Recordings' }
)
# Récupérer le OneDrive de l'utilisateur
$drive = Get-MgUserDrive -UserId $userUPN
$rootRec = Invoke-MgGraphRequest -Method GET -Uri "/drives/$($drive.Id)/root:/Recordings"
# Lister les .mp4 récents
$items = Invoke-MgGraphRequest -Method GET -Uri "/drives/$($drive.Id)/items/$($rootRec.id)/children?`$top=200"
$mp4s = $items.value | Where-Object { $_.file -and $_.name -like '*.mp4' }
foreach ($item in $mp4s) {
$nom = $item.name.ToLower()
$rule = $seriesMap | Where-Object { $nom -like "*$($_.MotCle)*" } | Select-Object -First 1
if (-not $rule) { continue }
# Obtenir le drive du site SharePoint
$site = Invoke-MgGraphRequest -Method GET -Uri "/sites/root:$($rule.DestSiteUrl)"
$sDrive = Invoke-MgGraphRequest -Method GET -Uri "/sites/$($site.id)/drives" | % value | Where-Object { $_.driveType -eq 'documentLibrary' } | Select-Object -First 1
# Obtenir (ou créer) le dossier destination
$destFolder = Invoke-MgGraphRequest -Method GET -Uri "/drives/$($sDrive.id)/root:$($rule.DestPath)"
if (-not $destFolder) {
# Création récursive des dossiers si besoin
$segments = $rule.DestPath.Trim('/').Split('/')
$current = "/drives/$($sDrive.id)/root"
foreach ($seg in $segments) {
$probe = Invoke-MgGraphRequest -Method GET -Uri "$current:/$seg"
if (-not $probe) {
$body = @{ name=$seg; folder=@{}; '@microsoft.graph.conflictBehavior'='replace' } | ConvertTo-Json
$probe = Invoke-MgGraphRequest -Method POST -Uri "$current/children" -Body $body -ContentType "application/json"
}
$current = "/drives/$($sDrive.id)/items/$($probe.id)"
}
$destFolder = Invoke-MgGraphRequest -Method GET -Uri "$current"
}
# Déplacer l'élément (cross-drive) via PATCH parentReference
$moveBody = @{
parentReference = @{ driveId = $sDrive.id; id = $destFolder.id }
name = $item.name
} | ConvertTo-Json
Invoke-MgGraphRequest -Method PATCH -Uri "/drives/$($drive.id)/items/$($item.id)" -Body $moveBody -ContentType "application/json"
}
Disconnect-MgGraph
Notes : adaptez $seriesMap
à vos séries ; gérez les collisions de noms si plusieurs enregistrements ont exactement le même nom ; ajoutez de la journalisation (Event Log ou liste SharePoint) pour l’audit.
Gestion des permissions : ce qu’il faut savoir
- Hors canal : le fichier appartient au OneDrive de la personne qui a démarré l’enregistrement. Les membres internes invités reçoivent un accès partagé avec vous automatiquement. Les externes doivent être ajoutés explicitement (ou via un lien).
- Canal : l’enregistrement appartient à la bibliothèque du site d’équipe. Les personnes ayant accès au canal héritent des droits. Les externes non membres du canal n’y accèdent pas par défaut.
- Après déplacement : si vous isolez un sous‑dossier par série (héritage rompu), pensez à octroyer les droits au groupe projet ou aux invités récurrents pour éviter des demandes d’accès.
Scénarios & architectures recommandés
Équipe produit avec 3 séries récurrentes
- Sprint‑Review (internes + PO + partenaires) → dossier dédié avec lien de partage vers partenaires externes.
- Copil‑Produit (internes seulement) → dossier avec héritage standard du site d’équipe.
- Démo‑Client (externes variables) → sous‑dossier par client (Client‑A, Client‑B) et lien spécifique par client.
Programme avec NDA et rétention
Créer une bibliothèque SharePoint « Enregistrements Confidentiels » avec un libellé de rétention (ex. 3 ans) appliqué par défaut. Le flux dépose les enregistrements sensibles dans cette bibliothèque (règle de routage par mot‑clé NDA/Confidentiel ou code de projet).
FAQ (les questions qu’on nous pose le plus)
Qui est propriétaire d’un enregistrement hors canal ?
La personne qui a démarré l’enregistrement (ce n’est pas toujours l’organisateur). C’est son OneDrive qui reçoit le fichier.
Peut‑on choisir un autre dossier par défaut pour une réunion hors canal ?
Non. Il faut passer par un canal, un flux Power Automate ou un script.
Que se passe‑t‑il si plusieurs personnes appuient sur « Enregistrer » pendant la même réunion ?
Il n’y a qu’un enregistrement actif à la fois. Si un second est lancé, il prend le relais. Le fichier final appartiendra à l’initiateur de l’enregistrement actif.
Le nom du fichier est‑il fiable pour identifier la série ?
En pratique oui, si vous standardisez vos titres de réunions (préfixe de série ou code). C’est la méthode la plus simple pour un routage automatique.
Power Automate sait‑il déplacer un fichier entre OneDrive et SharePoint dans une seule action ?
Suivant les connecteurs, le « déplacer » cross‑tenant/site n’est pas garanti. Préférez Copier (vers SharePoint), puis Supprimer la source OneDrive.
Comment gérer les invités externes récurrents ?
Créez un groupe (ou liste d’accès) dédié par série et attribuez‑le au sous‑dossier. Ainsi, les nouveaux invités héritent du bon accès via le lien partagé ou l’ajout au groupe.
Les politiques de rétention déplacent‑elles les fichiers ?
Non. Elles conservent/suppriment selon les règles, sans changer l’emplacement. Utilisez‑les en complément d’un flux de déplacement.
Et si l’organisateur change en cours de série ?
Le flux s’appuie sur le OneDrive de la personne qui appuie sur Enregistrer. Pour éviter les trous : déployez le flux au niveau de l’équipe (environnement solutionné) et/ou formez les animateurs à démarrer l’enregistrement.
Check‑list de mise en œuvre
- Décider si la série doit être dans un canal (solution native) ou hors canal (flux/script requis).
- Définir l’arborescence SharePoint cible (bibliothèque, dossier, sous‑dossiers par série).
- Normaliser le nommage des réunions (préfixe/suffixe de série, code projet).
- Créer la liste de routage (si méthode B) et les groupes d’accès par série.
- Déployer le flux Power Automate (copier → supprimer), tester avec un enregistrement factice.
- Configurer la rétention (si besoin) et la journalisation (audits).
- Documenter dans le wiki d’équipe (« où retrouver les enregistrements », « qui a accès »).
Exemple étendu : construire un sous‑dossier automatique « par trimestre »
Vous souhaitez que chaque enregistrement aille dans /Sprint‑Review/<AAAA‑Qx>/Recordings selon la date de la réunion ? Ajoutez, après l’étape d’extraction du nom, une étape Composer (format du trimestre) :
concat(formatDateTime(utcNow(),'yyyy'),'-Q', string(div(add(int(formatDateTime(utcNow(),'MM')),2),3)))
Ensuite, utilisez l’action Obtenir le dossier (HTTP SharePoint ou Créer un dossier si absent) pour garantir l’existence du sous‑dossier AAAA‑Qx avant la copie.
Erreurs courantes à éviter
- Oublier les externes : sans droits explicites sur le sous‑dossier, ils verront un message « Accès refusé ».
- Déplacer au lieu de copier : un échec en cours de route peut perdre la seule copie. Préférez « Copier puis Supprimer » avec journalisation.
- Expressions fragiles : privilégiez des mot‑clés stables (préfixes) plutôt que de parser finement l’horodatage.
- Arborescence volatile : une fois publiée, la garder stable pour éviter les liens obsolètes (Teams met en cache certains emplacements).
Conclusion
À ce jour (septembre 2025), Teams ne permet pas de choisir le dossier d’enregistrement par défaut pour une réunion hors canal ni de créer automatiquement un sous‑dossier par série. Les solutions passent donc par : planifier les réunions dans un canal quand c’est viable, automatiser le déplacement avec Power Automate (ou un script via Graph) et organiser les droits/la gouvernance côté SharePoint/OneDrive. En attendant une éventuelle fonctionnalité native, Power Automate reste l’approche la plus souple, maintenable et sécurisée pour obtenir le comportement souhaité.
Annexe : modèle de « règle de routage »
Champ | Type | Exemple | Remarques |
---|---|---|---|
Titre | Texte | Sprint‑Review | Nom lisible de la série |
MotCle | Texte | sprint‑review | Comparé en minuscules au nom de fichier |
DossierDestination | Texte | /Shared Documents/Reunions/Sprint‑Review/Recordings | Chemin relatif SharePoint |
Priorite | Nombre | 100 | Permet de trancher en cas de plusieurs correspondances |
PartagerAvecGroupe | Texte | Grp‑Partenaires‑SRV | Facilite l’attribution de droits après déplacement |
Rappel synthétique
- Hors canal → OneDrive > Recordings (initiateur de l’enregistrement)
- Canal → SharePoint > Documents > <Canal> > Recordings
- Pas de paramètre pour changer le dossier par défaut hors canal
- Solutions : canal (si possible) │ Power Automate (copie + suppression) │ Script Graph │ Rétention en complément