B2B admin migration

EasyPark

EasyPark

Web

Web

Background

Following EasyPark’s acquisition of PARK NOW, tens of thousands of B2B customers needed to be migrated from legacy web platforms into EasyPark. With a different UI and some missing key features, there was the potential for user frustration and high customer care contacts.

Outcomes

I produced designs for new features and other small revisions that helped ensure low contact rates and high revenue retention. A 40% increase in key actions post-migration also indicated strong adoption.

Role and collaborators

I was the sole product designer working closely with engineers and product managers on required features. I also collaborated with user research and sales during discovery and testing.

Audience

B2B fleet managers in the Netherlands.

Problem

Missing legacy features

EasyPark had the goal of migrating all Dutch B2B customers from legacy platforms but they used a number of key features that EasyPark didn’t have. Attempting migration without implementing these features would lead to frustration and potentially customer churn, putting user retention and revenue at risk.

On top of that, customers would be moved even though they didn't ask for it, so if they couldn't easily understand where to find things in the new platform, they would add to the frustration and possible churn.

Make it easy to adapt

With these problems in mind, my goal for the design was to ensure that migrated users had an easy time adapting to the EasyPark platform, could quickly find the pages and actions they regularly needed and felt they could continue to do their job effectively.

Discovery

Researching user needs

To meet my goal I needed to work out which missing features were needed and how customers used the legacy platforms. Product and user research focused on putting together a list of feature gaps to close, while I reviewed customer feedback, account structures and usage data to help understand user behaviour and create a list of design priorities.

Managing notifications was one of the key missing features though feedback suggested that only a handful of notifications were actually used.

Managing notifications was one of the key missing features though feedback suggested that only a handful of notifications were actually used.

Managing notifications was one of the key missing features though feedback suggested that only a handful of notifications were actually used.

Scope limitations

I also met with the sales team to gather insights about customer needs and problems with the legacy platforms. They brought up some valid points, like missing the ability to manage employees in bulk, and I made sure to share these with other stakeholders but the already large scale of this project meant that anything not considered key to migration needed to remain in the backlog.

Ideation

Designing with constraints

The broad scope of this project meant UI changes had to be kept minimal and new features needed to fit seamlessly within the existing design.

To help ensure this was achieved, I produced two design artifacts to help me gauge the bredth of the design work and uncover questions early:

  1. An IA diagram to position new features and functions within the UI in line with what I'd uncovered about usage.

  2. User flows to start getting a high-level idea of how actions would work within the EasyPark platform.

Some features were simple, while others, such as employee parking, introduced complex branching flows so mapping them out was a great way of uncovering issues and questions early on and sharing them with product and engineering.

Employee parking is complex due to account setups and the variety of rules in place at different parking locations so user flows were an invaluable early artifact to help align on requirements.

Employee parking is complex due to account setups and the variety of rules in place at different parking locations so user flows were an invaluable early artifact to help align on requirements.

Employee parking is complex due to account setups and the variety of rules in place at different parking locations so user flows were an invaluable early artifact to help align on requirements.

An opportunity for small improvements

Once we had broadly aligned on the IA and user flows, I moved on to throwing together a variety of mid-fidelity mockups to see how everything would actually appear.

Despite the limited scope, I wanted to include some small UX improvements that I felt would benefit not just migrating customers, but existing ones as well. This included changes to button positions on table pages like Vehicles and Users where currently I saw two issues:

  1. Key actions like "Add vehicle" were positioned in-line with table filters and created a busy and squashed UI even on some desktop screens. I proposed moving key actions in-line with the page title and utilising fill buttons for the primary page action to help better group actions together and improve responsiveness.

  2. Table export options were displayed as 4 separate buttons but were not frequently used (and most users only exported to PDF), which created a lot of visual noise. I proposed condensing export options into a single dropdown button and using a text button over an outline button to again reduce focus.

Providing mid-fidelity mockups for new pages, based on the existing EasyPark UI ,was a great way to get early feedback from product, engineering and sales as changes were very quick and easy to make.

Providing mid-fidelity mockups for new pages, based on the existing EasyPark UI ,was a great way to get early feedback from product, engineering and sales as changes were very quick and easy to make.

Providing mid-fidelity mockups for new pages, based on the existing EasyPark UI ,was a great way to get early feedback from product, engineering and sales as changes were very quick and easy to make.

Testing

Validating our assumptions

It was important that we validated my designs with actual users, particularly ones who used the legacy platforms on a regular basis. So with the help of Sales, we arranged to visit 9 users at their offices in and around Amsterdam for user testing sessions.

Prototyping was complex as we needed to include a number of pages with multiple flows in each. But we wanted to make the experience as realistic as possible.

Prototyping was complex as we needed to include a number of pages with multiple flows in each. But we wanted to make the experience as realistic as possible.

Prototyping was complex as we needed to include a number of pages with multiple flows in each. But we wanted to make the experience as realistic as possible.

Testing goals

  • Check that we hadn't missed any features the participants felt were valuable.

  • Identify usability challenges.

  • Assess users overall feeling about the transition.

Mixing prototype and production

Testing was interesting as we wanted to get feedback on new features being designed as well as existing features already present in the EasyPark platform. This meant we needed to provide a prototype as well as a test production account.

We tried to structure the test so that participants went through the prototype first and then move to production but I made sure to link from the prototype to equivalent pages in production just in case users clicked on certain navigation options.

Key findings

north_east

Users found key actions intuitive.

north_east

Users found key actions intuitive.

north_east

Users found key actions intuitive.

north_east

No additional gaps were uncovered.

north_east

No additional gaps were uncovered.

north_east

No additional gaps were uncovered.

south_east

There was some confusion around terminology (EasyPark and PARK NOW used “cost centre” very differently) so it was agreed that this should be a focus during onboarding.

south_east

There was some confusion around terminology (EasyPark and PARK NOW used “cost centre” very differently) so it was agreed that this should be a focus during onboarding.

south_east

There was some confusion around terminology (EasyPark and PARK NOW used “cost centre” very differently) so it was agreed that this should be a focus during onboarding.

south_east

Large account admins needed more flexible search and filtering, which we flagged for future improvements but was unlikely to make it in the initial release.

south_east

Large account admins needed more flexible search and filtering, which we flagged for future improvements but was unlikely to make it in the initial release.

south_east

Large account admins needed more flexible search and filtering, which we flagged for future improvements but was unlikely to make it in the initial release.

FACE

EasyPark looks nice and fresh, I think it will be easy to get used to it.

FACE

EasyPark looks nice and fresh, I think it will be easy to get used to it.

FACE

EasyPark looks nice and fresh, I think it will be easy to get used to it.

FACE_6

The new portal looks good and we don’t miss anything from what we currently use.

FACE_6

The new portal looks good and we don’t miss anything from what we currently use.

FACE_6

The new portal looks good and we don’t miss anything from what we currently use.

Implementation

Maintaining designs over time

After testing, I made a few tweaks and reviewed with stakeholders before preparing the final designs for handover. However, while I was able to do a lot of the design work in one go, development was spread across a number of quarters so it was important that I provided detailed documentation and annotations to guide developers, including:

  • Explanations of pages and dialogs to provide clarity around purpose and expected user interactions.

  • Specifications for complex components like text and select fields, which were particularly important to help ensure good keyboard navigation support.

  • Directions on handling errors to support both usability and accessibility and standardize messaging.

This approach helped keep implementation aligned with user needs despite shifting timelines and made it easier for myself as well, as there were a few occasions where designs were impacted by subsequent projects and I needed to revisit the migration designs and update them to ensure that developers weren't working on outdated mockups.

This project included several instances of a searchable dropdown component that had not been used before so this needed to be particularly clear for developers.

This project included several instances of a searchable dropdown component that had not been used before so this needed to be particularly clear for developers.

This project included several instances of a searchable dropdown component that had not been used before so this needed to be particularly clear for developers.

Outcomes

The challenge of gauging impact

Migration was incredibly complex and was done over a long period of time as it required moving hundreds of thousands of accounts.

Due to the scale it was hard for me to gauge the exact impact of my designs but I made sure to regularly check-in with Product and Sales to review feedback and a few things seemed clear:

  1. Contact rates remained low, helping customer care and sales support manage their backlog.

  2. Transaction and revenue retention remained stable, though continued work was needed to meet and exceed expectations.

Post-migration analytics

I also made sure to regularly check our analytics tool that also showed some encouraging data once migration was finished, indicating strong adoption from users:

  • MAUs increased by 46%.

  • Key action usage increased by 40%, such as adding employees and starting parking sessions.

Developer feedback

I also received feedback from several developers who commented that my design specs and annotations made their UI work much easier as it removed guess work and meant less disruption as they didn’t need to stop and get clarification as much.

Learnings

Reflecting on the project

Low-usage features aren't unimportant

While prioritizing high-impact features was necessary, a few small functions that were frequently used by a handful of large accounts were skipped over. The absence of these features led to inefficiencies during migration and addressing these gaps earlier could have improved the transition experience for several important customers.

Page vs dialog for longer forms

Prior to this project, the start parking session action was launched from a separate page within the main navigation. I chose to bring that form in-line with other important actions in the platform by moving it within the "Parking sessions" page, having it launch from a primary button and appear in a dialog box.

I felt the benefits were clear:

  • It's what legacy users expected.

  • The action is directly connected to the Parking sessions page as you can see active sessions from the table there.

  • It's a more consistent key action experience for existing EasyPark users.

However, the form can get busy (depending on which parking area is selected) and requires the user to scroll the dialog to complete the form, which goes against UX guidelines for when to use dialogs and could be a point of frustration for users.

I wasn't able to explore this possible issue in-depth but if I had the opportunity I would look at usage numbers, check with customer care and speak to users to see if they identify any problems with the flow of parking employees and guest.

Depending on the parking area and whether a "User" or "Guest" parking session is being started, the number of required fields could change quite a bit.

Depending on the parking area and whether a "User" or "Guest" parking session is being started, the number of required fields could change quite a bit.

Depending on the parking area and whether a "User" or "Guest" parking session is being started, the number of required fields could change quite a bit.