Bulk.png

Bulk subscription management

Bulk subscription management

Role: Lead Product Designer 

TLDR

  • Redesigned an outdated, bloated, scary tool so that merchants could easily make bulk updates within Recharge

  • Reduced support time spent on bulk updates drastically

  • Reduced bulk update time from months to days for one of our key merchants

What was the problem?

Merchants frequently need to make bulk updates to their customers’ subscriptions for many reasons (discontinued products, updated SKUs, price updates, etc.). While Recharge had an existing bulk updater tool, this tool was not user-friendly, it didn’t support some of the most common use cases, and it was prone to failure and time-outs with large lists. Not only were merchants frustrated, but our customer success team was fielding 500+ bulk update requests per week, equating to about 500 working hours per month. Yikes! Because support was ALSO using the outdated bulk updater tool, they were having to break down the updates into small batches taking toonnnnns of time and causing tons of frustration. Because these requests are so time consuming, Recharge advertised a minimum 5-day lead time for processing bulk update requests. This turnaround time can be disastrous for merchants with urgent requests and has resulted in significant revenue loss to merchants.

Here’s an image of the really old tool. 😬 Suuuuper confusing.

So yeah, there were problems. What next?

We sought empathy. With our merchants. With our customer success team. With our account managers. We listened to anybody and everybody who had used our existing tool and experienced its headache. We encouraged them to let us have it and to not hold back. We (the product owner and I) got on call after call with these folks to listen to their frustrations and their desires for a new and improved tool. Some themes we heard were:

  • Not user-friendly

  • Takes too long

  • Scary process (would rather reach out to customer success to make the update)

  • Tons of failures after waiting a long time

  • Lack of communication throughout the process

Our redesign needed to address these problems. We needed to create a user-friendly solution that would allow merchants to confidently make bulk updates on their own, in a timely manner, without reaching out to our support team and taking their precious time.

Enter research!

The kickoff to research was pretty simple—what’s out there and effective? Has the bulk update pattern been solved for nicely before? Let’s not reinvent the wheel in terms of bulk update patterns if there are established patterns out there. This research was gathered into a big FigJam file full of screenshots with summary takeaways.

A snippet of the experiences that were explored

Some of the summary points surrounded:

  • Select all behavior is either selecting all on the current page, selecting all in the store/data set, or an option to choose one or the other

  • Singular updates tend to take place in modals

  • Advanced updates tend to take place on a dedicated page

  • When taking an import-based approach, users were almost always provided with a file template

  • Email communication about import/update status is essential. And communicating progress was important.

  • There were often two paths for completing updates—a selection-based path and an import-based path

The next step was to put our learnings into practice

We took our conversations with merchants and our pattern discovery and meshed them together into early wireframes. I like to use FigJam to get ideas out because it lets me focus simply on the flow and not on the aesthetics, and our product team is really comfortable diving in and leaving comments.

We decided on two basic bulk update paths:

  1. File import

  2. Bulk select from various list views, starting with the Subscriptions list view and expanding into other list views

Reviewing these initial wireframes with key stakeholders allowed us to iterate quickly and zero in on a direction. We discovered important technical information reviewing with the engineering team:

  • Validating needed to take place after the CSV was uploaded

  • Dragging and dropping a file was possible without too much technical lift

  • For certain Shopify stores, there was a syncing process that needed to happen (and that process needed to be communicated to merchants)

  • This process could still take some time, depending on the amount of items updated

High-fidelity time

With more direction and confirmation from the team that we were moving in the right direction and aligned on goals, we moved into high-fidelity with both the import-based and selection-based flows.

The import-based flow involved merchants creating a CSV from a template and using that to perform a bulk update.

The selection-based flow involved the merchant selecting multiple subscriptions and choosing specific fields to update.

Stop…let’s get feedback

Round 1 of high-fidelity was done. Time for a gut check. Let’s show this puppy to merchants and our CS team (who was performing a lot of updates) to see how they feel.

Overall…

  • Love, love, love, love, love it!

  • Let’s workshop the language a bit (“import”, “upload”, “import updates”)

  • Let’s make sure we reassure merchants that their data will transfer well when making an update (show a few example records, provide a backup CSV if something goes wrong)

  • It’s really important to communicate which fields will not be updated and why

Iterations and iterations

We took the feedback and got to work. We shopped the language around with merchants and the CS team. We made sure that both flows gave merchants a chance to verify how their data would map to specific fields. We made sure any fields with dependencies were displayed as such in the UI.

What has happened since then?

We started by rolling out an alpha version of the bulk import flow to test our tool, gather feedback, and make improvements. We made slight adjustments based on our alpha feedback such as:

  • Added columns to differentiate validation status and update status, since both could take a bit of time and both were different processes that were helpful to see

  • Added a “type” column into the list view so that it was clear what type of update it was and so that it could expand to many update types in the future

Because of the alpha bulk import success, we were able to move forward to beta and GA releases. We also close-followed with the selection based flow on the subscriptions list view page. We have also since enabled bulk deletion of subscriptions and bulk reschedule of charges.

The results

The feedback has been overwhelmingly positive. Merchants are feeling less fear and performing updates themselves in much less time. We even had a merchant process 2 million subscription updates on their own in a single weekend, which would have taken months with the old tool. 🥳

We also received a shoutout for the tool on our most recent NPS survey.

The app is easy to use and the new bulk editor makes things much easier.

We’ll continue to iterate, of course, as we hear feedback. And we’ll continue to expand our bulk update capabilities as they are helpful to our merchants. We’ve set up a system with a lot of reusable patterns that can scale to almost any bulk update app-wide.

If you’re interested in clicking around the different flows, you can check out the selection-based flow here and the file upload flow here.