Context The company has an internal service used for B2B fulfillment clients (order processing service). Tariffs are linked to clients through a hierarchy: Client → Contract → Tariff Grid.
There was no unified interface to manage these entities. Users had to make several requests to backend developers just to edit a single field – this slowed down the workflow and often led to mistakes because of inconsistent actions.
01. Research & Insights
To understand the AS IS process and find pain points, I conducted in-depth interviews with managers who work with client contracts. During the research, I collected artifacts in the form of user stories and JTBD, and explored all technical and business corner cases.
02. Hypoteses
Based on the research, I defined both problem and solution hypotheses. I assumed that users struggled to manage tariffs because there was no single interface and they depended on the backend team. Giving users the ability to add and manage data about clients, contracts, and tariff grids in one place — with a clear hierarchy and access restrictions – would reduce mistakes and make them fully autonomous.
03. Product map
Based on the findings and ideas collected during the research, I created a structured functional architecture — a product map with all key entities.
04. Task flow TO BE
After aligning the architecture with the product team, I described all user cases in Task Flow To Be format to check how well the scenarios were connected.
05. Design & Testing
The key actions in the interface included: – Creating clients – Linking contracts – Assigning tariff grids – Managing the client’s status
This helped ensure smooth and error-free operations.
To check usability, I conducted moderated UX tests with users.
07. Final Design Delivery
Based on the UX test results, I improved the interface, prepared final mockups, described the interaction logic, and handed everything over to development.
08. Outcome
With the new feature, users can make changes to customer contracts in just a few clicks instead of going through several stages of communication with expensive developers = reduced cost of task execution