User Profile CSV Downloader Redesign

Allowing enterprise customers the ability to access more parts of their users' profile data for smarter customization

Segment is the leading customer data platform that collects, unifies, and enriches customer data across any digital property. Segment Personas, an identity resolution tool, unifies data from individual users to help businesses gain a holistic understanding of their customers' actions, creating a "User Profile."
Primary User
The primary user that gets the most out of CSV Downloader is the Marketer. Marketers download and use this user data to create email campaigns and target people using the CSV file data.
Use Case
Businesses today can use our CSV downloader to download lists of users and user data to do highly effective 1-1 personalization of customer messaging across marketing channels through downstream tools such as Mailchimp, Braze, Google Analytics, etc

Marketers could not access and download more data from the User Profile, preventing them from full data customization.

Redesign the CSV downloader to allow Marketers to pick and choose from a greater part of the User Profile, enabling them to do more with their data and increase their ability to personalize their customer's experiences

My Role
I owned the design execution and was responsible for driving the project forward, synthesizing feedback to produce rapid design iterations - all the way to creating and packaging the final design prototype to test with customers. I worked with a Design partner, 1 PM, and 1-2 engineers.
Product design
Project Duration
Jan 2021, 3 weeks
Tools Used
Figma, Lucid Cart


Marketers lacked the ability to download additional user profile data, making it extremely difficult for them to access rich data for better customization

Visual explanation

Segment is a complex product so here is my simplified way of explaining how our systems work 😉 
(These terms have been adjusted for confidentiality reasons)

Let's say Jane is a customer for an e-commerce business that uses Segment. Segment is able to capture all types of data fields under several categories inside the app. However, it's hard to pull that data out to download.


Current CSV Downloader

Only one data category available. There were also some wonky layout and interactions that we wanted to improve to make the experience more seamless overall.



Redesign the CSV downloader to allow Marketers to pick and choose from a greater part of the User Profile, enabling them to do more with their data and increase their ability to personalize their customer's experiences

This would essentially expand the breadth and diversity of data that customers can pull from, which is a huge value to our customers because we can fulfill several more use cases for them.

We also used this opportunity to pinpoint and redesign areas of improvement in the overall download experience because why not give our users the best? 💥


Validating our assumptions with XFN partners & gathering existing feedback to determine our MVP

(Because of confidentiality reasons, actual spreadsheets and documents cannot be shown)

1. Created a Customer Feedback & Impact spreadsheet to pinpoint the use case/problem to solve for

Based on our analysis of product gaps, JIRA tickets, and other customer feedback, we synthesized that feedback and calculated that $9.8mill ARR is represented by customers who want this feature. This helped us validate the business impact to move forward with this redesign.

From our research, majority of customers were Marketers in these businesses and the primary use case we synthesized was to access this data for better email marketing campaigns. 

2. We compiled a list of technical, UX, and general open questions and used our cross-functional partners for answers:

Asking Solution Architects (client facing employees):

"Which data categories are important to our customers in your experience?"
→ SAs told us customers continuously ask for "Segment_id" and "custom_traits" data categories. These would be the most high impact categories to include for our MVP.

Asking Engineering: 

"Is it possible in the back-end to send a download email to a customer once the CSV finishes generating?"
→ We got the green-light that this could be done so we were able to improve the overall download experience with this in mind.

3. Defined our success metric

We wanted to have 5 out of the 10 large enterprise customers who asked for this feature able to successfully use and meet their use case with this redesign.


Exploring potential solutions

After mapping out the existing flow to understand what areas we could improve and compiling the exact data categories to provide (Segment_id, custom_traits, external_ids), we began the ideation process.

1. Map simple user flows to display possible solutions and overall experience

This helped align the team efficiently by facilitating quick decision making.


2. Translate user flow into low-fi designs

  • I made the design decision to bring a checklist interaction into the CSV downloader. In my opinion, it would clearest and more intuitive way for our users to choose and customize their files because there were very similar interactions already existing in the app.
  • I also decided to divide the experience into two steps because selecting data and formatting are two very distinct actions. I wanted each step to be intentional and clear to the user.


Design exploration on different interactions to determine appropriate experience and details

1. CSV Generation

I really emphasized the importance of giving users an indication that progress is happening. Since the CSV generation can take up to 30 minutes, I made sure to explore different options on how we could indicate that process.

  • I tried a loading circle, button as a progress bar, and a separate modal and discussed these options with my design partner.
  • We got feedback from engineering that it would not be possible to display a moving loading bar so the next iterations accommodated to feedback
  • Designed a layout of file summary of size and estimated generation time to give users a better idea of what they'll be downloading.






2. Table format exploration

  • I pulled existing elements from our current design system to plug into our explorations, trying to see which UI interaction was more smooth
  • V1 lacked a global table header that V2 had, which would make it heard to "select all" fields at once and do header labels. V2 was the better option experience wise and already exited in several other parts in the app


After iterating on multiple mid-fi versions, synthesizing feedback from all team members, the official experience and interactions were nailed down and the user flow diagram was updated

This diagram was used as a reference point for our team members as well as distant collaborators/contributers who weren't as familiar with the project.



Access data from more categories of the User Profile for better data customization. Neatly package the final file with clear indication on the generation progress

1. Select, filter, search from lists of data categories and relative fields from the User Profile

  • The user can select the data fields from the additional categories of the user profile in this redesign. They will be downloading a CSV of all the users with the selected data fields.
  • Ability to select or deselect all fields at once, or per category
  • Total number of fields are returned and shown at the bottom right, next to the button.

2. Formatting options became its own step dedicated to helping users understand how to package their final file, with summary of file size


3. A more seamless download experience

  • Indication that generation is in progress!
  • This accounts for the scenario of the user leaving the generation modal (if the wait time is long) and staying on the modal (if the wait time is short) Both come back to the same final confirmation to download.


We tested with several internal employees and 2 customers to validate that the redesign would solve for the use case

1. Successes

I demoed the interaction with each internal person and customer we talked to. The feedback was that it was very intuitive to them on how the feature worked and would be easy for the customer to navigate. 

2. Does it meet our customers' use cases?

After demoing the prototype to the two customers, they both mentioned it would be more valuable to them if we included the additional data category of SQL Traits and Computed Traits. This goes against what we had originally thought. We had originally only added in the Segment_id and Custom Traits because that was the feedback we got from internal team members. Now that we got this feedback from actual customers and their reasoning, adding those additional categories will be in the plans moving forward.

3. Next steps

Next steps: Incorporate feedback and confirm at least 5 happy customers in order to ship to the public. This is planned to happen in March.