30. 03. 2026 Valentina Da Rold Atlassian, Automation

Automating Confluence Page Status at Scale: A Practical Workaround

I recently faced a challenge that many large organizations run into when scaling their use of Atlassian Confluence.

I needed to create an automation that would automatically change the page status under specific conditions – for every page created or updated across more than 600 spaces.

The Problem

Out of the box, Confluence provides a native way to manage page statuses. However, there’s a limitation: native page status automation cannot be applied globally across spaces. This becomes a blocker in enterprise environments where consistency and governance are key.

The Solution

Since the native functionality didn’t meet the requirement, I designed some custom automation logic using Confluence Automation combined with REST API calls.

Below is a step-by-step guide to replicate this solution.

Prerequisites

Before starting, make sure:

  • You’re using one of the default page statuses (custom statuses won’t work with this approach, if not created in each space you need to cover)
  • The “Suggest statuses” feature is enabled
    → Go to: Space Settings → General → Avatar and Status

Implementation

1. Create a New Automation Rule

  • Go to Automation and create a new rule from scratch
  • Select trigger: “Page published”

2. (Optional) Exclude Personal Spaces

If you want to avoid running this automation in personal spaces:

  • Add an “If” block
  • Condition: {{space.isPersonal}} equals false

3. Retrieve Available Page Statuses

  • Add a “Send web request” action
  • Configure it to call the Confluence API endpoint that returns available page statuses
    • Endpoint: https://your-domain.atlassian.net/wiki/rest/api/content/{{pageId}}/state/available
    • Method: GET
    • Do not forget to flag the Delay execution of subsequent rule actions until we’ve received a response for this web request option
    • Add the correct Authorization header to your request

4. Store Statuses in a Variable

Add a “Create variable” action:

Name: statuses
Value: {{webResponse.body.spaceContentStates}}

5. Loop Through the Statuses

  • Add an Advanced Branch / Loop
  • Use this smart value: {{statuses.split("}, ")}}

6. Identify the Desired Status

Inside the loop:

  • Add an If condition
  • Check: {{status}} contains name=<desired status>

7. Extract the Status ID

Add a Create variable action:

Name: id
Value: {{status.substringBetween("{id=",", color=")}}

8. Update the Page Status via API

Add another Send web request action:

  • Endpoint: https://your-domain.atlassian.net/wiki/rest/api/content/{{pageId}}/state?status=current
  • Method: PUT
  • Add the correct Authorization header to your request
  • Body:
{
  "id": "{{id}}"
}

With this automation in place:

  • Every time a new page is published, the rule triggers automatically
  • It retrieves available statuses dynamically
  • Identifies the correct one (e.g., “In progress”)
  • Applies it to the page
  • Publishes a new version with the updated status

While native Confluence automation is powerful, it often falls short at enterprise scale, but by combining automation rules with REST API calls, you can unlock much more advanced and flexible capabilities, creating reusable solutions that help enforce consistency and governance across large environments.

These Solutions are Engineered by Humans

Did you find this article interesting? Are you an “under the hood” kind of person? We’re really big on automation and we’re always looking for people in a similar vein to fill roles like this one as well as other roles here at Würth IT Italy.

Valentina Da Rold

Valentina Da Rold

Hi, I'm Valentina and I'm a Frontend Developer at Wuerth IT Italy. I started out my career applying my Cryptography skills to coding, but really quickly fell in love with the web. I have been making websites and applications since 2012 and I still can't get enough of it. Along the way I found a passion for front-end development, and I use this passion to create interfaces that solve problems. When I'm not creating beautiful solutions, I enjoy cooking or doing sport, while listening to beautiful music.

Author

Valentina Da Rold

Hi, I'm Valentina and I'm a Frontend Developer at Wuerth IT Italy. I started out my career applying my Cryptography skills to coding, but really quickly fell in love with the web. I have been making websites and applications since 2012 and I still can't get enough of it. Along the way I found a passion for front-end development, and I use this passion to create interfaces that solve problems. When I'm not creating beautiful solutions, I enjoy cooking or doing sport, while listening to beautiful music.

Leave a Reply

Your email address will not be published. Required fields are marked *

Archive