Call Management Software Development Case Study

“Working with PLANEKS has been very positive overall. The team consistently delivers high quality, communicates clearly, and takes ownership when needed.”

The client approached PLANEKS to build an AI-powered call management platform. The core aim of the platform is to make customer communication fully controlled and visible to service businesses – companies such as HVAC, plumbing, electrical, and similar field service providers whose employees visit customers on-site daily. Such businesses rely on service providers to communicate with customers directly, yet that direct contact creates a risk: once a vendor has a customer’s real phone number, they can take that relationship outside the company.

The product aims to eliminate this scenario by giving each company a centralized number through which all provider-to-customer calls and SMS are routed, recorded, and transcribed, so neither party ever sees the other’s real number, and customer relationships stay with the business regardless of staff turnover. AI analyzes every interaction for sentiment, key points, action items, and keyword matches, and the results are provided in a management dashboard. The platform supports multi-tenant operations, subscription billing, and ad-source attribution via per-channel tracking numbers. Check more details about this call management implementation case study in the sections below.

Industry:

Call Management

Country:

USA

Duration:

MVP, 3 months

Team size:

3+

Engagement:

call management saas

Technologies

postgresql logo small png transparent

PostgreSQL

twilio logo

Twilio

stripe logo

Stripe

open ai logo

OpenAI

AWS Amazons logo png

AWS

How it works

Explore the workflow details in this call management case study.

01

Assigning a Business Number

The platform sits between a business's phone operations and the real phone numbers of both customers and service providers. When a company signs up, the system provisions a dedicated business number through Twilio and creates an isolated Twilio subaccount for that tenant. Every inbound and outbound call or SMS passes through the routing layer, which decides in real time how to handle the call based on the number dialed, the caller's history, and the rules configured by the company.

02

Bridging the Call

A company assigns an extension code to each job or customer. To reach a customer, a service provider dials the company's central number and enters the code; the platform then bridges the call, presenting the company number as the caller ID to the customer. If the customer calls back, the platform's smart callback feature automatically routes the call to the service vendors they most recently spoke with - across both calls and SMS - without either party needing to know the other's number.

03

Call Summary

Once a call with a customer ends, a Celery task chain takes over asynchronously. The recording is downloaded from Twilio, uploaded to AWS S3, and passed to OpenAI for transcription with speaker diarization. A second query to the AI then produces a deep analysis: a sentiment score, a summary, key action items, and keyword matches against the company's configured watchlist. Within minutes, the full transcript and analysis appear in the management dashboard alongside the call log.
"What I valued most in working with PLANEKS was the efficient and well-structured team setup. Whether it was development, project management, design, or other areas, PLANEKS was able to support us across the full scope of the project. I was also particularly impressed by how quickly the team understood our logistics processes and operational challenges. This allowed them to make relevant technical decisions early in the project and deliver solutions that truly matched our needs".

Project’s co-founder

Consumers preferred method of communication with businesses:
  • %

Source: Invoca

Use cases

Explore the use cases in this call management case study.

Field Service Businesses

A home services company, such as HVAC, plumbing, electrical, or landscaping, employs service providers who visit customers. The business creates extension codes for each client within the system. Vendors call customers through the platform and never learn their real phone numbers. If a service provider leaves, the customer relationship stays with the business: the customer's number is never exposed, and the call history remains fully accessible to management. Every conversation is recorded, transcribed, and searchable, allowing managers to review disputes, verify commitments, and handle service quality monitoring without relying on service provider self-reporting.

Multi-Channel Ad Attribution

A service company running ads across multiple channels, such as Facebook, Google, and direct mail, wants to know which campaigns generate calls. The application allows the company to provision separate tracking numbers for each ad source. When a homeowner calls from a campaign, the lead source is captured automatically and tagged against the resulting call record. Managers can see the transcription and sentiment score alongside the attribution tag, giving them a direct line from ad spend to call quality.

Compliance and Accountability

For businesses operating in regulated environments or managing large field teams, the product provides a complete audit trail. Each call is recorded, each SMS is logged, and the transcription layer surfaces keywords that management has flagged as important: pricing commitments, safety references, competitor mentions. For this call center use case, the platform enables operations teams to review interactions proactively, addressing issues more efficiently.

Challenges

Building a production-grade telephony platform for multi-tenant use introduced engineering challenges that required well-considered, precise architectural decisions. Discover the core problems the PLANEKS team encountered within this call management case study and how each was addressed.

Challenge

Solution

Routing calls and SMS across multiple paths with different behavior for each. A single incoming call can follow several paths depending on what number was dialed, who is calling, whether smart callback is enabled, and whether the caller has interacted with a service provider recently. Each path needs a different caller ID, a different recording behavior, and different Answering Machine Detection (AMD) settings (fax, voicemail, IVR). Handling all these conditions inside individual webhook handlers would have resulted in fragile, duplicated logic.

We’ve built a routing service layer that returns decision objects with all routing parameters. Each webhook view calls the routing service and acts on the decision. Smart callback checks recent call and SMS history within a configurable time window across both channels. Result. Adding a new routing path means adding a routing type to the service, not changing webhook handlers. Smart callback works across calls and SMS - a customer who received a call can reply by SMS and reach the same service provider.

Transcribing and analyzing call recordings without blocking the call flow. OpenAI transcription and analysis take seconds to minutes. The call status webhook needs to return immediately - Twilio times out after 15 seconds. Recordings must be downloaded from Twilio, uploaded to S3, and then sent to OpenAI.

Our engineers introduced a Сelery task chain: downloads recording from Twilio and uploads to S3, then triggers the transcription pipeline, which sends audio to the AI model, then runs a second AI call for structured analysis (summary, sentiment, key points, action items), then checks the transcription text against company-configured keywords. Result. Webhook returns instantly. Transcription and analysis appear in the dashboard within minutes. Speaker diarization labels each segment as Agent or Customer.

Subscription lifecycle transitions spanning weeks must work reliably across restarts. A past-due account needs 15 days of grace before suspension. A suspended account keeps data but loses access. A canceled account has phone numbers released after 30 days and all data deleted after 90 days, with a warning email 7 days before deletion. These transitions span weeks and must survive deployments, restarts, and edge cases like a customer paying during the grace period.

PLANEKS implemented scheduled periodic tasks that scan subscription states daily. Each task checks elapsed time against configured thresholds and advances the state if needed. Stripe webhooks handle payment events with idempotent processing; a database model prevents duplicate webhook processing. Repayment at any stage reverses the state back to active and restores access. Result. The full automation of the billing lifecycle with no manual intervention. A customer who pays on day 14 of a 15-day grace period gets immediately restored. Phone numbers and data are cleaned up on schedule without operator involvement.

Development Approach

The client reached out to PLANEKS with a clear product vision and a prototype, but without the in-house engineering capacity to implement a production system. Budget constraints made internal hiring impractical – for an MVP-stage product, where it’s essential to accelerate speed to market, avoid overengineering, and deliver high technical quality. Our team became a product-minded partner, introducing ideas, keeping the scope in check, and ensuring that every development effort was relevant to the project requirements and actual needs. Outsourcing to PLANEKS gave the client a full-cycle team composed of business analysis, engineering, quality assurance, and project management, with a crucial focus on speed, efficiency, and delivering only what the product truly required. The engagement within the call management software case study followed four phases.

1

Discovery

The BA and tech lead worked directly with the client's two co-founders to scope the product, define requirements, and produce a product requirements document (PRD), which took approximately one week, 15–20 hours. The client's Lovable prototype served as the primary reference for the discovery conversation.
Discovery Phase
2

MVP

Development took approximately two months and proceeded in a Scrumban model with daily reporting, weekly demos, brainstorming calls, and ongoing text communication between sprints. The client's vision evolved during this phase based on early feedback, leading to a project extension that added functionality identified during implementation.
3

Launch

The platform went live in a single day, with the client moving immediately to live testing in production.
4

Support

2-week post-launch maintenance ran in parallel with post-MVP development work, handling issues surfaced during live use.

Team

The project was delivered by a four-person PLANEKS team consisting of a Business Analyst, a Full-Stack Engineer, QA, and a Project Manager. On the client side, the engagement was supported directly by the two co-founders of the product, who were involved throughout discovery, development, and launch.

Communication

As part of a call management software case study, communication was most intensive during discovery, when the BA and Full-Stack Engineer engaged with the client daily to define the product scope. During active development, the team maintained daily status reporting, held weekly video calls that covered demo, review, and forward planning, and kept a text channel open for questions and decisions between calls. We also scheduled ad-hoc calls whenever significant decisions required real-time discussion.

Get Call Management that Scales

If you’re facing growing call volumes, fragmented workflows, or outdated tools, it may be time for a custom solution. We design and develop call management software tailored to your operations, helping you automate processes, improve response times, and stay in control as your business grows.

Requirements

Our solution

Multi-path call and SMS routing. Routing calls and SMS across multiple paths, extension lookup, smart callback, tracking numbers, and main business forwarding, with different caller ID, recording, and AMD settings for each path.

Routing service layer. We designed a routing service layer that returns decision objects with all routing parameters. Each webhook view calls the routing service and acts on the decision. Smart callback checks recent call and SMS history within a configurable time window across both channels.

Phone number privacy. Ensuring neither customers nor service providers ever see each other's real phone numbers, so customer relationships stay with the business even if a service provider leaves.

Caller ID masking. When a technician calls a customer through the system, the customer's phone displays the company number as the caller ID, not the technician's personal number. The same applies in reverse - the technician never sees the customer's real number. This is handled at the routing level on each call connection.

Asynchronous post-call processing. Recording every call, downloading recordings from Twilio, uploading to S3, transcribing with speaker diarization, and analyzing for sentiment, summary, key points, action items, and keyword matches, without blocking the call flow.

Async transcription pipeline. Our team implemented a Celery task chain: downloads recordings from Twilio, uploads them to S3, triggers the transcription pipeline via OpenAI, runs a second AI call for structured analysis (summary, sentiment, key points, action items), then checks the transcription text against company-configured keywords. Webhook returns instantly; results appear in the dashboard within minutes. Speaker diarization labels each segment as Agent or Customer.

Ad source attribution. Attributing inbound calls to ad sources (e.g., Facebook, Google) by provisioning separate tracking numbers per channel, and surfacing transcription and sentiment data alongside the attribution tag in the dashboard.

Per-source tracking numbers. Separate phone numbers were provisioned for each ad source. Inbound calls are tagged with the lead source automatically. Manager sees transcription, sentiment score, and knows which ad provider generated the lead.

Subscription lifecycle management. Managing subscriptions across multiple states - trial, active, past-due, suspended, canceled - with time-based transitions (15-day grace, 30-day number release, 90-day data deletion) that must survive server restarts and deployments.

Automated billing lifecycle. PLANEKS implemented scheduled periodic Celery tasks that scan subscription states daily and advance state based on elapsed time against configured thresholds. Stripe webhooks handle payment events with idempotent processing via a database model that prevents duplicate webhook handling. Repayment at any stage immediately reverses the state back to active.

Multi-tenant isolation. Supporting multi-tenant operation so each company's telephony, data, and configuration is fully isolated from other tenants.

Reusable multi-tenancy pattern. Each company's Twilio subaccount fully isolates telephony and data. The Twilio subaccount multi-tenancy pattern - subaccount creation, credential storage, per-request auth token lookup, webhook signature validation - is a reusable asset applicable to any future Twilio-based multi-tenant product.

MVP built from scratch. Building from scratch, starting from a PHP/WordPress PoC and a Lovable prototype, within an MVP timeline and budget.

Discovery-first MVP delivery. The PLANEKS team delivered the project from scratch, starting from the client's PHP/WordPress proof-of-concept and Lovable prototype. Within a 3-month MVP timeline, we took the project from a rough proof-of-concept to a resilient, multi-tenant SaaS platform.

Results:

The project went live as a fully functional platform. This software went from a proof-of-concept and a Lovable prototype to a production-grade, multi-tenant SaaS product within the MVP timeline of approximately 3 months. 

The platform’s efficiency is delivered through every functionality element: call routing, recording, transcription, AI analysis, subscription management, and ad attribution all operate as a comprehensive system that requires no manual intervention once configured.

Service providers can communicate with customers freely without ever learning their real phone numbers. Customer relationships stay with the business regardless of vendors’ turnover. All communication passes through the application, where it is recorded, transcribed, and visible to management. The result is a platform that gives service businesses full control over their customer communication infrastructure.

Testimonials

How our services bring about success

Need a hand? Contact us!

Reach out for the reliable IT services.

    We will add your info to our CRM for contacting you regarding your request. For more info please check our Privacy Policy.

    Or call us now!

    If you are looking for a tech partner with extensive tech and industry expertise, an impeccable reputation, and a large number of experienced engineers, choose the best Python web development company. Choose PLANEKS!