Add Group members & owners delta link
Hi,
The delta link is actually available for Users and Groups, but not for group members and group owners.
It's not unusual for a tenant to have groups with tons of members each, so, a delta link to get only changes (members added, changed or removed), would be massively useful.
The "DeltaMembers" property available from groups, by using the delta, it's not useful for this matter because it' s only populating the ID property and, also, you are not able to see if that ID is related to an owner or a member.
Looking forward to see the feature available for V1 api.
Thanks

The ability to track changes to group memberships is already there. If you would like to see specific functionality for group owners, can you please open a new feature request so others can vote/comment on that specifically?
Here are some sample requests for tracking membership changes only:
All groups:
GET https://graph.microsoft.com/v1.0/groups/delta?$select=id&$expand=members
A specific group:
GET https://graph.microsoft.com/v1.0/groups/delta?$filter=id eq ‘groupId’&$select=id&$expand=members
4 comments
-
Paolo Regoli commented
Hi @Peter Ciszewski,
Thanks for your reply.
The first option you suggested:
https://graph.microsoft.com/v1.0/groups/delta?$select=id&$expand=membersincludes the members array, exposing for each member ONLY the id, so, we don't know if every single member is an owner, a member, not even his userPrincipalName or displayName.
This way we are REQUIRED to get members by invoking an api for each single group, this way the delta link power is completely useless.The sample response is:
"id": "1e770bc2-3c5f-487f-871f-16fbdf1c8ed8",
"members@delta": [
{
"@odata.type": "#microsoft.graph.user",
"id": "8b209ac8-08ff-4ef1-896d-3b9fde0bbf04"
}The second option you suggested:
https://graph.microsoft.com/v1.0/groups/delta?$select=id&$expand=membersis not working at all. But if it would have worked, we are required to invoke an api for every single group to get members info other than id.
Actually these are the main differences I would to spot on:
1) Getting Groups WITHOUT delta (eg. https://graph.microsoft.com/v1.0/groups/?$expand=members):
{
"id": "02bd9fd6-8f93-4758-87c3-1fb73740a315",
"deletedDateTime": null,
"classification": null,
"createdDateTime": "2017-07-31T18:56:16Z",
"creationOptions": [
"ExchangeProvisioningFlags:481"
],
"description": "Welcome to the HR Taskforce team.",
"displayName": "HR Taskforce",
"groupTypes": [
"Unified"
],
"members": [
{
"@odata.type": "#microsoft.graph.user",
"id": "4782e723-f4f4-4af3-a76e-25e3bab0d896",
"deletedDateTime": null,
"accountEnabled": true,
"ageGroup": null,
"businessPhones": [
"+1 858 555 0110"
],
"city": "San Diego",
............
1) Getting Groups WITH delta (eg. https://graph.microsoft.com/v1.0/groups/delta?$expand=members):
{
"id": "02bd9fd6-8f93-4758-87c3-1fb73740a315",
"deletedDateTime": null,
"classification": null,
"createdDateTime": "2017-07-31T18:56:16Z",
"creationOptions": [
"ExchangeProvisioningFlags:481"
],
"description": "Welcome to the HR Taskforce team.",
"displayName": "HR Taskforce",
"groupTypes": [
"Unified"
],
members@delta": [
{
"@odata.type": "#microsoft.graph.user",
"id": "4782e723-f4f4-4af3-a76e-25e3bab0d896"
}Could we have a members@delta properties enrichment by exposing the UserprincipalName, DisplayName and isOwner?
If it sounds better for you guys, I will open a new Issue/Feature request.
Thank you
-
Paolo Regoli commented
Hi there,
Thanks for your reply but I think My request was missunderstood. If you are using the delta segment in the groups endpoint, and expanding members, the deltaMembers property will be only populated by Ids, no other properties like displayName or UserPrincipalName...It will be not that useful this way..
You can try by running this on G.explorer:
https://graph.microsoft.com/v1.0/groups/delta?$expand=membersYou will see for members, only Ids will be populated.
So you will be required to hit other endpoints like owners & members to get additional infos.In my opinion the @deltaMembers property should be populated with Id, UserPrincipalName, DisplayName and the flag if he's a member or owner.
Thank you
-
Paolo commented
Currently the groups api includes the possibility to use the delta. Applying the $extend=members it's possibile to retrieve the @deltaMembers collection only exposing the Id and @removed in case of removed member. By using the @deltaMember property there are no chances to understand if the member is an owner or not, so, the Only way to get a consistent collection of members and owners is to invoke the apis group/groupid/members and group/groupid/owners. For these 2 endpoints the delta link is not available, not even a Next link. It would be Extremely helpful to bind the @deltaMembers property with additional infos as IsOwner, userprincipalName, etc.. to get only the members and owner changes straight from groups api with no need to invoke 2 additional endpoints for members and owners.
Thanks -
Carmine Punella commented
This will be a killer feature in our business too! Please do it!