๐Ÿ”’

This case study is under NDA

Enter the password I shared with you to view it.

That's not quite right โ€” try again.

โ† Back to portfolio
โ† Back to work

One problem, two workflows:
redesigning transaction filtering

Designing faster, more contextual filtering across a Merchant Portal and Back Office for a fintech payment platform.

RoleProduct Designer
TeamPM, BA, Engineers, Support
ScopeMerchant Portal + Back Office
StatusShipped

The impact, in numbers

MetricBeforeAfterImprovement
Filter panel openings to modify a filter10100% โ†“
Filter application steps2150% โ†“
Filter state visible in main workspace1 location2 locations2ร— visibility
Ways to filter transactions122ร— more entry points

Overview

In a fintech payment platform, users work with large amounts of transaction data every day.

The Merchant Portal allows merchants to manage their payments, view transactions, reports, invoices, company information and other account data.

The Back Office is used by internal teams to manage merchants, approve companies, reconcile transactions, calculate fees, manage groups, thresholds, sweeps and top-ups.

Both products relied heavily on filtering โ€” but their users had very different expectations.

The existing filtering experience required users to open a separate filter panel, configure their criteria, apply the changes and then return to the table. Changing one filter often meant repeating the process.

The goal was not simply to make the filter UI look better.

The challenge was to make transaction filtering faster, more visible and better suited to each product's users and workflow.

Back Office and Merchant Portal before: filter panels covering the table
Before โ€” filter panels covering the table in both products

The challenge

How might we make filtering faster and easier to control while supporting two different user workflows?

The same underlying problem appeared in both products, but the users approached data differently.

Merchant Portal

Merchants need a familiar, easy-to-understand filtering experience. They shouldn't need to learn a technical query language to investigate their transactions.

Back Office

Internal users work with large datasets and are more accustomed to technical tools and analytical workflows. They need to combine multiple parameters quickly and repeatedly.

This led to a key design principle:

Don't force one filtering pattern onto different users. Design the interaction around the user's mental model.

My role

I was the only designer working on the project. I was responsible for:

I worked closely with the Product Manager, Business Analyst, Engineers and Support team throughout the project.

Understanding the problem

The project was initiated after feedback from the Support team and merchant-facing workflows highlighted friction with transaction filtering.

I started by understanding how people actually used the Back Office and Merchant Portal, rather than assuming that the existing filter structure was the right model.

Business Analyst interview

I explored how internal users work with transaction data, what they search for and which tools and interaction patterns are already familiar to them.

Support interview

I focused on real support workflows: finding users and transactions, changing search criteria, investigating failed payments and working with new transactions while communicating with a merchant.

Existing experience analysis

I mapped the current filtering flow and identified repeated actions, hidden context and points where users could lose their working state.

Competitor / product analysis

I looked at products and patterns familiar to the team, including Supabase, which uses a more technical filtering model similar to the needs of our Back Office users.

What I learned

01 โ€” Filtering was part of the investigation, not a separate task

Support doesn't necessarily know the exact answer before starting a search. They may begin with one piece of information, inspect the results, notice something interesting and then add or change another filter.

The existing filter panel treated filtering as a separate step:

Openโ†’Configureโ†’Applyโ†’Inspectโ†’Reopenโ†’Change

This made iterative investigation unnecessarily cumbersome.

OpportunityBring filtering closer to the data and make individual criteria easy to modify.

02 โ€” Users need to keep their working context

During a support conversation, a user may need to refresh the transaction data because new Payins have arrived. Previously, refreshing the page could remove the current filtering context โ€” meaning the user could have to reconstruct the search they were already working with.

OpportunityAllow users to update the transaction data without forcing them to restart their investigation.

03 โ€” Active filters need to remain visible

Support may combine several parameters, such as merchant, status and bank. When filters are hidden inside a separate panel, users have to remember what they selected or reopen the panel to inspect it.

OpportunityMake the current filtering state visible directly above the data.

04 โ€” Different users have different mental models

This became one of the most important findings. The Merchant Portal serves merchants who expect familiar, visual interactions. Back Office users are more technical and frequently work with large datasets โ€” they are comfortable with parameter-based search and analytical tools.

OpportunityUse the same underlying principles but different interaction patterns.

From insights to design principles

The research led to five principles that guided the redesign.

Solution: Merchant Portal

From a filter panel to contextual filtering

Before

The Merchant Portal used a large filter panel. The user had to open the panel, configure the criteria and click Apply. When they wanted to change something, they had to open the panel again. The table was partially covered while the filter panel was open, separating the act of filtering from the data being investigated.

After

I moved the filtering experience directly above the transaction table, combining filter controls, active filter chips, sort, individual filter removal, multi-filtering and table-level filtering opportunities into a filtering workspace that stays connected to the data.

Merchant Portal before: a filter panel drawer covering the table
Before โ€” filter panel covering the table
Merchant Portal after: filters and active filter chips live above the table
After โ€” filters live above the table

Active filters became directly editable in the primary filtering bar

In the previous experience, selected filters were shown as chips below the table after the user applied them. However, changing those filters still required reopening the filter panel.

In the redesigned experience, the active filter state is brought into the main filtering bar above the table, where users can immediately see and modify their criteria. For example:

Order ID: 234

This creates a more direct relationship between the filter state and the transaction results, while reducing the need to repeatedly open and close the filter panel.

The actual improvement

Before
Open Filtersโ†’Selectโ†’Applyโ†’See chipsโ†’Open Filters again to change
After
See active filterโ†’Click filterโ†’Changeโ†’Continue

Solution: Back Office

The Back Office needed a different approach. Rather than moving the Merchant Portal filter pattern directly into the Back Office, I designed a search-first filtering experience. The main interaction became a query-style search field:

Search payins โ€” try amount>500, status:failed, merchant:Tailor...

Users can build a query using keyboard or mouse interaction, while the interface suggests available parameters and values. This makes the filtering experience closer to the analytical tools and workflows already familiar to technical users.

Back Office search bar suggesting available filter keys and syntax
The search bar suggests available filter keys and syntax as you type
Back Office before: a filter panel drawer
Before โ€” filter panel drawer
Back Office after: search-first query bar with saved filters
After โ€” search-first query bar
MetricBeforeAfterImprovement
Filter-panel openings to start a search10100% โ†“
Saved filter presets03New capability
Filter context lost after refreshYesNoContext preserved
Data refresh scopeFull pageTable onlyScoped, not full-page
Filtering entry points133ร— more entry points

Why two solutions?

This was a deliberate product decision. The products share the same principles, but the interaction model is adapted to the audience.

Merchant PortalBack Office
Primary usersMerchantsInternal / technical users
Mental modelFamiliar visual controlsTechnical / analytical
Main patternFilter chips + dropdownsQuery-style search
PriorityDiscoverabilitySpeed and flexibility
InteractionSelect values visuallyBuild a query
Additional capabilityContextual table filteringSaved queries + column filtering

Saved filters

I also introduced saved filters in the Back Office. Common searches can be saved and reused, for example:

Failed todayRefundsPending
Saved filters as reusable chips above the table, with a Save filter dialog
Saved filters appear as one-click chips above the table

This is particularly useful for repetitive operational workflows where users repeatedly investigate similar transaction sets. Instead of reconstructing the same query each time:

Create onceโ†’Saveโ†’Reuse

Refresh without losing context

Another important improvement came directly from Support's workflow. New Payins can arrive while a support agent is investigating a case. Previously, the user could refresh the entire page, which risked losing the filtering context.

I introduced a dedicated table refresh action in the Back Office. The mental model becomes:

A dedicated refresh action next to the saved filters, labelled Update the table
A dedicated refresh action updates the table without touching the active search
Refresh dataโ†’Keep my searchโ†’Continue investigating
Rather than
Refresh pageโ†’Lose contextโ†’Rebuild search

The Support team identified the need for fresh data; my contribution was translating that requirement into an appropriate interaction and placing it where it would be easy to access without disrupting the workflow.

Design acceptance

My involvement continued beyond the Figma designs. I worked with Engineering during implementation and performed design acceptance to make sure the final product matched the intended interactions and visual design.

I also created an interactive prototype that allowed the filtering interactions to be explored and clicked through before implementation โ€” this helped communicate not only how the screens should look, but how the filtering system should behave.

What changed

The redesign moved filtering from an isolated interaction into the user's primary transaction workflow.

Before
Open filter panelโ†’Configure filtersโ†’Applyโ†’Inspect resultsโ†’Open panel againโ†’Change filterโ†’Apply again
After
See data + filters togetherโ†’Change one criterionโ†’Immediately see filtering contextโ†’Use table values as shortcutsโ†’Refresh data without losing contextโ†’Save repetitive searches

Outcome

The redesigned filtering experiences were fully implemented across the Merchant Portal and Back Office. The main outcome was a shift from a form-based filtering model toward a more contextual and workflow-oriented model.

Merchant Portal

Back Office

Reflection

The biggest lesson from this project was that filtering is not just a UI component. It is part of how users investigate information.

Initially, the problem could have been solved by simply redesigning the filter panel. But looking at the workflows revealed a bigger opportunity: filtering could happen closer to the data, and different users could benefit from fundamentally different interaction models.

The Merchant Portal became more visual and contextual. The Back Office became more technical and efficient. The common principle was simple:

Help users get from a question to the right data with as little interruption as possible.

The most valuable design decisions were the ones that made filtering feel less like a separate action and more like a natural part of investigating transaction data.

Next up

Tripmate: designing a travel app for planning trips together

View case study โ†’