A re-architecture of Salsify's data model
In 2023, my team embarked on a multi-quarter investment to restructure our data model from completely flat to infinitely nested. There were several factors driving the shift away from flat data, from technical scale issues to ongoing customer feedback around the usability of our platform.
As a designer, my challenge was to design a system that would scale across all levels of data nesting, accommodate all data types from digital assets to nutritional facts labels, all while addressing documented user problems head-on and simplifying the experience of interacting with data in our platform.
What's Salsify?
Salsify is a Product Experience Management software that allows brands to manage their product information and publish data to retailer websites to sell their products online.
Before (Digital Assets data flattened)
After (Digital Assets data structured)
My role
I served as the lead product designer working across two global teams: Platform Channels and Retailer Connections. These teams were responsible for the area where users mapped and assessed a product's "readiness" for publish to a retailer website.
UX strategy
Worked with PM & EM to maintain a predictable roadmap over multiple quarters of work.
Regularly presented UX progress to an executive audience
Research
Established objectives & hypotheses
Organized user interviews
Conducted usability testing
Worked with pilot users
Synthesized data and defined user needs
Design
Drafted user flows and user journeys
Led team alignment workshops
Rapid wireframing and prototyping
Worked with design systems lead to ensure compliance
Users need a way to discover and successfully configure structured data in the new data model.
Salsify needs a way to scale its ability to build & maintain connections to retailer sites while supporting all product categories customers sell online.
Since there's no standardization of retailer requirements in the industry, the new data model needs to scale to an infinite number of nesting.
Design process
Given the complexity of the problem, our team structured our investment into 4 phases with the intention of delivering value and gathering feedback in each one. I dedicated approximately a quarter's time to each phase to conduct an end-to-end design cycle and research, ideate, and test our solution.
December 2022
Goal
Expand to new customer segments and enable Consumer Packaged Goods customers to publish nutritional data.
User
Users publishing product data in the Consumer Packaged Goods space.
Design Process
Team workshop
Design iteration 1
Usability testing
Design iteration 2
User interviews
Ship!
Phase 1 & 2
Feb - May 2023
Goal
Modernize existing front-end and back-end infrastructure in the channels product to accept future changes
User
Any user publishing data through a channel
Design Process
Synthesize existing research
Discovery calls w/ users
Objectives and scope w/ PM
Tech alignment & co-designing
Iterate, iterate, iterate
Stakeholder reviews (Engineering, product design, leadership)
Usability testing
Ship!

Phase 3
Jun - Aug 2023
Goal
Give users a way to map and troubleshoot structured data
User
Technical channel users, Salsify implementation consultants, implementation partners of Salsify.
Design Process
Discovery calls w/ users
Objectives and scope w/ PM
Team workshop
Iterate, iterate, iterate
Stakeholder reviews
Usability testing
Set-up pilot program
Ship!
Pilot
Sep - Nov 2023
The rest of this case study will focus on the final phase of this project, Phase 4. In this phase, I was able to consider a broad set of users and design for all data use cases. It was the most challenging phase yet!
Goal
Create scalable patterns for nested and non-nested data
User
All Channels users
Phase 4 user interviews
In the previous phase, we organized a pilot program with 5 technical users working at partner organizations that help customers implement their retailer channels. To kick-off Phase 4, I interviewed users to ask them about their experience working with structured data. I wanted to understand the top needs these users and their clients have around mapping data.
What worked well
Users understood that structured data had been introduced into the table.
Users understood how data in a nested attribute related to each other.
Users loved the modernized and increased real-estate of the new mapping space.
Key opportunities for Phase 4
Even with onboarding materials available, technical users felt intimidated to begin mapping structured data.
Users struggled to complete their task. 0 out of 5 users completed the most complex use case in the channel.
Even with the increased real-estate, some mappings were hundreds of lines long, resulting in UI scale issues.
Given that mapping and their previews were often multiple lines long, users struggled to cross-reference the two and identify errors.
Team workshop
In order to align on a design direction, define deliverables, and plan a UX timeline, I organized a workshop with members of both product teams.
User story mapping
When I shared about my project in a design team meeting, another designer offered to work with me to introduce User Story Mapping to my team, a workshop format he uses often. Together, we organized and led meetings with stakeholders to define the user journey, scenario, goals, and stories.
With all team members, we mapped out our user's goals (blue stickies) and imagined the different steps they take in our product (green stickies). From there, we crafted more granular user stories (yellow stickies) that directly informed my deliverables for Phase 4.
Prioritizing work
With my PM and EM, we prioritized stories based on what we would address Now, Next, and Later. We then numbered our "Now" stories based on the order I was going to work on each one.
Plotting a timeline
Using the stories we drafted and prioritized, I estimated which stories I'd work on each engineering sprint and created a timeline. Throughout the rest of the project, I was able to refer back to this timeline to set expectations and plan collaboration sessions.
Design iterations
With user stories and expectations defined, I met with my engineering partners every sprint to share context and co-design. This helped immensely to get technical input regularly, build user empathy, and ensure there were no surprises once the designs were handed-off.
Navigating different levels of data
A key user story and persistent theme of Phase 4 was addressing how users would navigate across different levels of nesting in the new structured data mode. This was both a challenge and key opportunity as navigation and discovery were top user needs based on previous discovery work.
My first step was to ideate through sketching and wireframing. I initially envisioned a wizard-like experience users clicked into from the main table. Using the wizard, users could focus on one data group at a time.
From wizard to table
After sharing my initial idea, I realized a focused experience in a wizard didn't allow for communication across data groups which could be required by the new structured data model.
In the next iteration, I chose to display the new structured data model directly on the table.
In the image on the left, you can see the difference between how Contact Information was displayed with flat v. structured data model.
Clear visual hierarchy
I focused the next few iterations on the display of nested data and streamlining navigation at different levels.
During usability testing sessions, users responded positively to seeing their data groups in a new lefthand sidebar. They also understood the new organization of content and discovered where to take action with ease.
In the image on the left, you can see how the table evolved over time.
Final design solution
Rethinking how all data is presented
At the start of the project, there was a strong focus on how nested data would be presented, but less consideration for non-nested data. As a result, there was a world where the experience of mapping nested data could have been completely different and separate from mapping non-nested data.
I feared supporting two disjointed experiences and pushed my team to view the problem wholistically. Iteration after iteration, I showed how it would be possible to maintain the same base experience for all data and layer on additional capabilities that pertained to nested data use cases.
Complex use cases
A persistent concern was scaling the table to high levels of nesting. I approached my designs for data depths of 1, 2, and 3 almost as components with the aim of combining them for more nested and complex data. With this framework, I was able to scale the designs to accommodate a the use case that initiated this project in the first place, Nutritional data.
Loading speeds increased by more than 90% in all channels with the new solution, reducing time-to-value significantly and allowing customers to reach a publish-ready state more quickly.
The new solution accommodated the majority of data use cases, enabling all retailer connections to benefit from lower maintenance costs.
Furthermore, the new solution allowed Salsify to support the majority of its most complex data use cases, which unlocks new customer segments and increases the business' total addressable market.
Several months after the hand-off of my designs, Salsify held a conference with customers to introduce their new pricing and packaging model. My team was able to present this solution and received overwhelming positive feedback on the new updates to the Channel product. Our solution became a featured selling point and parts of it were chosen for early release to customers.
"What I like about this is that it feels so simple"
-Channel implementation user at Salsify
"This sidebar gives the visibility into my [dataset] that I've been wanting for a long time"
-Pilot user at a partner organization
According to pilot users:
User perception of usability increased by 43%
User perception of ease of use increased by 51%