CRM & Operations Platform

One platform from first enquiry to placement

A CRM and operations system for a training institute: website enquiries, lead pipeline, enrolment, batches, fees, placement, email automation and role-based access, all in one place.

Client
WezvaTech
WezvaTech operations dashboard showing lead, conversion and revenue cards and an overdue follow-ups list

What was the problem?

An institute that promises placement runs two long journeys per person: enquiry to enrolment, then enrolment to job offer. Run across spreadsheets, phone notes and WhatsApp threads, candidates go cold between stages and nobody can see where the pipeline is stuck.

What made it hard

Commercially

  • Two long journeys per person — enquiry to enrolment, then enrolment to placement — tracked across spreadsheets, phone notes and message threads
  • Candidates going cold between stages with no one able to see where the pipeline was stuck

Technically

  • A public webhook that must accept real enquiries from the website and nothing else
  • Lead data arriving from forms and bulk imports, so duplicates are inevitable
  • Fees, batches and placements all hanging off one person record without losing history when they move

Operationally

  • Different staff need different access to different parts of the system
  • Automated emails must be switchable per type, and a campaign must never send the same email twice

Security

  • Student and payment data must never be reachable directly from the browser

What we built

A CRM and operations platform covering lead capture, pipeline and follow-ups, lead-to-student conversion, batches, instalment fees, placement, email automation, role-based access and reporting.

What it does

  • Secured enquiry webhook

    Website enquiries arrive in real time, authenticated by a shared-secret header and an approved-origin list, with every submission logged — including failures.

  • Drag-and-drop pipeline

    Every lead's stage visible at a glance and changed by dragging a card.

  • Import with duplicate detection

    CSV and Excel import that catches duplicates automatically, with admin merge.

  • Follow-ups and alerts

    Scheduled follow-ups, overdue alerts and an in-app notification bell.

  • Lead-to-student wizard

    A guided conversion from enquiry to enrolled student.

  • Batches and transfers

    Capacity limits, lifecycle stages and batch transfers with history kept.

  • Instalment fees and receipts

    Paid, partial and pending tracking, with receipts sent by email.

  • Placement tracking

    Placement outcomes and campus-drive records per student.

  • Email automation and campaigns

    Branded, editable templates; four switchable automated emails; bulk campaigns with duplicate-send protection.

  • Roles across 14 modules

    No access, read-only or full access per module, with per-user exceptions.

  • Activity log

    System-wide, filterable by user, action, record type and date.

  • Reports and export

    Lead, conversion and revenue dashboards; PDF and Excel export; full data backup.

Engineering decisions

Choices that could have gone another way, and what each one bought.

  1. A public webhook that only listens to the right callers

    Website enquiries arrive in real time through a webhook that checks a shared-secret header and an approved-origin list, and logs every submission — accepted or rejected.

    Why it matters. An open lead endpoint fills a CRM with junk. Logging rejections too means a broken form is visible the same day, not discovered weeks later.

  2. The browser never touches the database

    Firestore rules deny all direct client access. Every read and write goes through Server Actions, validated with Zod and authorised against the user's role.

    Why it matters. Student, fee and placement data is only reachable through code that checks who is asking. There is no client-side rule to get wrong.

  3. Access control a manager can run themselves

    Admins create roles and give each one no access, read-only or full access to each of 14 modules, then grant individual users exceptions — all without a developer.

    Why it matters. Counsellors, trainers and accounts staff need different views. The institute can change who sees what the day a job changes.

  4. Campaigns that cannot double-send

    Bulk email to a batch, course, leads, all students or a custom list is logged per recipient, and a repeat send of the same email is blocked.

    Why it matters. A duplicate email to hundreds of students is a visible, embarrassing failure. It is prevented, not apologised for.

Technical detail

Collapsed by default. Open whichever part you are evaluating.

Frontend
  • Next.js 16 (App Router)
  • React 19
  • TypeScript
  • Tailwind CSS and Radix UI
  • Recharts dashboards
Backend
  • Next.js Server Actions
  • Zod validation on every input
Database
  • Firebase Firestore via the Admin SDK, with all direct client access denied
Authentication
  • Custom token login with hashed passwords
Authorization
  • Custom roles with none / read / full access across 14 modules, plus per-user overrides, enforced on the server
Messaging
  • Nodemailer over admin-configured SMTP
Monitoring
  • System-wide activity log
  • Webhook submission log, including rejected requests

Frontend
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • Radix UI
  • Recharts
Backend
  • Next.js Server Actions
  • Zod
  • Nodemailer
Database
  • Firebase Firestore
Integrations
  • Website enquiry webhook
  • SMTP email

Authentication
  • Custom token login with hashed passwords
Authorization
  • Role-based access across 14 modules with per-user exceptions, checked on the server
Data protection
  • Firestore denies all direct browser access; every read and write goes through the server
Abuse prevention
  • Webhook accepts only requests with the shared-secret header from approved origins
  • Duplicate-send protection on bulk campaigns
  • Automatic duplicate lead detection
Auditability
  • System-wide activity log filterable by user, action, record type and date
  • Every webhook submission logged, including failures
  • Every campaign email logged

Before and after

Before

  • Enquiries scattered across web forms, WhatsApp and phone
  • Lead status and follow-ups kept in spreadsheets and memory
  • Fees, batches and placements tracked separately from the lead that started them

After

  • Every enquiry in one pipeline, de-duplicated, with its full history
  • Scheduled follow-ups with overdue alerts
  • One record per person from enquiry through fees, batch and placement
  • Automated receipts, welcomes and staff alerts

The build, by the numbers

What was built, at what scale. These describe the system's size, not its business results.

access-controlled modules
14access-controlled modulesEach with no access, read-only or full access per role, plus per-user overrides
automated email types
4automated email typesReceipts, welcomes, new-lead alerts and follow-up reminders, each switchable
campaign audiences
5campaign audiencesA batch, a course, leads, all students or a custom list
record per person
1record per personFrom website enquiry to placement, with batch history kept

What changed as a result?

The institute runs its whole student lifecycle in one platform instead of across spreadsheets and message threads.

  • One platform from first enquiry to placement
  • Website enquiries flow straight into the CRM through a secured webhook
  • Custom roles across 14 modules, with every action logged
  • Routine emails automated; campaigns protected against duplicate sends

Why does this matter in EdTech & training?

Training providers usually have the harder half solved already: an audience that trusts them. What leaks is the path from interested to enrolled. WezvaTech reaches over ten thousand learners; the work was making the site convert that reach rather than admire it.

  • A large audience and a thin enrolment path

    Reach does not convert on its own. Course pages, a visible enrolment route and instant-response contact options are what turn followers into paying learners.

  • Placement claims nobody can verify

    Every training provider claims placements. The ones that convert show named outcomes, real project work and reviews a prospect can check, rather than a percentage with no source.

  • Enquiries arriving where nobody is watching

    Technical learners message on WhatsApp and expect a fast reply. An enquiry that waits overnight is usually an enrolment lost to whoever answered first.

  • No visible difference between courses

    When a flagship bootcamp, an internship and a webinar all look alike, prospects default to the cheapest. Distinct pages with distinct outcomes let people self-select correctly.

More on what we build for EdTech & training →

Need something like this for EdTech & training?

Tell us what is slowing the business down and we will tell you whether software is the right fix. If it is not, we will say so.

Ask a Quick Question on WhatsApp

Free 30 minutes · no obligation

WhatsAppCall