Forms was costing ConnexAI real money. QA flagged the same regressions every release, client implementations stalled on configuration errors. Product leadership wanted a three-month UI refresh. I pushed back.
Note: Due to NDA constraints, this case study focuses on problem framing, decision-making, and system design rather than UI artefacts.

Impact: QA stopped flagging silent API failures. Support escalations for broken integrations dropped. Users gained trust that saved configurations actually work.
Problem: The API Mapper let users build invalid configurations that only failed weeks later at runtime. Users lost trust. QA wasted hours manually testing what the system should have caught upfront.
Solution: I redesigned the mapper to validate errors before save. Added inline validation showing exactly which fields were misconfigured, replaced generic errors with specific guidance, and restructured the UI to make data flow logic visible.
Process: Close collaboration with engineering to understand what the system could validate. Designed around those technical constraints rather than ignoring them.
Restore clarity, predictability, and trust across a complex configuration system, while working within real technical and delivery constraints.
Forms was costing ConnexAI significant operational overhead and slowing client growth.
Our QA team flagged the same recurring configuration issues every release cycle. wasting hours manually testing what the system should have caught automatically. Support escalations for broken integrations were common. Client implementation teams reported that Forms was their biggest bottleneck during onboarding, with configurations that appeared valid often failing silently weeks later in production.
Product leadership wanted a 3-month UI refresh to bring Forms in line with our current design system. I pushed back.
After auditing the product, I identified the real problem: this wasn't a visual issue. Forms had a structural failure. Invisible dependencies between interconnected modules (Form Builder, API Mapper, PDF Builder, Rules Engine) meant users could unknowingly build broken configurations that only surfaced downstream.
58 enterprise clients across 5 continents were already using Forms in production. A full platform rebuild wasn't feasible. We needed to fix the information architecture without breaking existing workflows.
ConnexAI is a B2B company. I didn't have direct access to end users. I explored three approaches to user research:
Approach 1: Request direct client access
Ask Product to coordinate user interviews with enterprise clients.
Not feasible. Enterprise clients don't grant access to B2B SaaS designers without formal research programs, which ConnexAI didn't have.
Approach 2: Proxy research through support and QA
Treat internal teams who interact with clients daily as user proxies.
This worked. Our developers, QA team, and support handled client implementations and troubleshooting. They became my research partners.
Approach 3: Use ConnexAI's own support team as test users
Our internal support team used Forms to configure client instances.
Helpful for usability validation, but they knew the product too well to catch beginner issues.
I combined Approaches 2 and 3. I conducted a full product audit, worked closely with QA and engineering to map pain points, analysed support ticket patterns, and validated designs with our internal support team before shipping. This wasn't ideal. Direct user research would have been better. But I owned what I could within constraints rather than waiting for perfect conditions.
The audit revealed a consistent pattern across Forms: users were expected to mentally simulate backend behaviour that was nowhere visible in the UI.
This wasn't a traditional usability problem. It was a system legibility crisis.
How do we make system constraints, dependencies, and validation states visible at the point of configuration, so users can build accurate mental models of how Forms actually works?
As I dug deeper, a consistent pattern emerged. The most painful issues were not caused by missing features, but by invisible rules.
I began using a simple diagnostic lens across Forms:
My goal was not to add more UI. It was to externalise system behaviour so users could understand what was happening, when it was happening, and what to do next.
This lens shaped every design decision that followed.
Before touching any UI, I had to decide how to approach a system this interconnected. I considered three options:
| Option 1: Big-bang rebuild | Option 2: API Mapper first | Option 3: Phased delivery | |
|---|---|---|---|
| Approach | Redesign everything at once, ship as one release | Fix the most broken part first, then expand | Start with quick wins, build to complexity |
| Pros | Cohesive vision, no incremental inconsistency | Addresses highest-risk area immediately | Early wins build confidence, patterns validated before tackling complexity |
| Cons | High risk, long timeline, no learning loops | Starts with hardest problem before understanding system | Temporary inconsistency between old and new UI |
| Decision | Not chosen | Not chosen | Chosen |
Phased delivery let me learn how the system actually worked before tackling its most complex parts. Each phase revealed constraints I couldn't have anticipated upfront.
Quick win to build stakeholder confidence. Low complexity, high visibility.
Core product functionality. Established design patterns and validated approach.
Highest complexity, deepest engineering collaboration. Tackled last with full system understanding.
For each feature, I followed a repeatable process: map the current user flow, design the improved flow, validate with the design team for consistency, review with developers for feasibility, then iterate based on feedback.
The API Mapper was the most complex and fragile part of the platform, and where my information architecture skills were tested the most. It represented the deepest level of interconnected functionality in the system.
It supported POST, GET, and PATCH requests, dynamic variables, mapped paths, and response handling. From a technical standpoint, it was powerful. From an IA standpoint, the dependencies and relationships were completely invisible to users.
Failures often occurred silently. A configuration could be saved successfully, yet still be invalid. Users only discovered problems later, when the mapped API failed during form submission or testing.
Before redesigning anything, I sat down with engineers to learn how APIs actually work. I needed to understand not just the feature requirements, but the technical reality of how requests behave, fail, and recover.
I mapped out:
This wasn't just a B2B SaaS feature. Forms is interconnected with 5 other products in our suite. Data configured in API Mapper flows to Form Builder, PDF Builder, and Rules Engine. One change could have downstream effects across the entire platform. I had to map these dependencies and ensure every design decision accounted for them.
Only after understanding the system end-to-end did I begin redesigning the experience. The interface needed to match the technical reality, not hide it.
One small but critical issue exposed a deeper UX problem.
The API Mapper gave no feedback after saving a configuration. Users would add their endpoint URL, click save, and the system would silently store it. No validation, no confirmation of what was checked, nothing.
Silence created false confidence. Users assumed that if the system accepted their configuration without complaint, it must be valid. They would discover problems weeks later when the form actually tried to use that API and failed.
I went to the engineering team to understand why this was happening. They explained that users configure API endpoints with variables like {userId}, but if the syntax is wrong or the variable isn't mapped to data, the system can't always catch it at save time. The configuration saves successfully, so users think it worked. Then weeks later when the form actually tries to use that API, it fails.
The constraint: True validation would have required making live API calls, which wasn't feasible due to authentication complexity, rate limiting, and environment differences. But we could validate syntax and data mapping at configuration time.
I split the state into two distinct concepts:
For variables specifically, I designed a three-state inline validation system with colour-coded highlights and tooltips:
This gave users immediate, actionable feedback at the point of configuration rather than discovering issues weeks later during testing.
This pattern, making system guarantees explicit, became foundational across Forms.
As forms grew larger, inherited horizontal page tabs broke down:
I challenged carrying this pattern forward during the redesign, even though it existed in the previous UI.
The invisible rule was clear: "page structure exists, but you must hold it in your head."
I redesigned page management to prioritise visibility and manipulation over continuity with legacy patterns. Page structure became visible as a vertical sidebar where users could see all pages at once, drag-and-drop to reorder, and edit pages. This is especially useful for multi-page enterprise forms.
Pages become increasingly hidden as the list grows
All pages visible and directly manipulable
I also redesigned configuration panels for form nodes such as text inputs, dropdowns, date/time fields, multi-selects, media, navigation, and links.
Previously, settings were dense, inconsistently grouped, and often mismatched user intent. I restructured these panels to:
This significantly improved testability and reduced misconfiguration, especially for complex forms.
In the PDF Builder, several elements looked interactive but weren't. Page reordering felt unpredictable, and actions lacked clear feedback.
Here again, the issue wasn't missing functionality. It was mismatched affordances.
I clarified what was actionable, what wasn't, and when changes took effect. Interactions became more predictable, and users no longer had to "try things" to understand behaviour.
I operated autonomously on this project, but success required deep collaboration across disciplines:
Design work was always paced ahead of development so flows were reviewed, validated, and ready when sprints began.
The redesign shipped and remains in production today across 58 enterprise clients on 5 continents.
Forms was later deprioritised as ConnexAI consolidated from 6 products to 3, but the design work remains in production. Solid IA decisions outlast shifting business priorities.