
StatusBeacon puts a service status page and incident banners on your Jira Service Management customer portal. Agents set the status of each component and post incidents from a page inside the service project. Customers see it at the top of every portal page, at the bottom as a full status page, and on their own requests.
Atlassian's built-in status pages are only on the Service Collection Enterprise plan. This app gives Standard and Premium sites the part customers look at most, which is "is it down, and what are you doing about it".
It runs on Atlassian Forge with no egress and no remote servers. Nothing leaves your Atlassian site.
There are three places on the portal.
Scheduled maintenance shows up on the portal 7 days before its start time. Until then only agents see it. If its window ends and nobody moved it to In progress or Completed, customers stop seeing it, and the agent page flags it so someone can move it on or change the window with Edit.
All times are shown in UTC.
Open the service project and pick Status page in the sidebar. The app asks Jira to show that entry only in service projects. If it's opened in another project anyway, it says it can't find a service desk for that project.
Agents (people with the Service Desk Agent permission in that project) can do the following.
Project admins can also add, rename, reorder and delete components, and switch the header all-clear line, the footer history and the request panel on or off.
Everything you type on this page is shown to customers. Don't put internal notes in it.
Portal modules only get the customer portal's id from Jira, and that id isn't always the same as the service desk id. Atlassian's own help says they usually match but can differ, for example on older or migrated projects. So StatusBeacon reads the portal id from the project's request types when an agent opens the Status page, and it stores the status page under that portal id.
The Status page names the portal path it found, such as /servicedesk/customer/portal/3. Open that portal once after setup to check the status page shows up there. If the project has no request types, or they point at different portals, the app can't tell which portal is the right one. Then it refuses to save anything and asks you to add a request type, so a status page can't land on another team's portal.
Closed incidents and maintenance stay on the status page for 90 days after they close, and the footer shows the 20 most recent of them. The agent page lists every one from those 90 days. Component status changes are logged for 90 days too, and the last 50 show on the agent page. After 90 days an item no longer shows anywhere. It's deleted from storage the next time an agent saves a change. Opening the Status page only reads, so it never changes anything.
| Limit | Value |
|---|---|
| Components per service project | 25 |
| Component name / description | 60 / 200 characters |
| Open incidents and maintenance at once | 10 |
| Updates per incident | 20, plus the one that closes it |
| Incident title | 120 characters |
| Update text | 1,000 characters, 30 lines |
| Components per incident | 25 |
| Stored closed incidents | 200, oldest removed first |
| Maintenance window | up to 14 days long, starting at most 365 days ahead. A Scheduled one can't have ended already |
| History | 90 days |
| Closed items in the portal footer | 20 most recent |
| Component status changes kept | 300 |
| Service projects the app looks through to find yours | the first 1,000 the agent can see |
If a page gets close to Forge's storage size limit, the oldest closed incidents are removed first. If open incidents alone are too big, the app refuses the change and says so.
If someone else saved a change after you loaded the Status page, your save is refused with a message and the page shows the latest version. Then you can check it and try again. Forge storage has no locking here, so two saves that land at almost the same moment can both go through, and the later one wins.
If an agent can see more than 1,000 service projects and this one isn't among the first 1,000, the Status page says so instead of guessing.
The app asks for three scopes.
read:jira-work to call GET /rest/api/3/mypermissions as the agent, which tells it whether that person is an agent or a project admin in the project.read:servicedesk-request to call GET /rest/servicedeskapi/servicedesk and GET /rest/servicedeskapi/servicedesk/{id}/requesttype as the agent. The first finds the service desk that belongs to the project. The second gives the id of its customer portal.storage:app to keep one status record per customer portal in Forge storage, a smaller copy of it for portal views, and a cached link from project to service desk and portal.Portal views make no Jira calls at all. They read the small saved copy for the portal being viewed, which leaves out the change log and older history.
The app stores the component names, statuses, incident text and times that agents enter. It doesn't store account IDs, names or email addresses. See PRIVACY.md.
Use the support link on the app's Marketplace listing.
Zovo builds and maintains this app. If it saves you time, you can support the work on GitHub Sponsors. Sponsorship is optional, and the tool works the same without it.
Zovo is made by theluckystrike on GitHub.
If this app saves you time, you can support the work on GitHub Sponsors. Monthly tiers start at $5, and one-time tiers start at $15. Sponsorship is optional, and the tool works the same without it.