“Is there an easy way to update only a single multiple lookup column in SharePoint with a Power Automate flow? What would it look like?”
The SharePoint lookup column is one of the more challenging columns to update. You can’t update it to a value directly, you must use the value lookup id. That’s the id of the entry in the source list. If it’s just a single lookup value, you can use the simple HTTP request to update the column. But with the multiple lookup column the value in the request is different.
HTTP request to update multiple lookup column
Similar to the update of a multiple choice column, you must use the correct separator between the values. For the choice column it was ‘;#’. For the lookup column it’s the same, but twice: ‘;#;#’. As an example, to update lookup values with id 1, 2 and 3 it’ll look as below:
1;#;#2;#;#3
That’s the id’s format to use in the <ValueToUpdate> field in the HTTP request.
Method: POST
Uri: _api/web/lists/GetByTitle('<ListName>')/items(<ItemID>)/validateUpdateListItem
Body:
{
"formValues":[
{
"FieldName": "<FieldToUpdate>",
"FieldValue": "<ValueToUpdate>"
}
]
}
Note: < … > are placeholders, replace them including the < and >.
"FieldValue": "1;#;#2;#;#3"
Summary
The need to update multiple lookup SharePoint column is not as common as the others when using Power Automate. More often it’s a multiple people picker or multiple choice column, but if it’s a lookup, it might be confusing. While the validateUpdateListItem function is very easy to use, you can spend a lot of time searching for the right FieldValue. It differs depending on the column type, and then even more if it’s single or multiple selection. But once you know the right format, you just need to build the right string, e.g. extract it from an array, and use it to update the item.
Hi Tom
thanks a lot for another great post on your blog.
I successfully implemented your suggested http request.
However, even though my flow correctly inputs 5 lookup Id’s, the maximum lookup items my flow can map to the sharepoint item seems to be 3.
Any idea why the http request can only handle max. 3 lookup column Id’s correctly at a time?
thanks for your valuable help!
right after posting my remark above I realized that my separator was not correct. somehow I didnt implement your suggestion down to the letter #shameonme
now it works like a charm with the separator ;#;#!
This is so much simpler than other solutions I’ve tried. Thank you!
Is it similar for a lookup column that holds a single value?