Skip to content
Akshith Mysa

Client · Full-stackKlinn AI2025–26

Edmissions World CRM

A private staff CRM for an admissions floor that had no single answer to who owned a lead. This is the system that replaced the spreadsheets.

Role
Architecture, data model, delivery
Type
Private staff CRM — not a student portal
Roles
Admin, sales manager, telecaller, counselor, receptionist
Live
crm.edmissionsworld.com

01 / The problem

Edmissions World places students into medical and undergraduate programmes abroad. The floor is a chain: a sales manager imports and assigns leads, a telecaller works the queue, a counselor takes the qualified student through documents and applications, reception records walk-ins. Overnight, yesterday's no-contact leads have to come back.

None of that lived in one place. Telecallers worked spreadsheets. Counselors worked WhatsApp. Reception kept a notebook. Managers could not answer who owns this lead, or which follow-ups were missed this week, without someone spending an afternoon on it.

02 / Approach

I sat with the floor instead of a CRM template. The unit of work is the lead: assigned to a telecaller, optionally to a team, with an explicit status machine — new, in progress, no-contact, three follow-up stages, qualified, counselor-assigned.

Each staff role gets a different surface of the same records. Managers import and distribute (round-robin, capacity or performance) with daily caps. Telecallers call, note, schedule follow-ups, mark DNP, and qualify to a named counselor. Counselors work documents and application status on that same record. Reception creates walk-ins. A Cloud Function at 00:05 Asia/Kolkata moves yesterday's NoContact leads back into Follow-up 1 so DNP does not silently die.

  • Roles before features. Five live roles — admin, sales manager, telemarketer, counselor, receptionist — each with path-level RBAC. A leftover student dashboard exists in code and is not shipped.
  • The lead is the record. Owner, team, source, notes, follow-up date, counselor handoff and application progress live on one object, so 'where is this student' has one answer.
  • Automate the babysitting. No-contact leads reopen overnight. WhatsApp templates cover the messages the floor already sent by hand: documents, fees, visa, confirmation.

03 / What shipped

Lead pipeline

CSV import and assignment with round-robin, capacity or performance distribution, daily caps and team quotas. Statuses run from new through follow-up, qualified and counselor-assigned. Managers get a DNP list they can search, export and delete.

Telecaller floor

Assigned queues, call notes, follow-up scheduling, missed-follow-up views, daily quota, and a qualify step that writes counselorId onto the lead. Attendance clock-in sits next to the queue.

Counselor book

Qualified and counselor-assigned leads, document upload to Firebase Storage, application status (draft → documents pending → under review → additional docs → completed), and meeting scheduling.

Reception and staff ops

Walk-in create and counselor assign on the receptionist dashboard. Leave with a manager → admin hierarchy and SMTP notifications. Admin reports, LiveKit screen share for the calling floor, and in-app help in English, Hindi and Telugu.

04 / Outcome

The consultancy now runs its admissions cycle out of crm.edmissionsworld.com rather than alongside it. Five roles share one pipeline. The two questions that used to take an afternoon — who owns this lead, which follow-ups were missed — have a screen.

05 / What I would change

Application progress still mutates the lead rather than sitting in a first-class collection. Leave is still two stacks. I would have split applications earlier and killed the legacy leave API before the second year of production — retrofitting both later costs more than building them would have.