Hi @Sam King,
Welcome to the Microsoft Q&A forum.
Thank you for your detailed description and screenshots. I understand you’ve already enabled Approvals from the Automate menu and built a Power Automate flow, but the Set_content_approval_status action is still failing with:
contentModerationNotEnabled / “Content moderation is not enabled on the library”
There are two different approval models in SharePoint Online today: Classic “Content approval / Moderation” and Modern “Configure Approvals”. Your error indicates the target list/library doesn’t have classic content approval enabled, so the connector refuses to set the status.
To troubleshoot this more effectively, could you please clarify: Is your flow targeting a document library or a list? (This matters because the Versioning settings page (and the options shown) differ between lists and libraries).
While we're waiting for your response to the question above, here are a few steps that often help (You can choose the path that fits your scenario):
A. You want to keep using the “Set content approval status” action (classic moderation)
1/ Enable classic content approval on the target library/list:
- Navigate to the library > Library settings > More library settings > Versioning settings.
- Set the Require content approval for submitted items to Yes.
- If you need Drafts, enable major/minor (draft) versions and set Draft Item Security as required.
Reference: Require approval of items in a list or library
2/ Update your flow for files/pages to include the ETag:
- Use Get file metadata before Set content approval status and pass the ETag output.
3/ Respect the status order when minor versions are enabled:
- Don’t just go straight from Draft to Approved/Rejected.
- First Submit (Pending), then Approve/Reject.
- Each update can return the item to Draft, so set Pending again before the final step.
This path works best with document libraries. In many tenants, lists no longer expose the classic “Require content approval” toggle in the modern UI. If you must moderate items, consider moving the content to a library or switching the list to classic temporarily if that option exists in your tenant.
Reference: SharePoint classic and modern experiences
B. You prefer the modern “Configure Approvals” experience (Approvals app + SharePoint UI):
- Keep Automate > Configure Approvals enabled and don’t use the Set content approval status action.
- Instead, use Power Automate’s Start and wait for an approval and update your own custom columns (e.g., PA Approval Status, Approver, Decision, Comments) to track outcomes. This aligns with the modern model and avoids the classic moderation dependency.
Reference: Approvals in Lists & Document Libraries
I hope this information is helpful. Please follow these steps and let me know if it works for you. If not, please share more information and we can work together to resolve this.
Thank you for your patience and your understanding. If you have any questions or need further assistance, please feel free to share them in the comments on this post so I can continue to support you.
I look forward to continuing the conversation.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.