Case Study

Case Study Automating & Enhancing Sales Workflow

How we built a custom Angular and NestJS microservices CRM on AWS to automate lead conversion and smart dialing.

The Client

Overhauling the core technology behind high-velocity sales acquisition.

The client is a leading privately owned sales and marketing agency that specializes in customer acquisition and business development. Their business model revolves around a proprietary cold-lead nurturing system that systematically identifies potential clients, initiates contact, and converts cold contacts into highly qualified sales opportunities. Operating in a high-volume environment, their agents process thousands of lead records daily across multiple industries.

In the sales and marketing sector, speed-to-lead is the single most critical factor determining success. A delay of even a few minutes in responding to an inquiry can drop conversion rates significantly. To maintain their performance, the client's internal sales agents require rapid, reliable data access, direct communication lines, and automated workflows that handle routine administration so they can focus on talking to potential buyers.

However, the agency's growth had outpaced the capabilities of their technical infrastructure. Their legacy lead-management database was slow, fragmented, and did not support the modern telephony and messaging channels required to drive outbound sales at scale.

The Challenge

A bottlenecked pipeline and the limits of legacy database software.

The agency's primary bottleneck was its legacy sales CRM. This non-robust, static system relied on manual data updates and offline spreadsheets. Sales representatives had to manually lookup lead records, type phone numbers into external dialers, and log call outcomes in plain text files. This administrative overhead took up a large portion of an agent's workday, leaving less time for actual customer interactions.

In addition to slowing down sales cycles, the legacy system lacked centralized automation. Leads were distributed manually by supervisors, leading to delays and inconsistent sales workflows. The complicated, outdated user interface discouraged agents from adopting the tool, resulting in incomplete activity logs and a lack of data visibility for management.

Legacy CRM required manual, time-consuming lead distribution and data logging.

Complicated, non-intuitive UX led to poor platform adoption among sales agents.

Lack of end-to-end lead management tracking created gaps in the sales funnel.

Telephony and messaging systems were completely disconnected from the CRM database.

What our audit found

Exposing the inefficiencies in lead tracking and agent workflow.

We conducted a technical review of the client's database queries, agent call patterns, and lead journey data. The diagnostic revealed that agents spent over 40% of their day on administrative tasks, such as manually typing phone numbers and writing down call notes. The legacy CRM suffered from frequent database locks during peak calling hours, delaying lead routing and page load times.

Furthermore, because there was no unified interface for email, SMS, and voice, interactions were scattered across different tools. If a lead replied to an SMS, the sales representative had no way of seeing that response within the client's main record, leading to duplicate outreach and a disjointed customer experience.

1

Database performance bottlenecks caused UI lag during peak calling hours.

2

Telephony, SMS, and email interactions were stored in separate, siloed databases.

3

Manual activity logging led to incomplete data, obscuring pipeline metrics.

4

Slow speed-to-lead times directly reduced conversion rates on high-intent prospects.

The Solution

How we turned it around.

Modern App Architecture

Developing a Custom CRM Platform with Angular and NestJS

We replaced the legacy CRM with a custom-engineered application built on a microservices architecture. Using Angular for the frontend, we developed a fast, single-page application that gives agents a unified view of each lead's history, communication logs, and current status. The backend was built using NestJS, ensuring a modular and highly testable API structure that handles lead routing and updates with minimal latency.

What we shipped

  • Engineered a responsive Angular frontend to streamline sales workflows.
  • Implemented a NestJS microservices backend to handle high-frequency database writes.
  • Migrated legacy data into a hybrid database model using MariaDB and MongoDB.
  • Built a secure API gateway to coordinate microservice communication on AWS.
Workflow Automation

Automated Workflows and Multi-Channel Lead Interactions

To accelerate the sales cycle, we built automation directly into the custom CRM. We established automated triggers that schedule follow-up tasks and send email confirmations when a lead moves to a new stage in the funnel. We integrated voice, SMS, and email into a single interface, routing all inbound replies directly to the lead's active profile and alerting the assigned sales representative.

What we shipped

  • Designed automated triggers for appointment scheduling and follow-up tasks.
  • Integrated phone, SMS, and email channels into a single, unified agent console.
  • Created automated task-routing logic to assign new leads to active agents instantly.
  • Built a automated notification engine to alert agents of prospect responses.
Integrated Telephony

Smart Dialing and Automated Schedules

We integrated a smart dialer module directly into the CRM system. Rather than having agents manually type numbers, the CRM automatically generates optimized call queues based on set schedules and lead priority. The system dials numbers in sequence, immediately showing the lead's profile to the agent when a call connects, and automatically logging the call duration and status in the activity history.

What we shipped

  • Integrated an automated dialing system to speed up lead outreach.
  • Programmed dialing schedules to prioritize high-intent and fresh leads.
  • Configured automated call dispositioning to categorize call outcomes instantly.
  • Streamlined data synchronization between the dialer and the main MariaDB database.

The Numbers

Outcomes we can talk about.

The deployment of the custom Angular and NestJS CRM transformed the agency's sales operations. By replacing manual processes with automated workflows, the agency eliminated database locks and significantly improved speed-to-lead times. Sales agents now operate from a single dashboard, allowing them to manage phone calls, SMS, and email interactions without switching between tools.

With automated triggers handling appointment scheduling and follow-ups, the time required to move leads through the sales pipeline was cut down. Centralized database logging ensures that all customer interactions are captured automatically, providing management with accurate, real-time pipeline visibility and helping them optimize sales strategies.

Note on Metrics: Due to the client's strict data privacy policies and the proprietary nature of their sales conversion logic, quantitative performance metrics were restricted from public release. The success of the project was measured qualitatively by the successful migration of legacy records, the adoption of the unified console by all active agents, and the productivity gains achieved through automated dialing and integrated logging.

What We Built

Custom Angular sales consoleNestJS microservice API gatewayAutomated appointment scheduling engineSmart dialing integration layerMulti-channel lead routing service (SMS/Email/Phone)Centralized activity log databaseAWS-hosted container infrastructure

What's Next

Implementing predictive lead scoring and AI-driven insights.

With the new CRM system processing clean, consistent logs, the client is planning to deploy predictive lead scoring models. By analyzing historical conversion patterns, the system will automatically score incoming leads and adjust agent call lists to prioritize high-probability sales opportunities.

Additionally, the client plans to integrate natural language processing (NLP) tools to analyze call transcriptions and email sentiment, providing sales managers with automated alerts on lead objections and coaching opportunities for agents.

Frequently Asked Questions
About This Project

The questions teams usually ask when they want to run a similar engagement.

A microservices architecture built on NestJS ensures that critical features, such as the smart dialer and database writes, operate independently. This prevents system-wide slowdowns during peak calling hours and makes it easier to update individual services.

The Real Numbers

Need real numbers? Let's talk.

We kept the names off the page. The story is real, the outcomes are real, and we're always happy to walk a serious team through the rest of it.

Start a Conversation