The introduction of Compass Components for Jira Cloud created significant headaches for many of us Jira Admins. This article provides a Jira Automation rule to automatically fix a problem likely affecting every organization using Jira but not Compass.
As of Q3 2025, Jira Cloud teams can easily find themselves unable to use their Jira Components. If their org doesn't have the Atlassian Compass product, then a Project Admin might click the toggle shown below in the "Components" section of their Project:
At that point everyone in the Project loses access to Components. The Components page changes to just show links to "Learn more..." and "Try Compass free". If the Project Admin works hard enough, they might find the confusingly labeled toggle to switch back.
In our organization I found 20 teams within 6 months of switching to Jira Cloud that had gotten themselves stuck like this. Some of the teams might not have realized the problem, others just were apparently quietly living with having no more access to their Jira Components. I call this "negative business value".
Since teams could find themselves unknowingly stuck at any time with this problem, I needed a solution to get them unstuck automatically. Jira Automation Rules and the REST API to the rescue.
You can download my rule below, import it into your Jira Cloud, update a few components, test it, and then forget about this problem.
The rule runs twice per weekday and checks every non-archived Company-Managed Project in Jira Cloud. If it finds one with the "Compass Components" toggle set to ON, then it toggles it back to OFF. It updates the Audit Log with the Project Key for any projects that it fixes.
The rule takes ~25 seconds to scan our ~300 projects.
You must be a Jira Administrator to perform these steps.
IMPORTANT: The AUTHSTRING above is what most people struggle with. It is formed from your Jira email and your Jira PAT (Personal Access Token) with a colon ':' character in between them, with that whole string encoded using BASE64. This is documented here and here. Note that the "Basic" prefix is case-sensitive.
If the number of projects shows as zero, or if any "Send web request" components fail, focus on getting the Authorization value to be correct. The PAT should be for a Jira Admin, of course. Sorry that it's so complicated.
Nerd note: The 2nd "Send web request" returns a 404 if the project property was never set, which seems to be the default for most projects. The rule tolerates this response. All other response codes should be 200 if authentication is correct.
Here's an example showing what the rule logs:
Please take a moment and vote for suggestion JRACLOUD-92796. With enough votes maybe this will get fixed.
Feel free to also add comments to this article about the impact of this problem for you.
{
"cloud": true,
"rules": [
{
"id": 30002632,
"clientKey": "be9a4feb-aaaa-bbbb-cccc-bb35916569fb",
"name": "Clear Compass Components",
"state": "ENABLED",
"description": "Change log:",
"authorAccountId": "712020:dac81762-aaaa-bbbb-cccc-6bc2cd2ce073",
"actor": {
"type": "ACCOUNT_ID",
"value": "557058:f58131cb-aaaa-bbbb-cccc-6b58d40bd077"
},
"created": 1756067205900,
"updated": 1758741548889,
"trigger": {
"id": "721694346",
"component": "TRIGGER",
"parentId": null,
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.jql.scheduled",
"value": {
"schedule": {
"cronExpression": "0 30 11,17 ? * MON-FRI",
"method": "CRON",
"rate": 0,
"rateInterval": 86400,
"rRule": "BEGIN:VEVENT\nDTSTART;TZID=America/Chicago:20250824T152522\nRRULE:FREQ=WEEKLY;BYHOUR=9;BYMINUTE=0;BYSECOND=0;BYDAY=SU;INTERVAL=1\nEND:VEVENT\n"
},
"jql": "",
"executionMode": "nosearch",
"onlyUpdatedIssues": true
},
"children": [],
"conditions": [],
"connectionId": null
},
"components": [
{
"id": "721766468",
"component": "ACTION",
"parentId": null,
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.issue.outgoing.webhook",
"value": {
"url": "{{baseUrl}}/rest/api/3/project",
"headers": [
{
"id": "_header_1756067707425",
"name": "Content-Type",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756067828628",
"name": "Accept",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756130702618",
"name": "Authorization",
"value": "**************************",
"headerSecure": true
}
],
"sendIssue": false,
"contentType": "empty",
"customBody": "false",
"method": "GET",
"responseEnabled": true,
"continueOnErrorEnabled": false
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "724528914",
"component": "ACTION",
"parentId": null,
"conditionParentId": null,
"schemaVersion": 1,
"type": "codebarrel.action.log",
"value": "Checking {{webResponse.body.key.size}} project(s). Any listed below were reset.",
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "721766469",
"component": "BRANCH",
"parentId": null,
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.smart.values.branch",
"value": {
"id": "_customsmartvalue_id_1756130753477",
"name": {
"type": "FREE",
"value": "ProjKey"
},
"type": "SMART",
"query": {
"type": "SMART",
"value": "{{webResponse.body.key}}"
},
"lazy": false
},
"children": [
{
"id": "721694570",
"component": "ACTION",
"parentId": "721766469",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.issue.outgoing.webhook",
"value": {
"url": "{{baseUrl}}/rest/api/3/project/{{ProjKey}}/properties/jira.global.components",
"headers": [
{
"id": "_header_1756067707425",
"name": "Content-Type",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756067828628",
"name": "Accept",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756068296668",
"name": "Authorization",
"value": "**************************",
"headerSecure": true
}
],
"sendIssue": false,
"contentType": "empty",
"customBody": "false",
"method": "GET",
"responseEnabled": true,
"continueOnErrorEnabled": true
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "721766958",
"component": "CONDITION",
"parentId": "721766469",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.comparator.condition",
"value": {
"first": "{{webResponse.body.value}}",
"second": "true",
"operator": "EQUALS"
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "721774486",
"component": "ACTION",
"parentId": "721766469",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.issue.outgoing.webhook",
"value": {
"url": "{{baseUrl}}/rest/api/3/project/{{ProjKey}}",
"headers": [
{
"id": "_header_1756067707425",
"name": "Content-Type",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756067828628",
"name": "Accept",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756135891492",
"name": "Authorization",
"value": "**************************",
"headerSecure": true
}
],
"sendIssue": false,
"contentType": "empty",
"customBody": "false",
"method": "GET",
"responseEnabled": true,
"continueOnErrorEnabled": true
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "721774487",
"component": "CONDITION",
"parentId": "721766469",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.comparator.condition",
"value": {
"first": "{{webResponse.body.style}}",
"second": "classic",
"operator": "EQUALS"
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "721774488",
"component": "CONDITION",
"parentId": "721766469",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.comparator.condition",
"value": {
"first": "{{webResponse.body.archived}}",
"second": "true",
"operator": "NOT_EQUALS"
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "721766959",
"component": "ACTION",
"parentId": "721766469",
"conditionParentId": null,
"schemaVersion": 1,
"type": "codebarrel.action.log",
"value": "{{ProjKey}}",
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "721695518",
"component": "ACTION",
"parentId": "721766469",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.issue.outgoing.webhook",
"value": {
"url": "{{baseUrl}}/rest/api/3/project/{{ProjKey}}/properties/jira.global.components",
"headers": [
{
"id": "_header_1756067707425",
"name": "Content-Type",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756067828628",
"name": "Accept",
"value": "application/json",
"headerSecure": false
},
{
"id": "_header_1756069163892",
"name": "Authorization",
"value": "**************************",
"headerSecure": true
}
],
"sendIssue": false,
"contentType": "custom",
"customBody": "false",
"method": "PUT",
"responseEnabled": true,
"continueOnErrorEnabled": true
},
"children": [],
"conditions": [],
"connectionId": null
}
],
"conditions": [],
"connectionId": null
},
{
"id": "721775223",
"component": "ACTION",
"parentId": null,
"conditionParentId": null,
"schemaVersion": 1,
"type": "codebarrel.action.log",
"value": "Reached end of rule.",
"children": [],
"conditions": [],
"connectionId": null
}
],
"canOtherRuleTrigger": false,
"notifyOnError": "FIRSTERROR",
"projects": [],
"labels": [],
"tags": [
{
"id": 118001239,
"tagType": "IS_RULE_UPDATED",
"tagValue": "true"
}
],
"ruleScope": {
"resources": [
"ari:cloud:jira::site/7f4b1767-aaaa-bbbb-cccc-dc82e641b707"
]
},
"ruleHome": {
"ruleLifecycleHome": {
"locationARI": "ari:cloud:jira-software::site/7f4b1767-aaaa-bbbb-cccc-dc82e641b707"
},
"ruleBillingHome": {
"locationARI": "ari:cloud:jira-software::site/7f4b1767-aaaa-bbbb-cccc-dc82e641b707"
}
},
"writeAccessType": "UNRESTRICTED",
"collaborators": [],
"billingType": "NORMAL",
"currentVersionId": null
}
]
}
Mykenna Cepek
Senior ScrumMaster
Health Partners c/o Health BPM
Minneapolis, MN, USA
113 accepted answers
6 comments