Settings and protection
The API connection, the inactivity threshold, and the protected list that bounds everything.
Settings
Organization API connection
Why it is needed. Jira alone cannot tell you when somebody last used Confluence, and it cannot suspend an organisation account. The Atlassian organisation API can do both.
- 1Go to admin.atlassian.com → Settings → API keys and create a key. Choose Create API key without scopes — this matters, see the note below. It requires Organization admin permissions.
- 2Copy the organisation ID, or click Use detected Org ID if the app has already worked it out from the key.
- 3Paste both values into Settings and click Test Connection. If the organisation ID is wrong, the app lists the organisations your key can actually reach.
- 4Click Save. The app can then detect your licence groups automatically, so product access maps to the right groups.
| With the connection | Without it | |
|---|---|---|
| Running a scan at all | Yes | No — the button is disabled and the Dashboard says why |
| Last-active dates, per product | Yes | No |
| Visibility across your organisation's sites | Yes | No |
| Automatic licence-group detection | Yes | No |
| Group membership and product access | Yes | No — both are read through the organisation API |
| Suspend and restore accounts | Yes | No — the app says so instead of failing |
| Automation rules | Yes | No — rules will not fire, and the scheduler says so in the log |
If the key is revoked, expires, or stops being an organisation admin key, the app notices the first time a call is rejected and marks the connection as disconnected rather than retrying against a dead credential.
Scheduled scan
Scans can run themselves — weekly, every two weeks or monthly, on the day and UTC hour you pick, reading either scope. The point is the rules: they act on the snapshot, and an admin should not have to remember to feed them. The panel previews the next three runs, and the Dashboard shows the next one beside the Scan button.
- Saving never starts a scan. The first scheduled run waits for the next due moment — turning the schedule on at 16:00 does not surprise you with a scan at 16:01.
- No daily option, deliberately. The freshness rules need comes from the live per-person check at action time, not from scanning more often; a daily walk of a large directory multiplies API cost and lock time for nothing.
- Scans and rules take turns. Only one operation runs at a time. On an hour when both a scan and a rule are due, the scan goes first and the rule follows on the next hourly tick — landing on the snapshot the scan just wrote. Nothing is lost; a blocked firing simply retries.
- Off by default.
Off — scans start manuallyis the state every installation begins in.
Default inactivity threshold
The number of days after which an account counts as inactive, set on a slider from 7 to 365. It drives the dashboard's dormant-seat count and the default position of the Inactive For filter. Ninety days is a common starting point; a quarterly business rhythm may justify more.
Product licence groups
A read-only list of the groups the app believes grant each product, detected from your organisation when the screen opens. It is here to be read, not edited — it is what every Revoke Product Access and every licence-group rule acts on, so it is worth checking once. Groups your identity provider synchronises are badged, because membership changes there would be overwritten on the next sync.
Protected entities — the most important screen in the app
- Add your admin accounts, including the one you are signed in as. Adding
org-adminsas a group works, and is the more durable choice because it keeps protecting new admins as they join. - Add service and integration accounts individually. They are inactive by definition, which makes them prime targets for exactly the wrong reason.
- Add the individual accounts of anyone whose suspension would be expensive — executives, auditors, a regulator-facing team.
- Prefer Protected Groups for anything that changes over time — a group keeps protecting people who join it later, where a list of accounts silently goes stale.
Groups your identity provider owns
If a group is synchronised from Azure AD, Okta or another directory, this app will not touch it — it is not selectable when you build a rule, and it is skipped at execution time with the reason recorded. That is not caution for its own sake: the provider would put everyone back on its next sync, the rule would remove them again on its next run, and you would have an audit log full of successes that never stuck and a savings figure counting seats that never came back. Change membership of those groups where they are actually managed.