Skip to main content

How to Update a SharePoint List Item in Power Automate

· 7 min read
Jagdish Kumawat
Founder @ Dewiride

SharePoint's Update item changes an item in a list. It needs the site, the list and the item's ID, and a value for every required column, even the ones you aren't changing. The columns you are changing go under Advanced parameters.

Microsoft's SharePoint connector reference describes it as: Updates an item in a SharePoint list. The required columns come from a Microsoft migration article: When you use the "Update item" action, you always need to specify a value for all the mandatory fields (From SharePoint workflows to Power Automate).

The example is the approval flow of the Overtime Timesheet app. After the approver answers, Record the decision saves the decision, the comment, who decided and when, and the hours the flow worked out.

Prerequisites​

Step 1: Add Update Item​

Add an action, search for Update item, and choose the SharePoint one. I named it Record the decision. Set Site Address and List Name to the same environment variables as the other SharePoint actions (How to Use Environment Variables in a Power Automate Flow), and Id to the item's ID.

Step 2: Fill Every Required Column​

The action lists the list's required columns, each marked with an asterisk. Fill each one with the item's current value, from Get the entry now, so the update doesn't change them by accident:

The Record the decision pane with Site Address and List Name set to environment variables, Id set to ID, and the required columns WorkDate, StartTime, EndTime, BreakMinutes, Hours, DepartmentId, Department, Reason, EmployeeName and WorkMonth each set to a token, Hours to a float(...) expression

One required column gets a new value: Hours, the number the flow worked out from the shift's times (How to Work Out the Hours Between Two Times in Power Automate). It was formatted as text, so float() turns it back into a number:

Record the decision → Hours
float(outputs('Hours_worked_out'))

Step 3: Set the Columns You're Changing​

Under Advanced parameters, add the other columns to change. Here, the decision:

ColumnValue
Status Valueif(equals(outputs('Ask_for_approval')?['body/outcome'], 'Approve'), 'Approved', 'Rejected')
ApproverCommentfirst(outputs('Ask_for_approval')?['body/responses'])?['comments']
DecisionByfirst(outputs('Ask_for_approval')?['body/responses'])?['responder']?['displayName']
DecisionOnThe approval's Completion date

Record the decision's advanced parameters, Showing 4 of 8: Status Value set to an if(...) token, ApproverComment and DecisionBy each set to a first(...) token, DecisionOn set to Completion date, and the line Connected to Overtime Timesheet SharePoint.

The Result​

A rejection. Maya Patel had changed Hours to 4.00 for a shift from 08:00 to 12:00 with a 15-minute break. Daniel Brooks rejected it, and the update saved 3.75, the flow's number, with the decision:

The OvertimeEntries row with WorkDate 07/11/2026, StartTime 08:00, EndTime 12:00, BreakMinutes 15, Hours 3.75, DepartmentId 2 and Department Radiology, and Sum 3.75

The same row's Reason MRI backlog list, EmployeeName Maya Patel, Status Rejected, ApproverComment Please add which MRI list you covered and who asked you to stay., DecisionBy Daniel Brooks, DecisionOn 08/11/2026 16:57, WorkMonth 2026-11 and Approval Status Rejected

An approval, after she resubmitted it:

The row with Status Approved, ApproverComment Approved. Thanks for clearing the backlog., DecisionBy Daniel Brooks, DecisionOn 08/11/2026 17:11, WorkMonth 2026-11 and Approval Status Approved

On a List with Content Approval​

The list has content approval on (How to Turn On Content Approval for a SharePoint List), and an update is an edit like any other: the action's outputs showed the item's approval status as Pending after it. The flow sets the approval status in the next action, with the update's new ETag, @odata.etag in its outputs (How to Approve or Reject a SharePoint Item in Power Automate).

The update also starts the flow's trigger again, as a change to the item. The flow's trigger condition only lets entries whose Status is Pending through, and the update sets it to Approved or Rejected, so it never started a run (How to Add a Trigger Condition in Power Automate).

Common Mistakes​

MistakeWhat happensDo this instead
Leaving a required column emptyThe action marks it as requiredFill it with the item's current value
Filling required columns from the trigger after a long waitChanges made during the wait are overwrittenRead the item again just before updating
Text in a Number columnThe column needs a numberfloat() the value
Updating the item that triggers the flow, with no trigger conditionThe update starts the flow againAdd a trigger condition

Troubleshooting​

SymptomLikely causeFix
Asterisked fields on the actionRequired columns of the listGive each one a value
The Choice column didn't changeThe text doesn't match a choiceUse the choice's exact text
The item's approval status is Pending after the updateContent approval treats it as an editSet the approval status next

FAQ​

Can I update only the columns I'm changing?​

Not with this action: the required columns need values too. Fill them with the item's current values.

Where does Completion date come from?​

It's an output of Start and wait for an approval: when the request was answered.

Conclusion​

Update item needs the site, list and ID, a value for every required column, and the columns you change under Advanced parameters. Fill the required ones with the item's current values, and on a list with content approval, set the approval status after the update.

Additional Resources​