From Sharepoint to Viva Engage

Anonymous
2024-08-23T12:31:40+00:00

Hi,

There should be the same number of members in my Viva Engage community and on SharePoint, but currently, there is a difference of 31 members between the two. Could you please advise on how I can resolve this issue to ensure that both platforms have the same number of members?

Regards,

Anand

Microsoft 365 and Office | SharePoint | For education | MacOS

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

3 answers

Sort by: Newest
  1. Anonymous
    2024-08-26T07:03:41+00:00

    Hi Anand,

    Viva engage does not provide a built-in function to export community members. However, I found it might be achieved using powershell scripts and API token. Though I tested it successfully on my end, please be noted it will have some risk to run the script. Here are details for your reference.

    1. Go to https://www.yammer.com/client_applications to create an App and generate the token.

    1. Enter the correct token in below script and run it.

      PowerShell script to export Yammer groups, members and admins

      Token hint: https://support.office.com/en-us/article/export-yammer-group-members-to-a-csv-file-201a78fd-67b8-42c3-9247-79e79f92b535#step2

      Token hint2: https://www.yammer.com/client_applications

      Pre-requisite: Enable Private Content Mode so the export includes private groups you're not a member of

      Remember to clean up token & revert Content Mode when complete

      Set variables

      $Token = "21XXXXXXXXX-0erMknXXXXXXX7ORqr0w" $Headers = @{ "Authorization" = "Bearer "+$Token }

      Get a list of Yammer groups. Calls in pages as each search is limited to 50 results

      $GroupCycle = 1 DO { $GetMoreGroupsUri = "https://www.yammer.com/api/v1/groups.json?page=$GroupCycle" write-host ($GetMoreGroupsUri) $MoreYammerGroups = (Invoke-WebRequest -Uri $GetMoreGroupsUri -Method Get -Headers $Headers).content | ConvertFrom-Json $YammerGroups += $MoreYammerGroups $GroupCycle ++ $GroupCount = $YammerGroups.Count } While ($MoreYammerGroups.Count -gt 0) $YammerGroups | Export-Csv group-export.csv -NoTypeInformation $YammerGroups | select type,id,full_name,privacy,created_at

      For each group, list the members and the admins. Calls in pages as each search is limited to 50 results

      $GroupAdmins = @() $GroupMembers = @() $GroupSummary = @() $GroupCount = 0 foreach ($group in $YammerGroups) { $GroupId = $group.id [string]$GroupCreatedAt = $group.created_at $GroupCycle = 1 DO { if ($GroupCycle -eq 1) { $AdminCount = 0; $GroupCount = 0 } $GetGroupMembersUri = "https://www.yammer.com/api/v1/groups/$GroupId/members.json?page=$GroupCycle" write-host ("REST API CALL : $GetGroupMembersUri") $MoreGroupMembers = ((Invoke-WebRequest -Uri $GetGroupMembersUri -Method Get -Headers $Headers).content | ConvertFrom-Json).users | select @{N='group_id';E={$group.id}},@{N='group_name';E={$group.full_name}}, @{N='group_privacy';E={$group.privacy}}, @{N='group_show_in_directory';E={$group.show_in_directory}}, @{N='group_created_at';E={$GroupCreatedAt}}, type, @{N='user_id';E={$_.id}}, full_name, email, state, is_group_admin foreach ($member in $MoreGroupMembers) { if ($member.is_group_admin -eq "True") { $GroupAdmins += $member $AdminCount ++ } $GroupMembers += $member $GroupCount ++ } $GroupCycle ++ }
      While ($MoreGroupMembers.count -gt 0) $groupResult = @{ Group_Name = $group.full_name ID = $group.id State = $group.state Privacy = $group.privacy Show_In_Directory = $group.show_in_directory Created = $group.created_at Member_Count = $GroupCount Admin_Count = $AdminCount } $groupObject = New-Object -TypeName PSObject -Property $groupResult $groupSummary += $groupObject #$groupSummary += $groupResult write-output $groupObject }

      Export the results to CSV files

      $groupSummary | Select Group_Name, ID, State, Privacy, Show_In_Directory, Created, Member_Count, Admin_Count | export-csv group-summary.csv -NoTypeInformation $groupAdmins | export-csv group-admin-export.csv -NoTypeInformation $groupMembers | export-csv group-member-export.csv -NoTypeInformation

    After that, you will get members of each community in 4 .csv files.

    At last, if the information we provided give some direction for the issue, please vote at bottom of the answer, with your vote, other users who are facing same query can easily find this thread and check suggestion when they search on community. Your vote helps other user to resolve their queries.

    Thank you for your cooperation and have a nice day!

    Best Regards,

    Sophia

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2024-08-23T15:26:01+00:00

    Thank you for your assistance. May I also inquire if you could guide me on how to export the complete user list from my Viva Engage community?

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2024-08-23T14:13:48+00:00

    Hi Anand,

    Thank you for bringing this to my attention. The discrepancy in member counts between your Viva Engage community and SharePoint can occur due to a few different reasons. Here are some steps you can take to address the issue:

    1. Bulk Update from Microsoft Entra: If your organization manages users through Azure Active Directory, consider performing a bulk update to ensure that all members are consistently reflected across both platforms.
    • Sign in to Microsoft Entra with tenant admin account, find the related group/community and bulk import members again to trigger membership sync.
      Wait for 24 hours and check the result.
    1. Manual Reconciliation: If the above steps do not resolve the issue, you may need to manually compare the member lists from Viva Engage and SharePoint. Identifying and adding any missing members manually can ensure both platforms are aligned.
    • Go to viva engage community > click "Members" on top right side > add members one by one or bulk add members with "Import from csv" option

    1. Contact Microsoft support: If none of above suggestions suit your situation, you can create a ticket to Microsoft support engineer to request Microsoft triggering sync from backend.
    • If you are the Microsoft 365 admin of your organization, you can sign in to Microsoft 365 admin center with your Microsoft 365 admin account, and select Support > Help and support, enter your question and select Contact support.

    If you need further assistance with any of these steps or have any further questions, please don't hesitate to reach out with more details. I'm here to help.

    Thank you for your cooperation and have a nice day!

    Best Regards,

    Was this answer helpful?

    0 comments No comments