HomeMicrosoft 365Comment inventorier Viva Engage (Yammer) dans Microsoft 365 et...

Comment inventorier Viva Engage (Yammer) dans Microsoft 365 et détecter les communautés inactives, orphelines ou faiblement engagées

Viva Engage (anciennement Yammer) joue un rôle central dans la communication interne et la culture organisationnelle des entreprises. Commençant comme un outil social, il a évolué pour devenir un espace stratégique pour les communautés, les annonces, le storytelling et le partage de connaissances. Mais au fur et à mesure que son adoption s’élargit, une question cruciale émerge pour les administrateurs M365 :

Comment inventorier toutes les communautés Viva Engage du tenant et déterminer lesquelles sont actives, inactives ou orphelines ?

Contrairement à d’autres applications M365 (Planner, Forms, Lists), Viva Engage ne repose pas encore sur Microsoft Graph. Son inventaire nécessite l’utilisation de l’API Yammer. Dans cet article, nous allons voir :

  • ce qu’il est possible d’inventorier,
  • comment analyser l’activité réelle,
  • comment identifier les communautés abandonnées,
  • et un script pour obtenir un rapport complet.

Pourquoi Viva Engage n’offre pas une API Graph (encore)

Alors que Microsoft tend à unifier ses services sous Microsoft Graph, Viva Engage reste (pour l’instant) basé sur :

  • l’infrastructure Yammer,
  • ses endpoints REST historiques,
  • un modèle d’authentification OAuth indépendant.

Cela implique :

❌ pas d’appel Microsoft Graph pour inventorier Viva Engage
❌ pas de PowerShell natif basé sur Graph ou SPO
✔ Inventaire possible et fiable via Yammer API

Ce que l’on peut inventorier avec Viva Engage (via l’API Yammer)

Grâce à l’API, il est possible de récupérer :

✔ La liste complète des communautés

Nom, ID, description, propriétaires, visibilité, date de création.

✔ Les propriétaires, administrateurs et membres

Avec identification via Azure AD (par correspondance UPN / ObjectID).

✔ L’activité d’une communauté

En récupérant :

  • messages récents,
  • commentaires,
  • réactions (“likes”),
  • tendances de publication.

✔ Les communautés inactives

Basées sur :

  • le dernier message,
  • l’absence d’engagement,
  • une baisse significative du volume d’activités.

✔ Les communautés orphelines

Lorsqu’un propriétaire n’existe plus dans Azure AD.

Comment mesurer l’inactivité d’une communauté ?

Trois stratégies :

1️⃣ Dernière activité (la plus fiable)

On analyse la date du dernier :

  • message,
  • commentaire,
  • like.

2️⃣ Engagement moyen sur 90 jours

On calcule :

  • nombre moyen de messages / réactivité,
  • tendance ↗️ ou ↘️.

3️⃣ Propriétaire inactif ou supprimé

Une communauté dont le propriétaire n’existe plus est orpheline.

Script PowerShell

Ce script :

  • inventorie toutes les communautés,
  • récupère la dernière activité,
  • calcule l’engagement moyen,
  • identifie les propriétaires,
  • détecte l’inactivité (> 6 mois),
  • détecte les communautés orphelines.

⚠️ Prérequis : un token OAuth Viva Engage (“Bearer XXXXXX”).

# ==========================================================
# Inventaire Viva Engage (Yammer) – Script Avancé
# Analyse des communautés, activité, engagement, orphelins
# ==========================================================

$token = "Bearer VOTRE_TOKEN_ICI"

$headers = @{
    "Authorization" = $token
}

Write-Host "Récupération des communautés Viva Engage..." -ForegroundColor Cyan
$groups = Invoke-RestMethod -Headers $headers
    -Uri "https://www.yammer.com/api/v1/groups.json"
    -Method Get

$results = @()

foreach ($group in $groups) {

    Write-Host "Analyse de la communauté : $($group.full_name)" -ForegroundColor Yellow

    # Récupérer les messages de la communauté
    $messages = Invoke-RestMethod -Headers $headers
        -Uri "https://www.yammer.com/api/v1/messages/in_group/$($group.id).json"
        -Method Get

    $lastMessage = $messages.messages |
        Sort-Object created_at -Descending |
        Select-Object -First 1

    # Calcul engagement sur 90 jours
    $recentMessages = $messages.messages |
        Where-Object { (Get-Date $_.created_at) -gt (Get-Date).AddDays(-90) }

    $engagementScore = $recentMessages.Count +
                       ($recentMessages.threaded_starter.Count * 0.5)

    # Détection orphelin
    $owner = $group.creator_id
    try {
        $aadUser = Get-MgUser -UserId $owner -ErrorAction Stop
        $orphan = $false
    }
    catch {
        $orphan = $true
    }

    $results += [pscustomobject]@{
        GroupName        = $group.full_name
        GroupId          = $group.id
        CreatedOn        = $group.created_at
        OwnerId          = $group.creator_id
        MembersCount     = $group.stats.members
        LastActivity     = $lastMessage.created_at
        IsInactive       = $(if ($lastMessage.created_at -lt (Get-Date).AddMonths(-6)) {"Yes"} else {"No"})
        Engagement90Days = $engagementScore
        IsOrphan         = $(if ($orphan) {"Yes"} else {"No"})
    }
}

$filename = "VivaEngageInventory_Advanced_$(Get-Date -Format 'yyyyMMdd').csv"
$results | Export-Csv $filename -NoTypeInformation -Encoding UTF8

Write-Host "Inventaire avancé terminé ! Fichier généré : $filename" -ForegroundColor Green

Exemple de rapport avancé

CommunautéMembresDernière activitéEngagement (90 j)Orpheline ?Inactive ?
IT Cloud542025-01-1082
RH Communications1322023-03-010
Projet Phoenix82022-11-220
Nouvelles internes2502025-02-02155

Même si Viva Engage n’est pas encore intégré dans Microsoft Graph, il est possible d’obtenir une véritable vue d’ensemble grâce à l’API Yammer :

✔ inventaire complet des communautés,
✔ analyse de l’activité réelle,
✔ calcul de l’engagement,
✔ détection de l’inactivité,
✔ identification des communautés orphelines,
✔ exportation pour Power BI ou rapport M365.

C’est un outil puissant pour moderniser la gouvernance interne, améliorer la qualité des communautés et soutenir la stratégie d’engagement organisationnelle.

Charles Jenkins
Charles Jenkinshttps://trivium365.com/
Fort de plus de 15 ans d’expérience, il accompagne les organisations dans l’adoption des outils Microsoft pour optimiser leur collaboration et leur productivité. Passionné par l’innovation et l’amélioration continue, il met son expertise au service des équipes pour les aider à tirer le meilleur parti de la transformation numérique.