Team & user management

I didn't build a feature. I built the system that runs every client.

One self-serve module — Users, Roles, and Teams — that hands full environment control to every client, across five lines of business, with zero modification.

5+
LOBs, zero modification
0
Interventions after launch
Top
Cited selling feature

One module, three pillars — Users, Roles, and Teams — handing full environment control to the client. No backend access required.

01 — Where It Started

A platform for everyone. Configured for no one

One unified platform. Multiple LOBs, multiple clients — all running on the same base system.

But every client had different role structures, different hierarchies, different terminologies. And there was no way to handle any of it from the client's side.

02 — The Problem

Every change needed us. That was the problem

The old reality

  • All user creation, role setup, and permission configuration handled by our CSI from the backend.
  • Every role change or new user meant a support request to our team.
  • Dev team permanently queued with client-specific customisation tasks.
  • Smart platform. Zero client autonomy.
The Pressure

One CSI managing all client environments — setup, updates, and customisation for every client, on every LOB.

The Dependency

Dev team allocated to permission changes that should never have needed engineering effort.

03 — The Solution

Give the platform to the client. All of it

A self-serve User Management module — three features that hand full environment control to the client. Our CSI's only job at onboarding: create one admin.

Users

Self-served

Create and manage users individually or in bulk. Assign roles, regions, and teams. No backend needed.

Roles

Client-configured

Define role hierarchy, name roles their way, set permissions per role. Fully client-configured.

Teams

Geography-aware

For clients across regions and countries. Create teams by location, assign managers, scope submissions.

Users — How it works

Create, manage, and audit — no backend

Screen 1 — Users landing page

One view of every user — role, region, team, and status at a glance.

Screen 2 — User creation pop-up

Region and country captured at creation — feeds directly into smart team filtering later.

Screen 3 — User profile page

Full profile — permissions visible and auditable without backend access.

Roles — How it works

Define the hierarchy. Name it your way

Screen 4 — Roles landing page

Every role named and structured the client's way.

Screen 5 — Role creation pop-up

Permissions set once at role level — all assigned users inherit instantly.

Teams — How it works

Structure around geography and role

Screen 6 — Teams landing page

Every team — geography, manager, and workload visible at a glance.

Screen 7 — Team creation pop-up

Teams built around geography and role — not tracked in spreadsheets.

Screen 8 — Team detail · Members

Manager owns the roster — no ticket needed to make changes.

Screen 9 — Team detail · Assigned submissions

Submissions scoped to the team — no noise from other regions.

04 — My Contribution

One flow I added that no one asked for

Inline Reassignment on Delete

Problem

Deleting a user blocked until their work was manually reassigned elsewhere. A broken, multi-step dead end.

Decision

Brought reassignment inside the delete flow. The system surfaces active submissions and prompts inline reassignment before confirming deletion.

Outcome

One guided flow completes both tasks — reassign and delete — without leaving the page.

Delete confirmation — inline reassignment

Reassignment lives inside the delete flow — one action completes both tasks.

05 — Impact

One system. Every client. Forever

Row 1 — Client impact

100%
Client environments configured without backend access
0
Support tickets for role or permission changes post-launch
5+
LOBs on one system, zero modification
Top
Cited selling feature by new enterprise clients

Row 2 — Design impact

9
Screens across Users, Roles, and Teams
4
Sub-admins any client admin can create
Solo
Entire module designed by one designer, still live today
8+
Years in production across every LOB
06 — What this taught me

Designing generic systems is the hardest UX work

1

Generic systems need invisible flexibility

It has to work for every client without feeling built for someone else. That takes ruthless abstraction and thoughtful defaults.

2

Requirements don't design themselves

The inner details weren't in any brief. They came from understanding what a manager actually needs to do their job.

3

Critical flows must respect user intent

The intent is to delete — not to be blocked. Help them complete it safely instead of standing in the way.

4

Data collected early pays dividends later

Region and country at creation felt minor. They became essential for smart team filtering down the line.

Systems design note

"This system was designed to never need changing, no matter how many new LOBs or clients join. That's the real measure of system design — not how well it works today, but how gracefully it scales to every scenario you haven't built yet."