“I’m using Power Automate to update a backup column with each user update on the item, how can I do it without doubling the item version?”
For some solutions, e.g. when triggering a flow on SP column update, you might need a ‘backup’ column. A column you’ll use to store a previous value of another column when user updates it. But if you have a separate action to update only that one column, it can mess up your versioning. Each user update will trigger the flow, and the flow will do another ‘sync’ update. One extra item version only to keep the columns synchronized. There has to be a better way to keep the versions under control.

Use HTTP request for the update
The solution is to use HTTP request for the ‘sync’ update. With HTTP request you have more control over the update than with the ‘Update item’ action. While the action allows you only to update columns, with HTTP request you can define additional parameters. And one of the parameters is ‘bNewDocumentUpdate’. By adding the parameter to the request Body you can tell the update to not create another item version.
"bNewDocumentUpdate": true
The full HTTP request format should be as below.
Uri:
_api/web/lists/GetByTitle('<ListName>')/items(<ItemID>)/validateUpdateListItem
Body:
{
"formValues":[
{
"FieldName": "<FieldToUpdate>",
"FieldValue": "<ValueToUpdate>"
}
],
"bNewDocumentUpdate": true
}

Updating the item with an HTTP request as above will add the ‘sync’ update to the already existing item version.

Summary
Even though Power Automate doesn’t offer such functionality directly, you can still update item column without a new item version. But you should use the ‘bNewDocumentUpdate’ parameter only to update system columns, never to update user columns. For user columns it should be always clear which user and when did an update, and you should never ‘overwrite’ it.
But if you just need to keep the number of ‘sync’ versions under control, it might be an optimal solution. Just keep in mind that even if it doesn’t create a new item version, it’s still an update that can cause infinite trigger loop.
It seems that this solution is not valid anymore. I tried this my own now and I get a error:502 BadGateway.
{
“error”: {
“code”: 502,
“source”: “europe-002.azure-apim.net”,
“clientRequestId”: “a6b7f709-37f0-4bd5-954a-428a9608b913”,
“message”: “BadGateway”,
“innerError”: {
“status”: 502,
“message”: “Additions to this Web site have been blocked.\n\nPlease contact the administrator to resolve this problem.\r\nclientRequestId: a6b7f709-37f0-4bd5-954a-428a9608b913\r\nserviceRequestId: 639af29f-908c-1000-07d7-773ff2c67fab”,
“source”: “https://***.sharepoint.com/sites/ndt-document-center/_api/web/Lists/GetbyTitle(‘Approved%20Documents’)/items(4626)/ValidateUpdateListItem”,
“errors”: [
“-2130575258”,
“Microsoft.SharePoint.SPException”
]
}
}
}
Hello Kevin,
that’s not a flow error, but an error on the side of SharePoint, maybe this: https://technologyblog.rsmus.com/microsoft/microsoft-365/office-365-error-additions-web-site-blocked-mystery-solved/.