Skip to main content

How to Approve or Reject a SharePoint Item in Power Automate

· 5 min read
Jagdish Kumawat
Founder @ Dewiride

On a SharePoint list with content approval, each item has an Approval Status that only people allowed to approve can change. A flow can set it with Set content approval status: the site, the list, the item's ID, Approve or Reject, a comment, and the item's ETag.

Microsoft's SharePoint connector reference describes it: Sets the content approval status for an item in a list or library that has content approval turned on. You must provide an ETag for pages and files.

The example is the approval flow of the Overtime Timesheet app. Approvers decide in Teams or Outlook, where SharePoint can't see their answer, so the flow sets each entry's approval status from their decision.

Prerequisites​

Step 1: Add the Action​

Add an action, search for Set content approval status, and choose the SharePoint one. I named it Set the approval status.

Step 2: Fill It In​

FieldValue here
Site AddressThe site's environment variable
Library NameThe OvertimeEntries list's environment variable
IdThe item's ID
Actionif(equals(outputs('Ask_for_approval')?['body/outcome'], 'Approve'), 'Approve', 'Reject')
Commentsfirst(outputs('Ask_for_approval')?['body/responses'])?['comments']
ETagoutputs('Record_the_decision')?['body/@odata.etag']

The Set the approval status pane with Site Address and Library Name set to environment variables, Id set to ID, Action set to an if(...) token, and under Advanced parameters, Showing 2 of 2, Comments set to a first(...) token and ETag set to the token body/@odata.et…, with the line Connected to Overtime Timesheet SharePoint.

  • Library Name took the list's variable, though it says library: the action works on lists and libraries alike.
  • Action turns the approval's outcome into the action SharePoint expects.
  • Comments becomes the approval comment SharePoint keeps with the item.
  • ETag identifies the version of the item being approved. The reference says Add an ETag (required for files and pages). The flow's previous action, Update item, edits the item, so its output has the current ETag (How to Update a SharePoint List Item in Power Automate). The first run, before I added the ETag, worked without one on this list; every run since has used it.

The Result​

The list's Approval Status column followed each decision. After Daniel Brooks approved Maya Patel's entry:

The OvertimeEntries row for Maya Patel 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

And after he rejected an earlier version of it:

The same row earlier with Status Rejected, the comment Please add which MRI list you covered and who asked you to stay., DecisionBy Daniel Brooks, DecisionOn 08/11/2026 16:57 and Approval Status Rejected

Approving didn't add a version to the item's history; it updated its Modified time.

Why Set It After the Update​

On a list with content approval, an edit sets the item's approval status back to Pending, and that includes the flow's own Update item. Setting the approval status after the update, with the update's ETag, is the last change, so it stays.

Common Mistakes​

MistakeWhat happensDo this instead
Setting the status before Update itemThe update sets it back to PendingSet it after the update
Using the trigger's ETag after an updateIt no longer matches the itemThe ETag from the update's output
A connection whose account can't approve itemsThe account needs approval rights on the listUse the site owner's connection

Troubleshooting​

SymptomLikely causeFix
Approval Status stays PendingAn edit after the actionMake this the last change to the item
The comment isn't in SharePointComments is emptyPass the approver's comment

FAQ​

Can staff approve their own entries in SharePoint?​

Not in this example: staff have their own permission level without Approve Items. The flow approves with the owner's connection, after a department approver decides.

What about Approval Status vs a Status column?​

Approval Status is SharePoint's, and only people with approval rights can change it. A Choice column such as Status can be changed by anyone who can edit the item, so it's for showing the decision, not proving it.

Conclusion​

Set content approval status approves or rejects a SharePoint item from a flow: site, list, ID, Approve or Reject, a comment and the ETag. Run it after any update to the item, with the update's ETag, and the item's Approval Status records the decision.

Additional Resources​