Multiple Choices

Have you tried to update a multi select choice field in a SharePoint list with Power Automate?

HTTP request vs update item action

Some simple tasks in Power Automate can look really hard. Although once you’ve found the solution you might find that it is simple to implement your solutions.

Yesterday I was contacted about how to update multiple choice fields in SharePoint. In the past I even used HTTP requests to sort this out, but actually the better solution is to use the Create item or update item action that is available as part of the SharePoint connector.

Multi select choice field in SharePoint

Before I look at how to update a multi select choice field I will start by creating a multi select choice field in my SharePoint list:

Multi select choice field in SharePoint

My choice field has the options of A .. G  available as check boxes on my test list.

Convert Text into Array

Within my flow I’m creating a compose action that holds the data. You might find that this data actually comes form somewhere, and it might have a slightly different format. For simplicity sake I’ve chosen to make the options available in text format separated by ;# so that have the items available that I want to select on my SharePoint list item.

Starting Point

The first step is to create an Array out of this text. The split function  sorts this out for me.

Split multi Choice Text

We now have an array of the options as shown below:

Array of options

I know that my Create item action will require the following format:

[
{
"Value": "A"
},
{
"Value": "B"
},
{
"Value": "D"
},
{
"Value": "G"
}
]

Transform arrays

We now just need to transform the array that we have with the array that we want

Item

Create the item in SharePoint

Now creating an item with  the choice field set is a piece of cake.

Piece of cake

The Create item action in the SharePoint connector should just be configured as shown below. In the screenshot below the flow will update a multi select choice field using the output from my select action.

Update a Multi select Choice Create Item

Update a Multi Select Choice Field

To update the multi select choice field is now the same as the created Simply select the update item action and repeat the above steps.

Avatar for Pieter Veenstra

By Pieter Veenstra

Business Applications Microsoft MVP working as a Principal Architect at HybrIT Services Ltd. You can contact me using contact@sharepains.com

21 thoughts on “Update a multi select choice field in a SharePoint list with Power Automate”
  1. Hi Pieter,
    Can you help on scenario you are using flow to read list items whereby one of the column is multi choice with multi value? For example you want to create html table and send email with selected list items which include value from the Multi-choice column.
    Using above example, i struggle when it comes to assigning one list item the correct value for each column

    1. Hi Christobal,

      When you read the values form the list item you will end up with potentially multiple values for the multi value column. This will mean that you will need to take the multi column and read the values from the collection and format the html for this manually. you could probably create an html list from the collection of values selected and then include that in your HTML table cell.

  2. Hi Peter,
    Is there a way to split the values from a multi choice column and put them into separate columns with flow? I have a list with a lookup column to another list and it allows us to check multiple choices (Category ID). I need to be able to filter the list using an Embed Web part and display all of the values from that look up column so people can see the descriptions for the ID chosen. So far our old way of doing this we have only had up to 3 ID’s entered into the Category ID field, we then have to scroll to the end of the document and find out what those ID’s mean. I am trying to create solution in SharePoint and it worked great when I thought ithe ID field would only have one value, Then I realized the user wants an option to have multiple values selected which totally through my workflow off and of course the embed code is not very friendly for connecting and filtering views.

    1. You could go multiple ways about this.

      1. Use a flow to ‘translate’ the multi select column into multiple text fields. This is if you know how many options can be selected.
      2. If the multi select options are static you could also consider creating true/false fields for each potentially selected value

      The list of options selected will just be an array of data which you could process in your flow.

      An alternative you could consider is a custom form created using PowerApps and then do all the processing within the app form.

  3. Hi Pieter,

    I have similar requirement to populate data from Excel into SPO site which has a column with multiple choice (checkbox). I have followed your steps and it worked, but the data is getting populated with extra syntax. like…

    As per your steps, when I use Output of “Select – Data Operation” in the Create item, then the item is getting created exactly as below
    [{“Value”:””},{“Value”:”Team”}]

    And then i tried just using the Output of “Compose – Data Operation” (2nd with Split) in the Create item, then the item is getting created exactly as
    [“”,”,”Team”]. This seems to be close what i am expecting, but has extra syntax.

    Could you please advise. Thank you.

  4. Peter,
    Thanks for the response. I actually realized that because the output of a multichoice lookup column was an Array, I just had to Initialize a Variable (Type Array) Then Append it with the values of the Lookup column. I then was able to use a condition to check the length of the array to determine how many indexes there were to call the variables I would have to use in the individual columns. sadly it did take 5 conditions (If length was 1 then Update List Item Column 1 with Variables(Outputs)[0], if Length was 2 then Update List Item Column 1 with Variables(Outputs(0] and Column 2 with Variables9Outputs[1] etc. etc.)

  5. Hi, I hope you can help me. I had a flow that added a new row in excel every time a new item was created on an specific SharePoint list, it worked perfectly. After some time I had to add a multiple select choice field in my list, and since then the flow doesn’t run well, the issue is when exporting that multi-select field. I don’t know how to make it work. (I’m just an amateur user).

  6. Hi!

    This has helped me a lot (to understand why the Sharepoint connector doesn’t like my array) but I’m struggling to understand how you transformed the array from it’s initial format to the later one – do you have any more detail at all, please?

    Thanks for your help!

    1. Hi Chris,

      That is done using the select. Within the select you can specify which json properties you want and which values they should have. In the select you feed the select with and array that is then processed. If you need any further help on this feel free to hit the chat button on my site.

  7. I’m getting the same problem as Murthy in my results are [{“Value”:””},{“Value”:”Team”}]. I’ve looked at your filtertering an array post but I cannot work out where or how to put this filter into the Flow and everything I have tried fails in one way or another. Any help would be appreciated. Thanks

      1. Hi, I was having an issue with filter array removing blanks but I’ve resolved that now. My issue is the result I’m getting in my choice column is [{“Value”:”A”},{“Value”:”B”}] which looks like a string and it’s not actually selecting / updated the choices.

  8. Struggled to get this working; but noticed your ‘MultiChoice’ field looked different to mine. When I clicked on the icon on the right of the field to collapse the ‘New Item’ menu (the icon changes to a ‘T’ then), it finally worked… \o/

    I’d gotten my array from a multi-select field in MS Forms; to get this to the ‘Select’ stage, I first needed to set a condition to check there was a response in that question, if yes, ‘Parse JSON’ on the responses; then straight into the select, bypassing the ‘Starting point’ and ‘Compose’ actions in your really helpful example above.

  9. Hi,

    Why in the very first compose action, inputs are taken as A;#B;#D;#G and not the field MultiChoice? and if values of Multichoice are given as inputs then why all values are not supplied?

  10. Hi Pieter, thanks so much for writing this up! Could I get some more details about the Transform Array step? In the “From” field, which output is that? Then when it comes to “item” in the Map field, do you enter any other values in the “Item” brackets within the expression?

    1. Hi Gabriel,

      The From field is your starting array.In my case I created an array in a compose. In your case this could come from wherever your data lives. e.g. SharePoint or SQL

      the item functions in the select all use the following syntax

      item()?['fieldname_in_the_source_array']

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from SharePains by Microsoft MVP Pieter Veenstra

Subscribe now to keep reading and get access to the full archive.

Continue Reading