Building Cross‑Page Reports in Confluence with Page Properties and Page Properties Report Macros
Learn how to use Confluence's Page Properties and Page Properties Report macros to build a simple cross‑page report that aggregates key/value data from multiple pages.
11 Aug 2026, 13:22 UTC

Useful answer
The Page Properties macro lets you define a simple key/value table on any Confluence page. The Page Properties Report macro can then gather those tables from multiple pages and render a single report where each key becomes a column and each source page becomes a row. This gives you a lightweight, no‑code way to aggregate status, owners, or any other metadata across a space or set of labeled pages.
How it works
When Confluence renders a page, it scans the page body for macro bodies. The Page Properties macro exposes its inner table as structured data that the Page Properties Report macro can query. The report macro evaluates optional filters (space, label, page title) and then builds a result table: one column per distinct key found in any Page Properties macro, and one row per page that contains the macro and passes the filters. If a page lacks a value for a particular key, the cell is left blank.
Step‑by‑step example
- Create a template page (or use any existing page). Edit the page and insert the
Page Propertiesmacro from the macro browser. - Inside the macro body, add a two‑column table with no header row. Use the first column for the key and the second for the value. Example markup (you will see the table in the editor):
| Status | In Progress | | Owner | alice | | Due Date | 2026-10-15 | - Save and publish the page. Repeat this on two more pages, changing the values (e.g., Status = Done, Owner = bob; Status = To Do, Owner = carol).
- Create a new page that will serve as the dashboard. Edit it and insert the
Page Properties Reportmacro. - In the macro configuration, set the Space filter to the space where you created the three source pages. Leave Label and Page filters blank unless you want to narrow the scope.
- Save the dashboard page. The report macro renders a table with three columns (Status, Owner, Due Date) and three rows, each row showing the values from one source page.
Limits and common mistakes
- Visibility requirement – The report only includes pages where the Page Properties macro is present in the main content area and the page is published (or visible to the user viewing the report). Drafts, pages restricted by view permissions, or macros placed inside comment blocks, hidden sections, or table cells are ignored.
- No nested tables – If the Page Properties macro contains a table inside another table (or any complex markup such as panels, expandables, or code blocks), the parser fails to extract the key/value pairs, resulting in missing columns or omitted rows for that page.
- Key cell content – Keys must be plain text. Using Confluence markup like
*bold*,_italic_, or{code}inside the key cell interferes with column detection and can produce empty columns in the report. - Performance – Scanning hundreds of pages with the report macro can increase render time and may lead to timeouts on very large spaces. Consider limiting the scope with labels or page titles, or splitting the report across multiple dashboard pages.
- Cross‑space reporting – By default the macro only scans the space specified in its Space filter. To report across multiple spaces you must either run separate reports and combine them manually, or use a global filter (if your Confluence instance permits) and ensure you have view permission in all target spaces.
Suggested verification steps (do not claim they were tested)
- Create a test space and add four pages: three with a simple two‑column Page Properties macro (Status, Owner) and a fourth where the macro contains a nested table.
- On a dashboard page insert a Page Properties Report macro scoped to the test space.
- Save the dashboard and observe that the report shows three rows with the correct Status and Owner values, while the fourth page either does not appear or shows blank columns.
- Apply a label filter to the report macro, add the label to only two of the three simple pages, and confirm that the report now lists exactly those two pages.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.