Overcoming the challenges of designing a B2B2C product

Reflecting back on my design process

Charlotte Sferruzza
7 min readMay 9, 2021
Mobile screens showing a concept of a document verification experience

At Onfido, we help our customers verify their user’s identities so they can onboard them securely. To do this, we’ve built a Software Development Kit (SDK) that our customers integrate into their onboarding flow. We verify their user’s identities by analysing their ID and face.

I joined Onfido back in 2017 to work on the SDK launch. Over the last two years, I’ve been leading the design team that focuses on the verification experience for the end-user.

In this case study, I’ll go over my design and leadership process to overcome the challenges of building a B2B2C product.

Illustration showing the traditional double-diamond design process
Building a B2B2C product adds some challenges to the traditional design-thinking process.

Gathering user insights

Our SDK has two primary users: our customers who integrate it into their product and their end-users who use it to get verified.

My job as a product designer is to find the right balance between our customers’ needs and their users’ needs. The aim is to build a great experience that prevents user drop-off and boosts conversion.

Limited access to our end-users

We don’t have direct access to our end-users, and our customers themselves sometimes struggle to engage with their users.

When I started at Onfido, we had no established user research process, which meant I recruited participants and conducted interviews myself. We now have a dedicated user research team that has built a robust process. But those years spent talking directly to users have given me a deeper understanding of our problem space.

We’re now partnering with testing companies to get many people to use our apps before the release. They provide us with feedback about how people use our product at scale and how well it performs. We also use tools like Usability Hub to test UX copy or minor design tweaks to make faster decisions.

We invite team members to read user research reports and observe user interviews. The pandemic actually made this part easier! Using tools like Lookback remotely on participants’ devices meant more team members could attend the live sessions. This has created empathy across the team and helps us advocate for users.

Dependency on customers’ implementation

The success of our user experience is also dependent on how our customers implement our SDK in their products. The moments before and after identity verification are crucial to building users’ trust and increasing conversion.

To enable this, we started a partnership program with our customers. Together, we’re able to design a much better identity verification experience tailored to their particular use case. This close partnership also helps us understand behaviours in different user journeys and across multiple industries. It’s become integral to how we think about our product and prioritise our work.

I’ve summarised our learnings about UX onboarding in this TechCrunch webinar I led with our User Research Director, Lizzie ❤️.

Designing for a growing product

The SDK has always been focused on helping users submit better ID and face images. Initially, we built a simple application integrated with their native camera to help them take better photos.

Today, our goal is the same, but our product has evolved. We’ve added more features that leverage new technologies to verify users quickly and with higher accuracy. As a design lead, this meant creating a solid design process to manage this product complexity while maintaining a coherent user experience.

Images of our product in 2016 and in 2020, showing its visual evolution.
Between 2016 and 2020, the SDK has evolved a lot visually and in the way it works.

Building on multiple platforms

We’re offering our SDK on three platforms: Android, iOS, and web. Each platform comes with its technical constraints, making it hard to maintain a similar experience for all users.

When I joined the team, I was building an experience on iOS and Android while another designer was working on the web version. Our products quickly started to feel quite different from each other, and as the design team grew, these discrepancies increased.

To solve this problem, we worked across platforms as a design team. I didn’t want our designers to become iOS, Android, or web design experts. I wanted them to become identity verification UX experts.

Image highlighting some differences between our 3 SDKs: camera lenses, face detection performance, manual video recording.

To build a robust UX, we need a deep understanding of each platform and its constraints. Design patterns, accessibility features, camera lenses are all different depending on which device is used.

To ensure we’re building things in the right way, we pair with engineers during critique sessions, co-design concepts, and keep communication open each step of the way.

Limited app size

One of our most significant constraints is the size of the app. As we’re building an SDK and not a simple app, we can’t increase its size too much, or our customers would see their apps’ sizes skyrocket.

This size constraint prevents us from using Augmented Reality or on-device algorithms that could be a good way to enhance the UX. It forces us to be more creative! For example, we rely more on haptic feedback (device vibration) than on-screen animations. It’s lighter and more accessible.

Screenshot from Figma showing design specification to add vibration to our experience. There’s a link to the iOS guidelines regarding a vibration pattern.
We use haptic feedback when face detection is successful.

Scaling the design team

There are now five designers contributing to the SDK. Keeping our user experience coherent gets increasingly challenging as the team grows. As a design lead, part of my role is to ensure that our end-user experience is seamless and consistent, independently of who has designed it.

We use our design system to create consistent interfaces, but it can be limiting when developing novel experiences. To guide us beyond our design system, we created an evolving design vision to keep inspiring the team.

Creating strong team rituals has also been an effective way to help the team communicate. I got inspired by Creativity, Inc, and I set up a Braintrust, a safe place for all experts in a similar domain to discuss and challenge thoughts. I invited all the designers and user researchers who contribute to end-user projects at Onfido to be part of it.

Every week we demo concepts, discuss solutions, and challenge each other’s ideas. We look at both the details and the big picture and provide each other with honest feedback to improve our product.

Screenshot from Slack showing our reminder to add something to the braintrust agenda.
We have a weekly reminder on Slack to add topics to the Braintrust open agenda.

Release, learn & iterate

Limited control over user adoption

We’re constantly improving the UX of our product, following user research insights, customer feedback, and emerging technology. However, measuring the success of a design can be challenging.

We can’t control the roll-out of our SDK as we would for a B2C app. Our customers don’t all upgrade at the same time. Some of them have long development cycles, which makes our iteration cycle even longer. This makes it difficult to understand how a specific feature has impacted the overall UX of our product just after we release it.

We usually have to wait a few quarters before seeing the impact of our work. It sometimes coincides with things we don’t have control over, like our customers re-designing their onboarding flows or new regulations coming into place. This is where our strong partnership with customers is vital.

In my team, we keep track of the success of our projects in a single repository. We link each project to product goals and add the measured outcomes once they are significant.

Our design impact spreadsheet showing the project date, designer’s contact, project name, initiative, goals and expected impact, success state, and notes.
Our repository gathering projects, goals and impact.

This framework helps us make sure we measure the outcome of our work and not just the output. It prevents us from forgetting past successes or reproducing failures.

Designing for a B2B2C product can be challenging. I found that a strong understanding of our users, an open design process, and a focus on impact are all integral to building a successful user experience!

Whether they are customers, end-users or the team I work with, people are at the centre of what I do. Creating an empowering and inclusive environment to achieve our goals was my focus this year, despite having to do it remotely. My big 2020 pandemic lesson was to keep processes flexible to adapt to the diversity of the people I work with and for. And this is what I’m taking away to build the future of our product.