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 ourgroupNamesvariable

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
%7Band%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
Microsoft Teams: AI-powered live interpretation on Teams Phone devices
AI-powered live interpretation will be available on certified Microsoft Teams Phone devices for users with a Microsoft 365 Copilot license sta...
Microsoft 365 Copilot: Admins will be able to enable third‑party model providers for specific users and groups
Admins will soon be able to assign third-party AI model providers like Anthropic and xAI to specific users or groups in Microsoft 365 Copilot ...
Microsoft Teams: Add Breakout Room Participants in Bulk Using CSV
Support for bulk breakout room participant assignment using a CSV file, helping organizers save time when setting up breakout rooms. Product M...
Microsoft Viva: Copilot Analytics: “All”- licensed user page Copilot dashboard
The Copilot Dashboard adoption landing page will be updated to show a unified view of Copilot adoption across the organization. Instead of the...
Microsoft Teams: Enhanced cross-platform join via SIP for Teams Rooms on Android
Enable Teams Rooms on Android to join third-party meetings via SIP, delivering seamless cross-platform interoperability. This capability ensur...
Microsoft Teams: Book future meetings directly from Teams panels
You can now make an upcoming meeting reservation from a Teams panel by browsing the calendar on the device and choosing any open time slot thr...
Microsoft Teams: Queues app on Teams mobile
Manage call queues and engage with customers wherever work takes you. The Queues app on Teams mobile enables on the go workers to stay connect...
SharePoint: Lists as a knowledge source for agents in SharePoint and OneDrivea
We’re introducing support for Microsoft Lists as a knowledge source for custom agents in SharePoint and OneDrive. These custom agents can now ...
Conditional Access Policies are the Best Way to Block Access to Microsoft 365
Conditional access policies are very powerful. A beta feature appears to support time-limited blocks, but maybe the new feature is not needed ...
Planner tab support for Shared and Private Channels in Microsoft Teams
Microsoft Planner tabs will be supported in Microsoft Teams Shared and Private channels starting mid-May 2026. Users can add new or existing p...