Skip to content

Team experienceSaaS · 2024–2026

Call centre & lead management platform

A multi-tenant product for intake calls: a form engine with recursive decision trees, lead automation, role-based reporting and in-app calling.

Built byAhsan Nadeem

About this project

The challenge

Intake teams working for many client companies needed to take calls, follow scripts that change with every answer and turn each completed call into a lead, on one platform, without a developer rebuilding forms whenever a script changed.

The approach

Ahsan was the primary and solo developer across a NestJS backend and a SolidJS frontend. At the core is a configurable form engine: administrators compose forms from nested sections, grouped and dynamic fields and sub-forms, and decision-tree fields branch the script on each answer. Around it he built multi-tenant company management, lead automation, role-based reporting, layered sign-in security and calling over FusionPBX.

The outcome

One multi-tenant platform runs intake from the first ring to a delivered lead. The form engine became a shared TypeScript SDK, published through Azure Artifacts and reused by a second product, the legal practice platform, which also receives leads from this one.

Inside the product.

A look at the screens. Drag the front one aside or use the arrows to flip through.

Live call (1 / 3)

How it's built, layer by layer.

From what people see down to what it runs on, with the stack behind each layer.

call-centre-lead-platform · architecture
  1. Interface

    • SolidJS
    • Operator screens with scrolling and step-by-step form modes
    • Dashboards for supervisors and administrators
    • A form builder for scripts and decision trees
  2. API

    • NestJS
    • TypeScript
    • Forms, companies, contacts, leads, workflows and reporting modules
    • Role-based access control
    • Leads created from completed forms, with email alerts
    • Form submissions exported as PDF
  3. Data

    • PostgreSQL
    • Sequelize
    • Forms, contacts, supervisors and leads linked to their organisation
    • Form definitions generated and validated as JSON
  4. Integrations

    • SIP.js
    • FusionPBX
    • Azure Artifacts
    • Extension calling, call handling and queues
    • Email and SMS sign-in, TOTP two-factor, Google and Microsoft OAuth
    • The form SDK, published on Azure Artifacts
    • Lead hand-off to the legal practice platform

What shipped.

The capabilities that went live, one card each.

  • Form builder & renderer

    Nested structures, grouped and dynamic fields, sub-forms, and scrolling or step-by-step modes, so a new script is configuration, not a release.

  • Decision-tree fields

    Multi-level branching driven by each answer: operators see only the questions that apply to the caller in front of them.

  • Multi-tenant companies

    Forms, contacts, supervisors and leads belong to their organisation, so many client companies share one platform.

  • Leads on autopilot

    Completed forms become leads automatically, and configured delivery groups get an email the moment one lands.

  • Calling built in

    Extension calling, call handling and queues through FusionPBX and SIP.js, next to the script and user, transfer-call, instructional and label fields.

  • Security & roles

    Email and SMS sign-in, TOTP two-factor and Google and Microsoft OAuth, with role-based dashboards for operators, supervisors and administrators.

Decisions that shaped it.

The engineering calls behind the build, and why they were made.

  1. Forms as data, not code

    Form definitions are generated and validated as JSON by a TypeScript SDK, so scripts change without a deployment and every form is checked before an operator sees it.

  2. One engine, shipped as a package

    The form SDK is published through Azure Artifacts. A second product consumes the same package, so new field types and fixes reach both.

  3. Tenancy in the data model

    Every form, contact, supervisor and lead is linked to its organisation, which keeps each company's records apart and makes per-company reporting natural.

  4. Calls where the script is

    Telephony runs inside the same screens as the forms, so operators handle the call and the script together instead of switching tools.

Next project

Employee forms platform

Team experience · Web app · Freelance

A dashboard that pre-fills employee forms from the database, generates PDFs, collects digital signatures and delivers documents by email or WhatsApp.

All projects

Got a workflow nobody's tool quite fits?

That's the kind we like. Tell us about it and we'll reply with how we'd approach it.

Popular searches

Change theme