Skip to content
Ilyas Parag.

SaaS & internal toolsApr 22, 2026 · 3 min read

Bulk actions and the preview-then-confirm pattern

The failure mode of a bulk action isn't a slow interface. It's a fast one that does something irreversible to four hundred records.

Every product that manages records at volume eventually grows a bulk action, and most of them grow it badly. The pattern is familiar: a checkbox column, a “select all” that quietly means “select all on this page,” and a dropdown of operations that fire the moment you release the mouse. It works in the demo. It fails the first time someone selects four hundred rows and picks the wrong option.

Speed is not the feature. Certainty is.

The instinct when designing these is to optimise for speed, because bulk actions exist to save time. That instinct is wrong, or at least incomplete. The user's actual anxiety isn't how long the operation takes. It's not knowing what it's about to do.

I ran into this designing listing management for a multichannel inventory platform. Sellers were editing hundreds of listings at once across four marketplaces, and the same product could carry different titles, prices and stock rules on each one. A bulk price update wasn't one operation. Depending on how the listings were mapped, it was potentially four hundred operations with four hundred different outcomes, and the interface was showing exactly none of them before it committed.

What fixed it wasn't a faster action. It was a slower one.

Show the diff, not the count. “Update 412 listings” tells the user how much risk they're taking, not what kind. “Update price on 412 listings across three marketplaces; 38 excluded because they have channel-specific overrides” tells them whether the operation is the one they meant. The excluded count is the important half. It's the thing they didn't know was true about their own data, and surfacing it before the action is what turns a bulk edit from a leap into a decision.

Make the preview the default state, not a modal. A confirmation dialog is where attention goes to die. People learn the shape of it and click through without reading within about a week of daily use. If the preview is a step in the flow rather than a gate in front of it (a screen you're already on, showing the pending changes as a list you can scroll and deselect from), it gets read, because it's the thing you're looking at rather than the thing between you and the thing you're looking at.

Let them narrow from the preview. The most useful discovery in that project was that sellers frequently changed their minds mid-operation, and always for the same reason: the preview showed them a row they hadn't expected to be included. If the only options at that point are commit or cancel, cancelling means rebuilding the entire selection from scratch. Letting them deselect individual rows inside the preview turned “start over” into “adjust and go.”

Name the undo before you need it. Not every operation can be reversed, and pretending otherwise is worse than admitting it. Where undo is possible, say so on the confirm. Telling someone they have thirty seconds to take it back visibly reduces hesitation. Where it isn't, say that instead. Users don't need every action to be reversible. They need to know which ones aren't.

The pattern generalised further than I expected. Once preview-then-confirm existed for pricing, it got reused for channel assignment, bulk delisting and inventory adjustments, and each reuse was cheaper than the last because the component and the mental model were already there. That's the quiet argument for getting a pattern like this right early: it isn't one screen, it's the shape every destructive operation in the product will take from then on.

The test I'd apply to any bulk action: if a user selects the maximum number of records the interface allows and picks the most destructive option available, can they tell, before committing, exactly what is about to change and what isn't? If not, the interface is fast in the way a car with no brakes is fast.

Related work

  • PippaSync case study

    Multichannel listing and inventory management: one source of truth across every marketplace a seller touches.

SaaS product design

Read next

Naming things: the quiet half of a design system