A platform-wide data capability that unlocked 64 blocked enterprise deals and generated $3.1M ARR🎉 by enabling customers to store flexible business entities (pets, reservations, subscriptions) in Klaviyo.
🚧 the challenge
Klaviyo historically optimized for eCommerce businesses by supporting metrics and events to store user activity, profile properties to store user attributes, and product catalogs to manage store-wide items. But when veterinary clinics, gyms, hotels, and other non-retail businesses tried to use it, they hit a wall.
Design problem: Klaviyo users had no way to represent “real-world entities” associated with a profile that had their own states, lifestyle changes, and multiple instances per customer.
*Some teams resorted to inefficient hacks by creating hundreds of custom properties per profile.
This breakdown caused:
A painful experience because of unusable segmentation logic, duplicated or stale data, and the inability to automate lifecycle messaging
Platform lost enterprise deals

solution
Custom objects introduces a new type of entity that sits alongside users, metrics, and catalog items. Each object:
Has its own schema (name + data types)
Can relate to other objects (foreign keys)
Can be created and updated via API
Can be referenced in segmentation, automations, and templates

sooo, instead of saying
"User has a pet” → static event
You can now represent:
Pet object
Pet full name
Type of pet
Pet birthday
Pet breed
👩🏽💼 my role: sole product designer
I owned design from discovery through delivery by partnering with a lead PM, a content designer, and an engineering team.
Conducted discovery and usability testing with enterprise customers
Designed schema-first UX for flexible data modeling
Aligned architecture with platform constraints
Shipped closed-beta with engineering & product leads
🔎discovery research
I conducted:
project kickoff covering user needs, project status, open questions, and metrics.
a competitive audit of 5 companies.
a lost deal analysis.
a review of support tickets.
discovery interviews with a low fidelity prototype.
findings
Custom Objects came out of real customer pressure: initially to retain Fashion Nova by supporting gift card data, and later to serve Paint Nite’s ticketing use cases.
Legacy custom objects lived in a messy “closed beta” state for Klaviyo's team and customers.
discovery interview findings
The “choose template” step was unclear; most users jumped directly to “mapping fields.”
The term “Klaviyo object” in the “Create [feature name]” step was poorly understood.
Users did not consider viewing all object data on the objects page important.
who we're designing for
Primary: Technical marketers managing segmentation and personalization
IT and data teams supporting these efforts
user needs
An object manager where users could define and configure objects.
The ability to use these objects throughout Klaviyo (campaigns, segments, profiles, flows) Outside of these capabilities, we were unsure of the smaller details of each feature. This was an opportunity for design to lead.

⼮user flow
To start designing, I created a basic user flow with the key steps that a user would need to complete in order to create an object.

usability testing new prototype
We wanted to address the results from our discoverability testing and conduct another usability testing session. We tested with 3 users familiar with custom objects and 2 users who were not familiar with custom objects.
As our vision of the feature became more clear, we wanted to take advantage of these sessions and test both V1 and future scopes.
🎉All 5 users confirmed the flow was intuitive to use and that they understood custom objects.
constraints
2As much as we wanted to build out everything in the usability prototype, with a near launch we could not accommodate all those changes. In the last months before launch, the prototype had to be changed a number of times due to scope creep and engineering feasibility.
handoff
I created an annotated handoff file with the different flows and edge cases such as errors, deleting an object, editing an active object, and editing a syncing object.



🎉results
Unlocked 64 blocked enterprise deals and generated $3.1M ARR by enabling customers to store flexible business entities (pets, reservations, subscriptions) in Klaviyo.
