Codeworth

Engage365Education Sales Operations, 2025

Replacing spreadsheet chaos with a tiered lead distribution pipeline for education sales

A role-based sales platform that cleans up messy spreadsheet exports, structures every call review, and organises lead distribution across tiered teams.

Admin dashboard showing lead pipeline distribution, unassigned queues, and team workload summaries

Problem

The admissions and sales team worked its leads out of shared spreadsheets. Inquiries came in with details like graduation year, academic background and course of interest, and several callers and team leads worked from the same sheets — so there was no dependable answer to who owned a lead, what had happened on the last call, or what was supposed to happen next.

The spreadsheets themselves damaged the data. Phone numbers exported into scientific notation, which leaves a lead uncallable until someone repairs it by hand. Dates arrived in several conflicting formats, and phone numbers regularly ended up pasted into email columns. With no constraints on what went where, there was no reliable way to tell an active lead from a cold one.

The team's structure was the other half of the problem. Administrators supervise team leads, and each team lead manages their own group of callers. A generic contact list has nowhere to put that, so the system needed to be built around the team rather than the other way round.

What we built

We built Engage365, a customer management platform centred on lead routing and activity tracking, with a React and TypeScript frontend, Tailwind CSS, an Express API, and PostgreSQL through Prisma. It is organised around three roles: administrators oversee operations, team leads manage their own rosters, and callers work from the leads assigned to them.

Batched reassignment over one large transaction

Administrators regularly move hundreds of leads between callers at once. Doing that in a single database transaction was timing out against the hosted database, so assignments are split into chunks of fifty, each in its own transaction with a sixty-second ceiling. A problem in one chunk no longer rolls back the entire reassignment.

Tolerant intake over strict manual entry

To stop bad imports without slowing the team down, a parser cleans each spreadsheet in the browser before any of it is sent to the server. It maps inconsistent column headers, converts scientific-notation phone numbers back into plain numbers, normalises the different date formats, and separates columns that mix emails and phone numbers into distinct fields. Callers keep working from the exports they already have, and the database still only receives clean, typed records.

Hierarchical scoping over flat ownership

Instead of treating every lead as belonging to one person in a flat list, administrators build reporting trees in a visual mapping workspace, linking each team lead to the callers they manage. Those mappings decide who a team lead can hand leads to, so redistribution follows the real structure of the team.

Structured call reviews over open-ended notes

Free-form notes make it impossible to judge the quality of outreach or the health of the pipeline. Each call is logged through a structured review instead: the type of call, a standard tag for the customer's response, a rating, the agreed next step, and a follow-up date. Every lead ends up with a recorded outcome and a scheduled next touchpoint.

Result

Engage365 is in staging and active development, so there are no production conversion or revenue figures to report yet, and we will not estimate them here.

What works today: spreadsheet imports cleaned on the way in, bulk reassignment in batches, the reporting hierarchy, and structured call reviews that leave every lead with a next step.

The project reinforced something we now design around from the start. Whether a sales team adopts a tool depends less on how many features it has than on how well it copes with the messy data people already have. Accept the spreadsheet as it arrives, and enforce correctness quietly in the database.

The spreadsheet import screen, mapping inconsistent column headers onto clean lead fields before anything reaches the database
Call review form capturing call type, customer response, rating, next step and a follow-up date
Employee hierarchy mapping interface showing reporting links between administrators, team leads, and agents

Something here sound like your problem?

Call and describe it. We will tell you on that call whether we are the right people for it.

All case studies