Populate SharePoint List mulitple choice column with Microsoft 365 Groups-and add some List formatting

Recently, a customer asked me if I could automagically populate Microsoft 365 Group Names to a multiple choice column in a SharePoint list. Of course I told them that one can create an ootb Person field and allow group selection, but that not quite what they wanted. So I built a simple Power Automate flow that would populate the choice column and and applied some nice list formatting to it.
The Power Automate flow
Get your groups
- We trigger the flow as per our needs (manually, if there is not a lot of change in groups) or on a schedule (if there is a lot of changes in groups)
- we then initialize a variable (I used string, but you can also do an array) for the
groupNames
- then we use the Azure AD Groups - List Groups action to list all groups. Filter if needed!
- Then we append the
Name
(and a comma) in a loop to ourgroupNames
variable
Obtain listguid and fieldguid
Now we need to obtain 2 things
- the listguid of our SharePoint list: Select the Settings gear ⚙️ on your list, List Settings, you will find it in the URL. The List guid sits right in between
%7B
and%7D
(Of course there are a gazillion of other ways to obtain this, but that is a super easy one) - the fieldguid of the field that we are trying to populate: You can either follow this post here or stick with me and:
- Use Send an HTTP request to SharePoint
- Method: Get
- URI:
_api/web/Lists/GetById('@{variables('listGuid')}')/Fields
This will return a massive json object from which you can now find the id
of the field you are interested in.
Patch the choice column
As a last step, we just patch our choice column with the groupNames. As we comma-separated the variable, we need to make sure that we remove that comma now:
- Use Send an HTTP request to SharePoint
- Method: Patch
- URI:
_api/Web/Lists(guid'listGuid')/Fields(guid'fieldguid')
- Headers:
- Accept: application/json;odata=verbose
- Content-type: application/json;odata=verbose
- Body:
{
"__metadata": {
"type": "SP.FieldMultiChoice"
},
"FieldTypeKind":15,
"Choices": {'results':[@{substring(variables('groupNames'),0, sub(length(variables('groupNames')),1))}]}
}
If we now check in SharePoint, this already looks good, but I want to improve the experience with some colors.
Some List Formatting
What I want is a refection of which department is selected - remember that this is a multiple choice field? Let’s make that happen!
- Go tou your list
- Select the multiple choice field > Column settings > Format this column
- Select Advanced mode
- Delete the code in the box
- Paste in this snippet
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"children": [
{
"elmType": "div",
"txtContent": "=if(indexOf(@currentField, 'Dept-Finance') >= 0, 'Dept-Finance', '')",
"style": {
"display": "inline-block",
"width": "25%",
"background-color": "=if(indexOf(@currentField, 'Dept-Finance') >= 0, '#ffcc99', 'transparent')",
"color": "black",
"text-align": "center",
"padding": "5px"
}
},
{
"elmType": "div",
"txtContent": "=if(indexOf(@currentField, 'Dept-IT') >= 0, 'Dept-IT', '')",
"style": {
"display": "inline-block",
"width": "25%",
"background-color": "=if(indexOf(@currentField, 'Dept-IT') >= 0, '#ccffff', 'transparent')",
"color": "black",
"text-align": "center",
"padding": "5px"
}
},
{
"elmType": "div",
"txtContent": "=if(indexOf(@currentField, 'Dept-HR') >= 0, 'Dept-HR', '')",
"style": {
"display": "inline-block",
"width": "25%",
"background-color": "=if(indexOf(@currentField, 'Dept-HR') >= 0, '#ff9999', 'transparent')",
"color": "black",
"text-align": "center",
"padding": "5px"
}
},
{
"elmType": "div",
"txtContent": "=if(indexOf(@currentField, 'Dept-Marketing') >= 0, 'Dept-Marketing', '')",
"style": {
"display": "inline-block",
"width": "25%",
"background-color": "=if(indexOf(@currentField, 'Dept-Marketing') >= 0, '#b3ffcc', 'transparent')",
"color": "black",
"text-align": "center",
"padding": "5px"
}
}
]
}
How does this list formatting work?
We separate into the number of <div>
we need (note this is just an example, there were way more groups to select from) and that set the width
to the percentage the <div>
may consume. The colors are applied dynamically using indexOf(@currentField, 'Dept-Name') >= 0
, which checks if the department is selected in the column. Each part of the cell shows the department name if it is selected. If the department is not selected, the <div>
will be empty and have no background color (transparent
).
Conclusion
Good old Send and HTTP request to SharePoint saved the day again! No need for app registrations, but a super straight forward flow that populates the multiple choice colum to our needs. Of course you don’t need to do groups, but can apply any array that you fits your use case!
Published on:
Learn moreRelated posts
Deprecation of MS-APP-ACTS-AS header in Shifts Management Microsoft Graph APIs
In app-only access scenarios, Shifts Management Graph APIs previously required the MS-APP-ACTS-AS: userId header to indicate the user on whose...
Microsoft 365 Copilot Services Outsourcing: Smartest Move for Business Growth!
In an era where AI is reshaping how businesses operate, the race to adopt the latest technologies is intensifying. One of the most exciting de...
Microsoft Defender for Office 365: AI-powered submissions response for improved result explainability
Microsoft Defender for Office 365 is introducing AI-powered explanations for email submission results, enhancing clarity on why messages are c...
Microsoft Teams: Presenters can promote attendees to the green room
Presenters in Microsoft Teams can now promote attendees from the waiting room to the green room using the Participants roster. This update is ...
Microsoft SharePoint: Header and Footer enhancements
Microsoft SharePoint is updating site headers and footers for a more modern, customizable experience, starting in July 2025. Enhancements incl...
Microsoft Teams admin center: Apply only configured settings from configuration profiles for Teams Android devices
Admins will have more granular control over configuration profiles for Teams Android devices, applying only explicitly configured settings and...
Microsoft Teams: In-app survey feedback policies will be managed by default with Microsoft 365 Cloud Policy
Microsoft Teams in-app survey feedback policies will be managed by Microsoft 365 Cloud Policy by default, starting late June 2025. This change...
Microsoft Teams: New feature suggests contacts for call transfers on Teams Phone devices
Microsoft Teams is introducing intelligent suggestions for call transfers on Teams Phone devices to streamline the process. This feature will ...
Announcing the Microsoft 365 Copilot app for Mac
Microsoft 365 Copilot app for Mac will be available for download in late June 2025. Mac users can access AI-powered tools directly from the Do...
Microsoft 365 Copilot: Visual Creator Agent will no longer be pre-installed
Microsoft will no longer pre-install the Visual Creator agent in Microsoft 365 Copilot Chat starting mid-July 2025. Users can still generate i...