Case Study · UI Revamp
A UI revamp that turned identity lifecycle plumbing into a guided, observable admin console.
SCIM provisioning keeps Jira’s directory in step with the identity provider: accounts exist on day one, groups stay current, and leavers lose access the moment they leave. It works best when nobody has to think about it.
Context
The product already had the capability. The old interface simply trusted the admin to prevent the quiet failures: to know the setup order, to find the endpoint details in the docs, and to assume the sync was working. Direct customer access was limited, so I triangulated across the evidence I could reach.
Converges to
Setup-confidence gaps
So I rebuilt the admin console into a gated, guided, and observable experience. Four of its areas are recreated below as working interfaces you can operate yourself.
Confidentiality note. Due to NDA restrictions, the interfaces here are anonymized, white-labelled recreations with fictional companies and data. The product logic and UX decisions are preserved.
Why
When provisioning is misconfigured, nothing crashes. A new hire waits days for an account, or an ex-employee keeps one, and that second failure is a security incident.
Pick a directory event, then switch the revamp's guardrails off and on. The provisioning outcome rewrites itself, quietly.
Identity provider sync
SCIM · keeps Jira’s directory in step
Directory event
Console guardrails
The revamp’s three moves. Switch them off to feel the old console.
Provisioning outcome
Access is removed the moment they leave, so the directory stays right. The request, its result, and any failure sit in the filterable audit log.
Old console trusted the admin to
The revamped console
Nothing in the failure states crashes. That is the point: the console's job is to make quiet failure either loud or impossible.
Ownership
This was mine to shape end to end: the UI revamp, the guided setup flows, the interaction design, and the working prototype. I structured the console as five areas that form one operating loop, and worked through it screen by screen with the product owner and the engineers building it.
Validate prerequisites
Setup cannot start broken
Guide configuration
A three-step wizard
Show sync status
Filterable audit logs
Support recovery
Backup and restore
The walkthroughs below cover four of these areas end to end, with the same Atlassian-native chrome the shipped console uses. Operate them yourself, in the order the loop runs.
The gate: credentials and site URL are validated here before any application can exist.
Pick a provider, choose an integration method, and walk the three-step wizard to a working application.
Every provisioning request, filterable by status and application.
Move configurations between instances with an export and an import.
Impact
The revamp was designed to reduce setup confusion and give admins automation they could audit instead of assume.
Before
Setup order left to the admin to guess
After
Prerequisites gated, with a clear path to complete them
Before
One long configuration form
After
A guided three-step wizard per application
Before
Provisioning ran invisibly
After
Every request in a filterable audit log
The admin gate holds back application setup until credentials and the site URL are verified.
Application setup became three steps with copy-ready endpoint details.
Every provisioning request, result, and failure is visible and filterable.
Judgment
Gating setup felt restrictive on the whiteboard. In practice it is the kindest thing the console does: it makes the wrong order impossible instead of documenting it.
The automation was already reliable. The revamp set out to make it trustworthy.