Hi,
I'm building a flow for SharePoint. Just to set the idea straight from the start, I'm rarely using direct auto-detected data from list or outputs from the objects. I'm using HTTP request and then using the input as variable for the library url and name. That way, the object are asking for the id and the item (in JSON) to perform the update. I prefer this method as It allows me to build less complex flows that are way more dynamics.
My question in this specific case... I have been building objects to update all kind of column types in SharePoint without any issues but yesterday was the first time I encountered a Lookup Column and I just can't find what's the right format to use.
Most documentation says to use the id to set it but I can't make it work.
I have tried a lot of different formats:
Error: "Could not parse lookup value"
{
"LookupColumnName":
{
"Value": 68
}
}
{
"LookupColumnName":
{
"Id": 68
}
}
{
"LookupColumnName": 68
}
{
"LookupColumnName": {
"@odata.type":"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
"Id":24,
"Value":"Process Owner | Recruitment"
}
}
Error: it just doesn't find the column in question
{
"LookupColumnName/Id": 68
}
{
"LookupColumnName#Id": 68
}
I just want to know what format we should be using in this case. The auto-filled version of the object send something like:
{
[...other properties]
"item/LookupColumnName/Id": 68
}
However, I know for a fact that it's not what I should use since I am sending the "item" object myself, I don't need to specify it. I have tried "/" and "#" because I ran out of imagination and this isn't documented anywhere.
Thanks for the help.
I'm also displaying additional fields from the lookup table:
If you can try and test with a simple list and flow you will be able to work out what is wrong.
The Update file properties mode for updating the Clients field is in Array mode:
When I switch to "detail inputs for array items" note what happens to the content:
Hope this helps.
Ellis
I have found the issue with your help and the actual problem is far more stupid than anticipated.
Here's the working code:
The only thing that changed is that the id field is case sensitive... Everytime I looked at the output from any of the action, it told me that the "Id" field was writted with a capital I then a lowecase d (Id). When you look at the table itself, it's always "ID" but I believe the JSON from power automate would the right one (with reasons...) but it isn't.
If I use "ID", it works. If I use "Id", it doesn't.
I can't believe I spent all this time on something so trivial but eh, at least it's clear and we've documented a litle bit an how-to us JSON to set sharepoint field. Not all is lost.
Thanks for your help.
Thank you Ellis,
This actually answer very well my question. If it actually works for you, then there is something in my configuration that doesn't work. I tried this exact format and it didn't work either.
I believe it might be due to the fact that I'm displaying other columns as well and not just the one set in the config. Under the "Add a column to show each of these additional fields"
Here is my demo document library. It contains a lookup column called Clients and allows multiple values. In the example below, two clients (USER2 and USER3) have been added to the Clients column for the file Contract Types.xlsx:
The settings for the Clients lookup column are:
This is the lookup list that the Client column uses:
I will change the Clients column for ID 16 Contracts Types.xlsx. I will add clients USER 99 and USER111 to the clients column:
This is the lookup table:
Here is the flow:
Here is the update file properties action which uses the list item Id to set the client:
And here is the output.
Ellis
I'll try to have a look at the above .
See the following too: Update a multi select choice field in a SharePoint list with Power Automate
"....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."
Ellis
Thanks Ellis. This last bit seems to have a very similar format to when I push information to the body using simply "update file properties". (While url and library name are set through variable. If the account has access to the library and you just use "custom", it will display as usual. Variable isn't detected like that. :))
When it comes to Lookup column, it just doesn't seem to work by just sending a number to it with that method so I'm guessing I'm supposed to send it under a certain format.
I'm starting to think maybe it's my configuration for the column. I'm not displaying the ID in the config. Could you check yours to confirm?
If you'd be able to try using update file properties like I shown above, I'd appreciate it as well.
I'll check if I can do it using http as well. Never tried that way.
thanks.
When I update a Lookup column, I can specify the Id number.
Team or Centre column is a Lookup type field. I can set the value to be "Sustainable Finance" by specifying Id 12 in an Update action
Extract of the Output
Setting the Id value (integer) seems to be sufficient to update the Lookup Column.
Another method you could use to update the field is via a HTTP request with the following body content:
Hope this helps.
Hey.
I'm not sure what's the difference here. I'm talking specifically about SharePoint and lookup column giving me error message when I send it in either of those formats.
Here's part of the code I use to do that:
Everything runs alright. Building the object isn't the issue but rather the format that needs to be used with Sharepoint Lookup Columns.
Thanks
May be the following examples will help:
Ellis
Michael E. Gernaey
497
Super User 2025 Season 2
David_MA
436
Super User 2025 Season 2
Riyaz_riz11
244
Super User 2025 Season 2