KYC Renewal flow used by 220k+ users, zero UX complaints

Users review and confirm their data without agent assistance, reducing account blocks

My role
Product Designer
Team
Product Owner
Frontend Developer (2)
Backend Developer (3)
Legal (1)
Time frame
1 Month
Tools
Figma
Slack
Jira Confluence
SwissBorg Back Office
Overview
SwissBorg operates in a regulated environment where user data must remain accurate by law. With over 700,000 users needing to reconfirm their information within a year, and no self-serve way to do it, the platform faced millions in potential fines. I designed a guided in-app renewal flow that handled it at scale with virtually no friction and no support dependency.
The Results
1.  The entire user base was brought into compliance within the regulatory deadline, avoiding millions of euros in fines and license suspension risk.
2. 220,000+ users completed renewal. Millions in fines avoided. Support tickets dropped significantly.
3. Out of 220k+ completions, there were virtually no UX-related complaints raised.
4. Users could now update their name and address without contacting support, freeing agents to focus on higher-risk compliance tasks.
5. The KYC widget went on to power multiple future compliance flows, making every subsequent regulatory request faster and cheaper to ship.
"Data renewal’s results are looking amazing. 220k users completed it with hardly any complaints and zero UX complaints."
Sebastien Morelle, Product Manager
The Problem
Hundreds of thousands of users needed to confirm their data and there was no way to do it without contacting support.
No self-serve flow
Any change to name, address, or identity required users to contact support manually, creating a bottleneck that couldn't scale.
No in-app entry point
Users had previously been prompted via email with no in-app path to complete renewal, leading to low completion and no visibility.
Regulatory deadline
If after 30 days without confirmation, the entire app locks. Users cannot continue until they comply.
If SwissBorg failed to confirm user data at scale, the platform faced millions in fines and potential license suspension.
The Solution
Rather than building from scratch, there was an opportunity to reuse the existing profile page that shows all the relevant user information and saving cost and time to the company.
Reuse profile page
Instead of designing a new screen, we surfaced the existing profile page with a single confirm button. Familiar, fast, and zero engineering overhead for the happy path.
KYC widget (thinking in systems)
Rather than building a one-off prompt, I designed a flexible KYC widget that could be used for any future compliance need. This became the standard entry point for all future regulatory flows.
Guided update flows
Users who needed to change their name, address, citizenship, or other details were guided through the relevant verification steps in-app, without involving support unless legally required.
Over 700,000 users needed to confirm their data within a year.
How do we avoid creating friction..🤔?
context
Why this is needed
SwissBorg had never asked users to reconfirm their data at scale in five years of operation. Regulations now required it and with hundreds of thousands of users on rolling annual cycles, the challenge wasn't just design. It was building something that could handle volume without breaking trust or flooding support.
Constraints
Epic limitations
User honesty dependency
The users confirm the accuracy of their data themselves. It's up to the users to be honest with us and tell us their latest information, or to confirm that nothing has changed and everything is correct.
Cost vs efficency
Manual review for all users would be impossible. Each Proof of Identity review costs money and would certainly lead to friction and drop-offs. So we don't want to make it mandatory to reverify identity.
Rolling Annual cycle
Not everyone renews at once. Each user renews based on their onboarding anniversary.
Roadblock policy
After 30 days without confirmation, the entire app must be locked. The user can not continue unless they confirm.
No backend capacity initially
A significant complication emerged mid-project. Onboarding questionnaire data wasn't stored in a reusable way, meaning renewal answers wouldn't persist correctly. Rather than patching it, we aligned as a team to build a proper questionnaire database unblocking data renewal and enabling a future tailored user journey epic at the same time. One fix, two problems solved.
Design Decisions
Every decision had a reason
The key decisions that shaped a flow used by 220,000+ users.
Reusing the profile page
The most important design decision wasn't a new screen, it was simply not building one. The profile page already contained everything users needed to review. By adding a single confirm button rather than designing a new flow, we removed engineering overhead, kept the experience familiar, and covered the happy path for the majority of users with minimal friction.
The KYC widget as a system
Early on it was clear that data renewal wouldn't be the last time SwissBorg needed to prompt users for compliance actions. Rather than designing a one-off solution, I proposed a shared KYC widget  a consistent surface that could surface any regulatory request without a new build each time. It went on to be reused for UK compliance, Proof of Residence, Proof of Identity, Tax ID, and many more.
Full roadblock over partial restriction  
A previous compliance epic had tried blocking trading and deposits while allowing app access. Users pushed back hard. A/B testing on this project confirmed that a full app block after 30 days drove significantly better completion with less complaints a clear stop is easier to understand than a partial one.
Date and place of birth 
I initially proposed locking these fields after a successful Proof of Identity to protect verified data. Legal required all users to retain the ability to edit personal details. We aligned with support to route these sensitive changes through support review staying compliant while reducing misuse risk.
Roll out
Epic planned in phases
The priority was getting a compliant confirmation flow live first covering the estimated 65% of users who simply needed to confirm nothing had changed. Update flows for name, address, citizenship, and other fields followed.

This phased approach meant that even if timelines slipped, users could be directed to support as a fallback rather than leaving the platform exposed to fines.The backend complication added time, but the team delivered. Support had been briefed on the contingency plan and were prepared. in the end it wasn't needed.
hAND OFF
Handing off the designs for development
Design hand off was simple and efficient. I aligned with my frontend engineers and my line manager, as well as the design manager, to make sure that all new components are well documented. Below is a photo of the hand-off. During the entire development I kept close contact with phase my Product Manager and Engineers always ready to make any iterations or answer any questions.
Click on the flows to open in more detail
Reflection
My thoughts on this project
This project was more complex than it appeared. What looked like a straightforward confirmation flow involved legal constraints, backend blockers, a reusable widget system, and decisions that affected hundreds of thousands of users.

The biggest lesson was that the best design decision was one that avoided design altogether reusing what already existed rather than building something new. It was faster to ship, familiar to users, and required no additional engineering for the majority of cases.

The KYC widget is the part I'm most proud of. It turned a one-time compliance requirement into a long-term system that made every future regulatory request cheaper, faster, and more consistent to deliver.