Role

Design system
UX/UI

Client

Contact Center services startup

Team

Crystal, Emma, Ben, Joe, Amy

Overview

I joined a global leader in AI-powered CCaaS and CX software. They provided cloud-based solutions for contact center services to businesses. Our design team was small with only me (the new hire) and the UI Director. The company was a late-stage startup now aiming to become an IPO and attract enterprise-level business. There were growing pains including the process and communication between teams which was causing friction in a fast-paced environment. With all this, we updated existing products (back-end admin portal, Voice/Call, Chat Messaging channel products) and designed new products (mobile app, desktop application, and an email channel product). I heavily collaborated with the Design Lead to spearhead improvements of the design system with contributions along the way with the rest of the design team.

A collage of design system components

Discovery

As I began designing new features, I discovered there were inconsistencies between the live application and our designs. Previous projects created assets and components from scratch for each time and never published in a global library. This meant that components had multiple variants with no consistency. None of the previous design existed in our Figma files so we'd have to rebuild the design in order to properly update features. We had an existing early-stage design system that was in the process of being implemented into a Storybook library.

Challenges

No centralized design system

Components were created in siloed projects with no shared source of truth until recently.

Fragmented UX

Each communication channel operated in its own entity on variable platforms with distinct interfaces.

Fast-paced development cycle

Inconsistencies from the design to the live platform stemmed from engineers lacking key design details and a fast-paced development cycle. These issues led to increased QA time and a slower delivery.

Six platforms and one goal

Achieve design consistency across a mobile app, desktop application, admin portal, and three channel-specific products.

Research

Scalable Design Systems

I had previous experience creating small-scale design systems for websites. However this design system would be large in scale with multiple platforms. I would also be adapting from an existing brand and design system rather than creating one from scratch.

To help me with this endeavor, I researched other design systems like Material, Carbon, Lightning, Atlassian, and Fluent. I learned and took inspiration on how to organize component libraries, as well as creating token variables and documentation.

Indirect Competitive Audits

To create intuitive components, I needed to research how other apps function with Chat Messaging, Call/Voice, and Email behaviors. I didn't have access to direct competitors so I looked to indirect competitors like iOS, Android, Whatsapp, Viber, Telegram, Meta, and Google. I took note and captured components to find common patterns between the communication apps.

Accessibility

From my previous experiences, I understood basic accessibility such as color contrast and minimum mobile button sizes. However there was an initiative to integrate WCAG 2.2 AAA compliance. To help with this initiative, the product and engineering teams attended accessibility workshops.

Accessibility documentation I wrote

Solution

Each platform was developed by separate designers and had unique requirements, we decided to build individual design systems tailored to their specific needs. We maintained general consistency of the design foundation with some exceptions.

Design Foundation

I implemented design tokens to be used for the global design system for colors, type, icons, and shadows. In order reduce confusion between the design and engineering team, I created a spreadsheet to track changes to our global tokens. Along with implementation, I implemented governance on naming conventions for tokens and components.

Screenshots of a color token spreadsheet, type table, icons, and shadows.

Atomic Design principles

To resolve issues of scalability and consistency, I adopted Atomic Design principles by breaking UI elements into modular, reusable components. This allowed us to modernize the UI and streamline cross-platform design.

Documentation

I developed comprehensive documentation for each component including:

  • Anatomy - represents what elements are in the components
  • Specifications - the spacing and sizing limitations
  • Interaction Behaviors and Use Cases - shows unique scenarios and UX behavior patterns
  • Color application - lists what color tokens are applied to the elements from anatomy
  • Tooltip labels - provides tooltip UI copy for accessibility
A collage of component requirements and documentation

Impact

After implementing a few platform design systems, I received positive feedback from the design, engineering, and product management team for improving our internal cross-team process and communication. The design system will always be a work-in-progress and constantly being iterated on. In the end, it increased collaboration efforts between teams for smoother processes.

Improved consistency

Visual and functional inconsistencies between the live application and designs were significantly reduced

Better collaboration

Centralized documentation, component libraries, and governance improved cross-team communication and improved processes

Scalability and maintenance

The modular UI architecture and responsive Figma components improved efficiency for scalable growth

Lessons learned

In hindsight, I learned that maintaining separate design systems for each platform led to new inconsistencies especially as the design team expanded and designers began implementing their own solutions. To address this, we established a unified, high-level design system that consolidated foundational elements such as global color and type tokens, atom-level components, and iconography. This system allowed each platform to maintain flexibility through their own design systems, while still inheriting from the global foundational core.

In addition, I researched and implemented an open-source React component library to accelerate development workflows. This decision was driven by our fast-paced environment and helped engineers build components more efficiently while maintaining consistency with the design foundation.

This experience deepened my understanding of large enterprise-level design systems and highlighted the importance of governance. Learning from my failures, I look forward to creating better and improved design systems.

See the design system in action

Agent Mobile App

Product UX/UI of a multi-channel mobile app for a CCaaS B2B startup

Chat Messaging and Voice Apps

Product UX/UI redesign of two web apps for a CCaaS B2B startup

email screens

Email Web App

Product UX/UI of an email channel web app for a CCaaS B2B startup

Dekstop screen

Agent Desktop App

Product UX/UI of a multi-channel desktop app for a CCaaS B2B startup

View all projects