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

0
265

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.

LEAVE A REPLY

Please enter your comment!
Please enter your name here