case study 03 / traact modules settings_

Scaling Configuration in a Live Enterprise Platform

Scaling Configuration in a Live Enterprise Platform

Redesigning configurable systems for a legal operations SaaS that outgrew its original design, without breaking what was already in production.

Company

Traact

Role

Product Designer

Focus

Enterprise Configuration UX

Enterprise
Configuration UX

Timeline

2025 – 2026

Status

● Shipped

tl;dr / 30-second version

The problem

A developer-led platform grew fast. Configuration, statuses, filters, custom fields, views, became inconsistent and hard to reason about for enterprise clients running real operations on it.

My role

Sole designer on this workstream, end to end: from mapping client requests to shipped patterns, working directly with the PM, CTO and engineers.

What shipped

Modules Settings, Status Triggers, behavior-grouped Filters and Saved Views, live and in active use across enterprise accounts.

The result

Two enterprise clients at risk of churning renewed their contracts. Both renewals involved workflows this work directly addressed.

context

A platform built for speed, not scale

Traact is a Legal Operations SaaS built to help enterprises manage contracts, entities, and compliance workflows. Early on, it was developer-led and shipped fast. That speed won clients. But as those clients migrated real operations into the platform, the gaps left behind became blockers.

I joined at this inflection point

Not to redesign from scratch, but to address design debt in a live product with real clients depending on it, every day, in production.

Where I owned the problem

Mapped recurring client requests and support patterns into design problems

Defined the interaction architecture for settings, triggers, filters and views

Explored and pressure-tested alternatives with PM and engineering before building

Designed within the existing design system: extensions allowed, deviations not

Followed each pattern through delivery and post-release client feedback

The team around it

Me

Product Design

Product Manager

Priorities / clients

CTO

Architecture

Engineers

Delivery

Customer Success

Client signal

constraint landscape

Four forces that shaped every decision

These weren't obstacles. They were the actual design problem.

These weren't obstacles.

They were the actual design problem.

/01

Interconnected modules

A change in one module cascades into others. Statuses, fields and views cross module boundaries.

/02

Mixed user sophistication

Same interface, different mental models: legal admins, paralegals and ops leads configuring the same system.

/03

Live system

Nothing could break existing client workflows. Every change shipped into active enterprise operations.

/04

Design system

Extensions, yes. Deviations, no. New patterns had to be expressible with existing components.

Working within the design system forced me to solve problems through structure and interaction logic, not visual novelty. That constraint shaped everything that follows.

discovery

Reading the system before touching it

There was no formal research team. The signal existed, it just lived in different places.

Client & support signal

Clustered the backlog of configuration requests from enterprise accounts into recurring patterns, and worked with Customer Success to find where clients repeatedly got stuck: filters, statuses and exports.

System walkthroughs

Mapped how statuses, custom fields and saved views actually connected under the hood, with engineering, to see which changes rippled where.

Session recordings

Watched how admins really navigated configuration screens: where they hesitated, backtracked, or abandoned a setup halfway.

What the signal converged on

Clients weren't asking for more features. They were asking, in different words, to understand what a configuration change would do before committing to it.

Each configurable element is a node in a larger operational graph. A status triggers automations and affects visibility. A custom field breaks filter logic if poorly structured. A saved view captures state that can become inconsistent as data evolves. The challenge: users needed to understand not just what they were configuring, but what consequences it would have across the system.

core tension

Enterprise configurability demands depth. Enterprise usability demands clarity.
These two goals live in constant conflict, and the design has to manage that conflict, not eliminate it.

design decisions

Three problems, three structural responses

Not just what was built, but why the alternatives were considered and set aside.

/01

Structure first, behavior second

Modules Settings

Status Triggers

Option A — considered

Single unified screen

Create statuses and their triggers together, in one place. Fewer screens, but every decision carries automation weight from the first click.

Option B — chosen

Progressive separation

Define structure first, then behavior. Statuses exist on their own; triggers attach as a second, deliberate step.

Why this direction

Status triggers cascade into notifications, assignments and visibility rules. Combining both surfaces forces users to think about consequences before defining structure. Keeping them separate also lets the trigger layer evolve independently as automation complexity grows.

/02

Filtering by behavior, not by name

Filters

Custom Fields

Saved Views

Option A — considered

Flat alphabetical list

All filters in one list, A to Z. Simple to build, hard to reason about: a date and a person sit side by side as if they worked the same way.

Option B — chosen

Grouped by data behavior

Filters grouped by how they behave: dates, amounts, people, status, custom fields. The structure itself teaches the mental model.

Why this direction

Different filter types behave differently: date filters use temporal logic, amount filters use operators, people filters use membership. Grouping by behavior helps users build the right mental model of how the system reasons.

/03

Export as a contextual workflow action

Entities Export

Licenses & Permits

Option A — considered

Export inside existing modal

Keep export where it already lived, buried in a settings modal. Zero new patterns, zero new risk, and zero improvement.

Option B — chosen direction

Contextual action at table level

Export surfaces where the decision actually happens: while viewing the data, tied to the user's current view context.

Why this direction

Users decide to export while viewing data, not inside settings. Surfacing it contextually reduces interaction distance. The trade-off was a new interaction pattern: the team adopted it incrementally, preserving existing architecture short-term while treating contextual actions as the future direction.

recurring theme

Many enterprise UX problems are not screen problems. They are workflow coordination problems: where actions appear, when users expect them, and how much operational context they retain when they act.

shipped / in motion

The flows, running in production

→ Real flows from the shipped product. Each recording shows the pattern in use, not a prototype.

Modules Settings overview

Status lists across Matters, Contracts and Licenses, showing the separation between structure definition and trigger configuration.

Filter panel: grouped categories replacing a flat list

Date, amount, people, status and custom field types, each with its own interaction logic.

Export flow

Contextual export action surfaced at the Permits & Licenses section level, tied to the user's current view context.

validation

How we knew it worked

In a live enterprise system, validation doesn't happen in a lab. It happens in rollout discipline and in what clients do next.

01

Pressure-tested before build

Every direction was reviewed with PM and engineering against real client scenarios before a line of code. Some options died here, which is exactly what this step is for.

02

Incremental rollout

New patterns shipped module by module rather than platform-wide, so any friction would surface in a contained scope with a clear rollback path.

03

Client feedback loop

Post-delivery feedback arrived through Customer Success channels. All shipped features originated from client requests, and the responses after delivery were positive, with clients adopting the new patterns in active workflows.

04

Iteration on signal

Early feedback on filter group labels led to renaming passes so categories matched the vocabulary clients already used internally. Small change, real adoption difference.

outcomes

What shipped and what it meant

Shipped

Live and in active use

Modules Settings, Status Triggers, Filters and Saved Views, running in production across enterprise accounts.

Validated

Grounded in client demand

All features originated from client requests. Positive feedback via Customer Success after delivery.

Scalable

Patterns, not one-offs

Status/trigger separation and behavior-grouped filters are now reusable patterns across modules.

business impact

During this period, two enterprise clients at risk of churning renewed their contracts. Both renewals involved workflows this work directly addressed.

Renewals are never one factor. But when the workflows named in churn conversations are the same ones this work rebuilt, design has a seat in that outcome.

reflections

What this work taught me about designing in live systems

/01

Design debt is structural, not visual

The real debt wasn't in the UI. It was conceptual: mental models that hadn't been designed, inconsistent patterns, configurations that didn't reflect how users thought. Fixing visuals without fixing structure creates cleaner debt, not less debt.

/02

Constraints are design material

Working within the design system forced problems to be solved through information architecture and interaction logic, not new components. Those solutions are more durable and transferable than custom UI.

/03

Configurability and clarity require active management

The real challenge is sequencing: foundational decisions first, operational complexity only when users are ready. Progressive disclosure isn't a technique. It's a philosophy about cognitive bandwidth at each stage of a workflow.

with hindsight

What I'd do differently

Measurement

Instrument earlier

Usage analytics on configuration screens arrived after the redesign started. With baseline data from day one, I could quantify the improvement, not just evidence it through renewals and feedback.

Access

Push for direct client sessions

Most signal came mediated through PM and Customer Success. Even two or three direct sessions with client admins would have shortened the loop between hypothesis and confirmation.

Documentation

Write the pattern rationale down

The reasoning behind each pattern lived in conversations and files. A short written rationale per pattern would have made the system easier to extend after my involvement ended.

Next case

Perle AI →

contact

_

If your product has outgrown its original design, that's the problem I like working on.

© 2026 Victor Melo. All rights reserved.

Designed with 🖤 in Porto

© 2026 Victor Melo. All rights reserved.

Designed with 🖤 in Porto

© 2026 Victor Melo. All rights reserved.

Designed with 🖤 in Porto