Problem
When I first dove into the project, the challenge was clear: the company operated across multiple platforms — web, mobile app, and physical kiosks — but the user journey felt fragmented. Each channel behaved like its own silo. Users had to register separately for ecoATM and Gazelle, the registration process was cumbersome, and the experience of checking out or trading in a device often failed midway (e.g. “out of stock” messages mid-cart). Sometimes users were promised a price that later got downgraded during device evaluation. From the business side, the complexity of separate systems and fractured data sources slowed operations and undermined trust.
I framed the guiding question: How can we unify these disconnected platforms into one seamless omnichannel experience that feels cohesive and predictable to the user — yet remains manageable for the product and operations teams?
Process
Discovery & Research
began by mapping pains on both sides — user frustrations (too many steps, duplicated accounts, inconsistent stock & pricing) and business tensions (redundant systems, inability to coordinate inventory or user data across channels).
I then gathered competitive intelligence to see how other brands handled cross-platform consistency, and ran stakeholder interviews to understand constraints from engineering, operations, and marketing.
From there, I built a customer persona—Liam, a retail salesperson needing to quickly monetize his old phone so he can buy a new model. He doesn’t want to wade through layers of friction just to get a return value.
Using that persona, I drafted a cross-channel customer journey: awareness → check trade-in value → bring phone to kiosk or use web/app → authenticate → confirm device condition → get quote → finalize payment or refund. I laid out each step across mobile, web, and kiosk to see where gaps were.
Then I used the Kano model to prioritize features: which elements were “must-have” vs “delighters” vs “bells & whistles.” The metrics I settled on included:
- number of mobile app users
- reduction in price downgrades
- customer satisfaction / NPS
- transaction volume per kiosk
- web task completion rates (registration, trade-in, checkout)
Design, Test & Iterate
With features prioritized, I sketched low-fidelity wireframes for both mobile and web flows, exploring various ways of presenting trade-in forms, authentication, and inventory feedback.
Next, I ran usability tests with 24 participants (50% extreme users vs non-technical users), across Android and iOS devices, 30 minutes each. The goals were to see whether users could complete trade-in tasks, how many errors they encountered, and where they got stuck.
From observations we learned:
- Page loading when fetching product data (from Oracle backend) was a bottleneck.
- Android users were reluctant to use swipe gestures; they preferred tapping longer sequences.
- In the kiosk locator UI, embedding Google Maps with its own CTAs sometimes distracted users from our primary call-to-action.
Armed with these insights, I refined interactions, simplified navigation, and eliminated confusing map overlays. I also built a cohesive UI kit with consistent colors, typography, and components to carry brand identity across all platforms. The tone leaned on trust, technology, and an eco-friendly mission—hence earthy accent tones paired with bright, clean surfaces.
Finally, I built higher-fidelity prototypes that could simulate cross-platform handoffs (e.g., starting on web, switching to kiosk, then finalizing on mobile). I ran additional micro-tests to validate smooth transitions, consistent states, and correct data syncing.
Impact
By unifying the formerly disjointed platforms into a cohesive omnichannel architecture, a few key outcomes emerged:
- The user experience shifted from disjointed to seamless: users no longer needed separate accounts or redundant registrations.
- Trade-in price downgrades dropped because we introduced upfront device-condition gating and clearer messaging.
- Task completion rates increased: users were able to complete more trade-ins in fewer steps across devices.
- Satisfaction scores rose: feedback reflected a smoother, more trustworthy flow.
- From the business perspective, operations became cleaner: inventory, user data, and session state now live in shared systems across web, mobile, and physical kiosks.
Reflection
Looking back, the most important lesson was about synchrony over symmetry. It would’ve been tempting to force every screen to look identical across platforms—but that would ignore users’ context (e.g. what they’re doing on a phone vs in a kiosk). The real win is when behavior and data remain consistent, even if the UI adapts to its environment.
Also, the usability tests underscored how small assumptions (swipe vs tap, map CTAs) can derail experience. It reinforced my belief in early testing, even with skeleton wireframes.
If I were to do this again, I’d invest more in progressive loading and state preservation (so users never lose where they were switching devices), and deeper error recovery flows (e.g. when network or service APIs fail). But overall, this project sharpened my thinking about how to orchestrate multiple channels into one user-centric narrative.