Confluence Drop-Down List is a custom macro for Atlassian Confluence that provides an interactive drop-down menu. Users can select a value which is then stored per page. This macro is designed for managing statuses, ratings, or any other selectable values directly within a Confluence page.
- Customizable drop-down values (e.g.,
Low,Medium,Highor1,2,3,5) - Colored indicators corresponding to selected values
- Selected value is stored as a Content Property per page
- Unique key generation (automatically or manually defined)
- Multiple macro instances on the same page with independent state
- AJAX-based value update (no page reload)
- Compatible with
excel-macros
-
A unique
propertyKeyis generated automatically using the macro context and its parameters. Alternatively, a custom key can be provided manually via thekeyparameter. -
When the macro is rendered:
- It checks for an existing value stored in the Confluence Content Property using the
propertyKey. - If a value is found, it is pre-selected in the drop-down.
- If no value is stored, the
defaultparameter is used.
- It checks for an existing value stored in the Confluence Content Property using the
-
The UI displays a styled drop-down list:
- Optional label is shown before the drop-down.
- Values may be rendered with visual indicators (such as color dots or background shades).
-
When a user selects a value:
- An AJAX POST request is sent to the servlet endpoint at
/plugins/servlet/confluence-drop-down-list/save.
- An AJAX POST request is sent to the servlet endpoint at
-
The request includes the following payload:
pageId: ID of the current Confluence pagepropertyKey: Unique key to identify this macro instancevalue: The selected value
-
The servlet processes the request:
- Validates the input
- Stores the new value as a Content Property on the Confluence page
- Responds to the client
-
Once the response is received, the page is automatically refreshed to reflect the new selection.
-
On future loads, the stored value is re-used, ensuring consistent state across sessions.
This design ensures each macro instance can store and retrieve user-specific data scoped to the page, making it perfect for building interactive dashboards, decision matrices, or team feedback tools within Confluence.
Your backend servlet should accept and handle the following POST parameters:
pageId— the numeric ID of the current Confluence page.value— the selected value from the drop-down.propertyKey— a unique key to associate the value with a specific drop-down instance.
The servlet should:
- Retrieve the page using the
pageId. - Use the Content Property API (via
ContentEntityObjector REST) to set or update the value. - Respond with a success status (e.g., HTTP 200).
You can download the latest version of the Confluence Drop-Down List plugin here: