Custom CRM: Aligning With Exxact’s Unique Sales Structure
My Role: Product Manager, Product Designer, Design Operations, QA Lead
Team: 2 Backend Developers, 2 Full-Stack Developers, 1 Software Intern, Junior Designer, and myself
Duration: 16 months (Nov 2024 – Mar 2026)
Alpha Launch: Aug 28, 2025 (10 months)
MVP / MMQ: Mar 2026
Overview
As Exxact scaled, its sales team relied on NetSuite for CRM functionality—but the tool was slow, rigid, and misaligned with how sales actually worked. Reps tracked opportunities outside the system, resulting in inconsistent data, missed follow-ups, and unreliable reporting.
I led the design of a custom CRM focused on speed, clarity, and alignment with Exxact’s real sales workflows, reducing data entry time by ~50% and creating a scalable foundation for future systems like OMS and WMS.
Impact at a glace
Some video of the crm where I create a person
Comparing pre- vs post-launch metrics (1 month window):
Data entry reduced from
5–8 min → 2–3 min
INQ to OPP conversion
1-2 mins to ~20 seconds
403 QA tickets created & resolved pre Alpha
37 design system components reused
96 features shipped
The Problem
Sales teams used NetSuite to manage customers and opportunities, but the system was:
Slow to load and difficult to edit
Overly complex for high-volume workflows
Misaligned with Exxact’s sales structure
As a result:
Reps tracked opportunities in spreadsheets or notebooks
Opportunity statuses and loss reasons were inconsistently recorded
Marketing and leadership reporting was unreliable
Scale of the problem:
Each sales rep managed 450–500 opportunities per year
Opportunity tracking varied by individual
Data entry friction discouraged system adoption
Goals & Success Metrics
Primary goals
Reduce friction and time spent on data entry
Standardize opportunity and inquiry tracking
Improve visibility for sales leadership
Support onboarding for new sales hires
Create a system that could scale beyond MVP
Success metrics
Time to create or edit records
Inquiry → opportunity conversion speed
Adoption across junior and senior sales reps
Data completeness (statuses, loss reasons)
Discovery: Competitive Analysis
Before committing to a custom build, I conducted a deep competitive analysis to evaluate whether an existing CRM could support Exxact’s workflows.


I reviewed tools including Netsuite (current), Zoho, and CapsuleCRM, analyzing them across:
Information Architecture
Interaction Patterns
Editing Speed
Scalability for high-volume transactions
Competitive Analysis Conclusion
While several CRMs offered strong individual features, none aligned with Exxact’s sales structure or transaction volume. Most assumed:
Rigid pipelines
Low opportunity volume
Company-only account models
After presenting findings to stakeholders—including the VP of Sales—we decided investing in a custom CRM would better support the business long-term.
Actionable Insights
| What we liked | What we wanted to avoid | Where to innovate |
|---|---|---|
| Table-based data views for scanning many records at once | Kanban boards (50–100 active transactions made them unusable) | Clearly defined sales stages |
| Predefined filters for common workflows | Overly complex filtering systems | Status models for people and companies |
| Ability to create entities inline while creating transactions | Support for individuals purchasing without a company | |
| Custom dashboards and templates | Required loss reasons | |
| Sales inbox and email integration |
User Research: Personas & User Stories
To ground design decisions in real workflows, I interviewed 4 internal stakeholders across sales roles and created personas and user stories based on recurring pain points.
Design Strategy
From research and discovery, I established three guiding principles:
Optimize for speed and density
Design for real workflows, not idealized pipelines
Support edge cases from day one
This meant prioritizing tables, inline editing, and minimal clicks over visually “clean” but slower patterns.
Iteration 1: Guided Forms
Built a Notion-based change log that automatically posts updates to Slack, keeping design and engineering aligned on system updates.
Clear and structured
Too many steps and clicks
Slower than NetSuite in practice

Here’s an example of a change log someone might fill out.
Iteration 2: Side Panel Editing
Built a Notion-based change log that automatically posts updates to Slack, keeping design and engineering aligned on system updates.

Here’s an example of a change log someone might fill out.
Looking Forward
Our design system continues to evolve with:
Regular Updates
We plan to integrate documentation upkeep into our quarterly planning, dedicating time for consistent updates.
Getting Feedback
We'll regularly gather input through forms and user interviews, allowing us to adjust the guidelines based on our users needs.
Streamline Maintenance
We're exploring tools and processes to streamline documentation maintenance. We'll engage more with the development team to collaboratively refine and optimize guidelines for lasting usability.
Impact - Efficiency & Consistency
Comparing pre- vs post-launch metrics (1 month window):
50% reduction in data entry time
Inquiry conversion reduced to ~20 seconds
Improved reporting accuracy
403 QA tickets resolved pre-alpha
37 design system components reused
Font sizes reduced from 20 to 14
Project Reflection Metrics
A quick look at how this project felt—measured by challenge, teamwork, and personal sanity.

Reflection - Key Learnings
Impact
A Single Source of Truth
Creating a shared design system transformed how we build products, reduce design time, improving consistency, and laying a scalable foundation for future growth.
Technical Challenge
Learning Through Complexity
This was one of the most technically demanding projects I’ve worked on. With no formal mentor, I relied on deep research, experimentation, and iteration to navigate unfamiliar design system concepts.
Collaboration
Raising the Bar Together
Despite the challenge, the project significantly strengthened cross-functional collaboration. Close partnership with engineering helped us align on decisions and establish stronger design standards.
Iteration
Trial, Error, and Progress
The implementation required ongoing refinement. Through trial and error—and constant feedback from a small but engaged team—we steadily improved both the system and our process.
Shared Language
Debate That Builds Better Systems
Lively discussions with the software team, especially around token naming, pushed us toward clearer, more durable decisions. These conversations ultimately made the system stronger.
Looking Ahead
Built to Evolve
With a solid foundation in place, the next step is expanding the system to support themes and dark mode—leveraging the variables and structure we’ve already defined.




