Madhurima
AI voice chat

OPORTUN • 2025

Customer experience for a credit app app

TIMELINE

2 months

ROLE

Product Designer (Me!)

TEAM

Design Lead

Product Managers

Developers

Tl;dr

ABOUT STREAMLINE

Streamline is a B2B SAAS asset library with millions of users including Fortune 100 companies. Streamline is a design tool built around a large catalog of high-quality vector assets like icons and illustrations. Designers, marketers, and developers use it to browse huge sets, drop assets into collections, customize them, and export in the formats and sizes they need for products, decks, or code.

WEB APP

the problem

Costs were climbing because most members defaulted to support instead of using self‑serve. We were seeing around 116k support calls a month for about 800k active loan members, a clear evidence that people weren’t getting answers in the product itself. As more people paid late, delinquency risk rose and the business took a hit.

MY ROLE

From 2022 to 2024, I led product design at Streamline, joining with almost no prior experience in the asset-library space. I just had a lot of curiosity and a willingness to learn on the job. Looking back, there’s so much I would approach differently, but this project gave me a solid foundation in design, leadership, collaboration, and the real feeling of shipping!

IMPACT

We saw huge lifts in feature discovery +395% and logins +64%, calls dropped ~29%, and payment conversion rose ~26%.

OVERVIEW

Oportun is a fintech company focused on serving individuals with limited or no credit history.

They offer personal loans, credit cards, and a savings app, serving a current user base of 2.2 million across 41 states in U.S.

NASDAQ:OPRT

PROBLEM

Operational costs are rising due to heavy reliance on support calls.

Even though Oportun has a web and mobile app to self-serve, most of its ~800k active loan members still rely heavily on customer support calls accounting to about ~116k calls monthly.

…and this reliance contributes to increasing delinquency.

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed decisions, missed payments, and increased delinquency risk. Shifting the behavior toward self-service requires building trust through transparency, clarity, and ease of use.

OUTCOME

Impact 1 month post launch!

395%

Feature discoverability

64%

App logins

29%

Customer calls

26.19%

Payment conversion

SOLUTION

Here are some of the core flows

The project began with an ambiguous scope that later expanded significantly. But we delivered a user-focused design that surfaced essential information contextually and in an easy-to-digest way.

Contextual payment widget

Members can access current loan information with a single click from the home page, with relevant details displayed based on the user's loan lifecycle stage.

Leading with transparency

Members can access current loan information with a single click from the home page, with relevant details displayed based on the user's loan lifecycle stage.

Easy access to payment receipts

Members can access current loan information with a single click from the home page, with relevant details displayed based on the user's loan lifecycle stage.

INITIAL OBSERVATIONS

The data shows that members primarily call about payments and loan information.

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

But why Online Servicing? Why not other touch points?

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. Additionally, we also tried to scope it down further to mobile web to start with due to the following reasons below:

Users preferred to go mobile first on Online Servicing web

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. Additionally, we also tried to scope it down further to mobile web to start with due to the following reasons below:

Active users

Most of the app logins were recorded to be from mobile web.

Outdated designs

Web designs were not up to date with the latest design system.

Transition codebase

Switching from Python to JS, for sharing repo and consistency.

GOALS

Help users find important information

User goal

Reduce overhead costs and build trust

Business goal

Help users pay their bill on time

User goal

Reduce delinquency

Business goal

Make taking loans a smooth experience

User goal

Retain good users and repeat customers

Business goal

DESIGN PROCESS

Working my way down, thinking from a high level structure…

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

Finding areas of improvement in the current experience and tried to be 'transparency forward' during the iterations.

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed.

BEFORE

Multiple clicks to get to the payment screen and even then, the payable amount is inconsistent.

AFTER

Single click to get to the payment screen and the payable amount is clear and consistent across.

BEFORE

Important loan information are static and buried deep in the experience with no clear understanding of complex jargons and numbers.

AFTER

Loan information are upfront with understanding of complex jargons with easy breakdown of numbers with real-time updates.

BEFORE

Receipts that users downloaded before were static PDFs that was filled with jargons.

AFTER

Current receipts are easy to understand and broken down into contextual sections.

Mapping out all users states and edge cases

I mapped out the user journey from start to finish, considering all possible user states that could impact loan and payment details. I focused on identifying relevant information to display at a glance and how it would vary across different user states. For example, a member who has missed a payment would likely want to see if any late fees have been applied and how they are calculated.

I did the same for the loan details section too, except the mapping there was different.

Finally, I joined all the pieces together to arrive at the key screens

I mapped out the user journey from start to finish, considering all possible user states that could impact loan and payment details. I focused on identifying relevant information to display at a glance and how it would vary across different user states. For example, a member who has missed a payment would likely want to see if any late fees have been applied and how they are calculated.

Rounds of reviews with stakeholders

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed.

DESIGNing WITH CONSTRAINTS

Removing multiple fields due to API data limitations

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

Despite a mobile web layout, a bottom navigation was added to meet guardrails.

But due to the bottom navigation, the information architecture got simplified.

Removing the quick actions as the bottom navigation made it feel redundant.

Several fields has to be removed due to the absence of events and API data limitations.

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed.

QA & TESTING

I tested multiple simulated user accounts in staging and evaluated design specifications across various mobile screen sizes to be sure.

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

We launched the new version to 15% of the user base to test the waters…

Renewal signups and hardship CTR's reached a new low right before the launch

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

Renewal sign-ups are low

Renewal is a card on the top of the fold.

Hardship CTRs dropped

Making sure the hardship cards remain visible in the first fold.

FINAL DESIGN

What we finally shipped to 2.2 million users!

REFLECTION

My key takeaways and learnings!

Outdated designs

App was outdated and not updated with latest design system.

Active users

Most of the app logins were recorded to be from the web app.

How would I do differently now with AI?

Connect Figma MCP and test mockups

App was outdated and not updated with latest design system.

??

Most of the app logins were recorded to be from the web app.