Resolving an impossible problem
Finding a solution to a crucial problem that can't be solved
Connecting to users’ investment accounts was essential for the system. Imagine you have 50 securities and make trades every month. It would be painful to update this information manually.
Meanwhile, the portfolio connection success rate was terrible. The probability of a successful connection was less than 50%. Considering an average user has three accounts, a connection failure was guaranteed, as was users’ disappointment, incredulity, and frustration.
Handling errors
First, we checked all possible errors, selected those a user could influence, and structured them. Then, we created a group of modals customized for every problem.
Modals turned out to be more or less similar. Meanwhile, implementing nine different versions would significantly increase the code's complexity at the moment (the complexity would be multiplied in the future). That's why we unified all modals into one.
The modal's content underwent many trials before reaching its current state. It was quite a challenge to combine seven action options in a single modal and make it look balanced, not too confusing, and not too overwhelming.
But that was only one of many various issues that prevented a user from connecting a portfolio:
Corrupted data from financial institutions
Financial institutions' maintenance
Extra action requirement for different browsers
Incognito browser mode restrictions
The connection functionality was getting more and more complex.
All error handling and technical stability modifications enhanced the connection success rate to 70%. Sadly, that was still far from perfect.
The most frustrating thing was that the success rate didn't improve further, no matter what the engineers or we did. While adding more logic for handling errors would inevitably lead to bugs, errors, and collisions.
At this moment, we've got an idea: If you can't fix a problem, take an entirely different approach.
Alternative approaches
We couldn't improve the connection success rate any further, but we could focus on alternative ways to add data to the system:
Improve the connection modal
Clear available options (all of them are together)
Clear interface logic (search and popular institutions are equal)
Simple layout (a single column)
Simpler texts
Improve the manual portfolio upload
Recently appeared LLMs, allowed to make this modal extremely simple. However, we faced an unexpected barrier: the input interface was too simple and too flexible. Users were comfortable with old-style complex input interfaces but were confused by free-form input.
People are so used to strict restrictions on input data that they are completely lost when an LLM can parse anything they enter.
It took five iterations of stand-alone test prototypes to find a coherent solution.
Warn about using dummy data that leads to poor user experience.
Results
Unfortunately, we didn't have enough time to test and implement all our ideas, like auto-reconnection in case of an error, special handling of VIP users, etc.
Nevertheless, after many experiments, the account connection flow stopped generating negative feedback, which was a huge win.