This project was for improving UX for a Beanworks window application named SyncTool which customer uses to sync the data.
A bit of Context
Beanworks builds an Accounts Payable Automation software that reduces manual data entry and approval follow ups. It integrates with both API and desktop-based ERPs such as QuickBooks, Sage, Microsoft GP and more. SyncTool is the windows applications written in c# that is responsible for syncing the data between web application and desktop-based ERPs.
I've identified 3 major pain points across the company and customers from my own local development experience, customer calls, all the way to a common theme that was emerging from the CS tickets.
The initial setup of the SyncTool took a very long time that averaged around 2.5 hours depending on the size of the company. Given the existing architecture at the time, the Implementation Team had to manually create profiles on the SyncTool that maps to every single legal entity on web application and the desktop ERPs.
Broken user experience
It had a major friction to one of the main user flows: syncing the data. If a user wanted to export data created from the web application and sync it with desktop ERPs, user essentially had to trigger sync twice - once from the web application, second from the SyncTool. We did offer an workaround using scheduled sync on SyncTool but there was no way around from this disruptive workflow if user wanted to export and sync the data right away.
No access to logging
All the logs from the SyncTool was stored in every user's local computer. Developers and Success team had no visibility to the health of the SyncTool and often had to ask for local copies or screenshots of the logs. Bug tickets for SyncTool often had 1-2 weeks of cycle time, requiring time-consuming back and forth with customers.
Solution & Impact
I proposed the change in perspective for the SyncTool from being a stand-alone application to being a client1. SyncTool was now able to authenticate against and communicate with the main web server.
I've introduced a login feature to the SyncTool that allowed automatic SyncTool profile creation which reduced the setup time to average of 20 minutes2. This allowed the Implementation Team to spend more time on what's actually important during the call - simplifying the AP process!
Seamless User Experience
I've also designed and developed the new SyncTool Management page on web application. With the new SyncTool in constant communication with web server via polling, users are now able to trigger sync for the SyncTool without leaving the web application.
Logs and Health Checks
Every sync activities from SyncTool is displayed in the web with logs - this easy access to logs reduced the ticket cycle time to less than 5 business days.
The project being very technical, I owned it completely by managing, delegating and implementing parts of the project. Some specific responsibilities were:
- Specifying the deadline and breaking down the work per sprint - MVP was delivered in 3 months
- Worked with cross-functional teams including Success, Implementation, and C# Team by delegating work and managing feedback
- Designed3 medium-fidelity prototype of the new SyncTool Management page
- Implemented API/UI part of the project - tech stack includes PHP Symfony, GraphQL, React, Typescript
- Presented the MVP to the company and trained the Implementation team on the new workflow
- Managed the backlog of requests for the new SyncTool and prioritized based on the effort / impact
- The ultimate moonshot for the new SyncTool is to be a background service without any user interface except for the time of installation and brief initial setup - then running in the background seamlessly.↩
- The profile creation time is instantaneous. I'm still factoring the time to map the SyncTool profile to Desktop ERPs such as specifying the version of ERPs or directory path to the ERP file as it was originally factored into initial setup time calculation before the launch.↩
- Thanks to my past UX Design background!↩