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

  1. Reduce friction and time spent on data entry

  2. Standardize opportunity and inquiry tracking

  3. Improve visibility for sales leadership

  4. Support onboarding for new sales hires

  5. 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 likedWhat we wanted to avoidWhere to innovate
Table-based data views for scanning many records at onceKanban boards (50–100 active transactions made them unusable)Clearly defined sales stages
Predefined filters for common workflowsOverly complex filtering systemsStatus models for people and companies
Ability to create entities inline while creating transactionsSupport for individuals purchasing without a company
Custom dashboards and templatesRequired 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.

Junior Sales Representative

Goals: Learn the sales process, qualify leads, book meetings

Pain Points: Complex navigation, unclear statuses, slow performance, missing templates

Key User Stories

  • Log call notes quickly without disrupting prospecting

  • Use pre-filled templates to avoid missing required fields

  • Move quickly between records during call blocks

Senior Sales Representative

Account Manager

VP of Sales

Junior Sales Representative

Goals: Learn the sales process, qualify leads, book meetings

Pain Points: Complex navigation, unclear statuses, slow performance, missing templates

Key User Stories

  • Log call notes quickly without disrupting prospecting

  • Use pre-filled templates to avoid missing required fields

  • Move quickly between records during call blocks

Senior Sales Representative

Account Manager

VP of Sales

Junior Sales Representative

Goals: Learn the sales process, qualify leads, book meetings

Pain Points: Complex navigation, unclear statuses, slow performance, missing templates

Key User Stories

  • Log call notes quickly without disrupting prospecting

  • Use pre-filled templates to avoid missing required fields

  • Move quickly between records during call blocks

Senior Sales Representative

Account Manager

VP of Sales

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.