Katabarwa Labs
← All Atlassian apps

Confluence · Page Approvals

Page approval workflow for Confluence with version-pinned sign-off and an audit trail

Request, approve and reject pages with per-space approvers and a quorum, a state badge on every page, and automatic invalidation when an approved page is edited.

Runs entirely on Atlassian Forge inside your own tenant. No external servers, no data egress.

Why it exists

This app answers a request that has been open on Atlassian's public tracker for years: CONFCLOUD-6373, "Page approval workflow", with 560 votes.

The gap

CONFCLOUD-6373 asks for page approval workflows and has 560 votes. Confluence Cloud has version history, which tells you that a page changed and who changed it, and nothing about whether anyone signed it off. The usual workarounds fail for one shared reason: a label or a table at the top of the page records approval against the page rather than against a version of it, so the record keeps saying approved after the page has moved on.

What it does
Every page under review with its state, the space, who requested it and when it is due, including approved, pending, overdue, rejected and changed since approval.
Every page under review with its state, the space, who requested it and when it is due, including approved, pending, overdue, rejected and changed since approval.
Per-space configuration: approvers by person or group, the quorum a page needs, the labels that require approval, and the overdue threshold.
Per-space configuration: approvers by person or group, the quorum a page needs, the labels that require approval, and the overdue threshold.
The audit export an auditor asks for: one row per event, version-pinned, plus the CQL that finds approved pages.
The audit export an auditor asks for: one row per event, version-pinned, plus the CQL that finds approved pages.
Honest about its limits
Security & permissions

Built on Atlassian Forge: the app runs on Atlassian's own serverless platform inside your tenant and stores its data in Forge storage. It makes no external network calls. Every scope it requests, and why:

read:confluence-content.all page titles, versions and space context
write:confluence-props the approval state stored on the page as a content property
read:confluence-user approver identity for the record and the CSV
storage:app approval records and space configuration, entirely in your tenant
The native feature it builds on

Atlassian's own documentation for what Confluence does out of the box, so you can see exactly where the gap is:

FAQ

Does any data leave my instance?

No. The app runs on Atlassian Forge inside your own tenant with zero external egress, which makes it eligible for Atlassian's Runs on Atlassian trust marker.

How is it billed?

Through the Atlassian Marketplace, on your existing Atlassian bill, priced per user like any Cloud app. The listing has a free evaluation and the exact calculator for your tier.

Where do I get support?

Email support@katabarwalabs.dev or open an issue from the documentation page. You talk directly to the people who build the app.

Install Page Approvals in about a minute.

Free evaluation from the Marketplace listing. If it does not fit your workflow, tell us what would and we will build it.