Skip to main content

Business Analysis · CRM/ERP

E-learning system integrated with CRM/ERP

From many disconnected Excel files to one system with a single data flow

RoleBusiness Analyst

Documents from this case: Business rules, Data model
in one system
CRM + ERP
document set for Dev
BRD · PRD · SRS
of stakeholders
6 groups

Client names are withheld; examples and data are simulated. The process, methods and result figures are real.

The problem

The training business ran on Excel and chat messages: sales consultants logged leads in one file, Accounting tracked tuition in another, and the Academic office allocated classes in a third. The client wanted “one piece of software to manage everything” but could not yet describe how the current process actually ran.

ConsequencesThe three pain points the client mentioned first
  • Receivables did not match between departments.
  • Nobody knew which students were about to finish a course and should be followed up.
  • Teachers' teaching hours had to be reconciled by hand at the end of each month.

Context and role

  • Scope: CRM (from lead to enrolment), students and classes, tuition and receivables, teachers and teaching hours, reports for the Management board.
  • Stakeholders: the technical team, the internal client, the outsourcing client, HR, Accounting and Sales.
  • My role: discovery, As-Is and To-Be analysis, writing the BRD, PRD and SRS, wireframes, business rules, the data model, supporting testing and UAT.

The examples below use a simulated training centre called “BrightPath”.

Step 1: As-Is discovery, department by department

I interviewed each department separately, mapped the process they actually run and looked for the breaks between departments.

As-IsData breaks at two points between departments
  1. Sales consultantleads from Facebook, Zalo; logged in Excel
  2. Enrolmentpaper form
    discounts agreed verbally, recorded by nobody
  3. Accountingtuition file
    deferrals not reported to Accounting
  4. Academic officeclass allocation file
Stakeholder mapWhat each department needs and where it is stuck
What they needCurrent pain pointImpact on the design
SalesTrack leads, know who is about to finish a courseDuplicate leads, leads lost when a sales consultant leavesCRM pipeline, permission to reassign leads
AccountingCollect the right amount, in full, and reconcile quicklyDiscounts agreed verbally, recorded by nobodyPricing policy, discount approval
Academic officeAllocate classes, change classes, handle deferralsDeferrals are not reported to AccountingEnrolment status linked to receivables
TeachersKnow their schedule, have hours counted correctlySelf-reported hours, disputes at month endAttendance linked to teaching hours
Management boardRevenue, receivables, re-enrolment rateA long wait for every reportReports built from operational data

Step 2: To-Be design around the student lifecycle

I did not design by department but by student lifecycle. Each module is one stage of that lifecycle.

To-BeOne lifecycle, one source of data
  1. CRMconsult, close
  2. Enrolmentcontract
  3. Tuition and receivables
  4. Classesattendance produces teaching hours

Classes → CRM · 4 or fewer sessions left: back to the re-enrolment follow-up list automatically (BR-06)

Management board reports come straight from the operational data of these four modules.
Business rulesExcerpt from the BRD, each rule has an owning department
Owner
BR-01 · A discount above 10% must be approved by a manager in the system before enrolmentAccounting
BR-02 · Tuition in at most 3 instalments; instalment 1 is at least 30% and is collected before the first sessionAccounting
BR-03 · Deferral lasts at most 6 months; receivables are frozen; Accounting and the sales consultant are notified automaticallyAcademic office
BR-04 · Refunds only before session 3, on a decreasing scale, calculated on the amount after discountManagement board
BR-05 · Teaching hours come from attendance, not entered by hand; any difference must be approvedHR
BR-06 · Students with 4 or fewer sessions left move automatically to the re-enrolment follow-up listSales
One action, two pieces of data
  1. Teacher takes class attendanceStudents presentTeacher's teaching hours
  2. No separate timekeeping module needed

Step 3: Data model and the tuition and receivables flow

I designed the data model together with the Dev team. The focus was a single source of truth for receivables.

Data modelMain relationships between entities
converts toapplies togeneratesrecordsproducesLEADSTUDENTDISCOUNT_APPROVALCLASSENROLLMENTINVOICESESSIONATTENDANCEPAYMENTTEACHER_HOURS
Crow's foot arrow: one record on this side has many records on the other side.
Tuition and receivables (To-Be)Receivables always equal total invoices minus total payments
  1. Enrolmentgenerates an invoice for each instalment
  2. 30% of instalment 1 collected?if not, class allocation is blocked
  3. Class allocation unlocked
  4. Reminders for instalments 2 and 37 days in advance
  5. Overduealert the sales consultant and Accounting, flag the student
Legacy data migrationDo not import the "Outstanding" column from Excel
  1. Old invoices and payments
  2. Recalculate receivables
  3. Variance report
  4. Accounting resolves it once

Step 4: Handover documents for Dev

Part of the Dev team is outsourced, so the documents have to stand on their own.

Document setEnough for a new person to read and carry on
  • Goals, scope, stakeholders, As-Is and To-Be, business rules, success criteriaBRD
  • Coded functional requirements by module; permissions, logging, report performancePRD, SRS
  • Matrix of roles and functionsPermissions
  • User stories, acceptance criteria, wireframes, technical diagramsSprint
US-FEE-04

Record a partial payment

As an accountant, I want to record a payment smaller than the invoice amount so that students can pay in stages while receivables stay accurate.

  • Given the instalment 2 invoice is VND 3,000,000, when the accountant records VND 1,000,000, then the invoice changes to “Partially paid”, receivables go down by exactly VND 1,000,000 and the history shows the date and who collected it.
  • Given total payments equal or exceed the invoice value, when the payment is recorded, then the invoice changes to “Paid” and no further payment can be recorded.
  • Given a user with the Sales consultant role, when they open the payment recording screen, then they can only view it and there is no record button.
Module
Tuition and receivables
Rule
BR-02
Traceability
  1. Coded requirement
  2. User story
  3. Test caseTesters follow the code
  4. UAT result

Step 5: Testing and UAT by department

UAT was organised by department. Each department ran its own scenarios.

UAT checklistExcerpt from the Accounting section
  • Enrolment with an unapproved 15% discount: the system blocks collectionBR-01
  • Only 25% of instalment 1 collected: class allocation is blockedBR-02
  • A student is deferred: receivables are frozen and Accounting receives a notificationBR-03
  • Refunds are calculated on the amount after discountBR-04
  • The total receivables report matches Accounting's own calculation on a sample of students

UAT often brings up a case that was never designed, for example which branch owns the receivables when a student transfers between branches:

When UAT reveals a new case
  1. Case not yet designedstudent transfers branch
  2. Log it as a change request
  3. Short meeting with the departmentsagree the rule
  4. Put it in the next sprintno rushed patch during UAT

Results

  • An integrated CRM and ERP system: customers, tuition, receivables and the teaching done by teachers.
  • A document set of BRD, PRD, SRS, technical diagrams and data model that serves as the reference for the Dev team.
  • Departments share one source of data for receivables and teaching hours.

What I learned

  • When a client says they want “software to manage everything”, the BA’s job is to find the few places where things really break.
  • Designing around the lifecycle of the main entity reduces the number of modules and the disputes between departments.
  • With outsourced developers, documents with traceable codes are the project’s insurance.
  • CRM
  • ERP
  • LMS
  • BRD
  • SRS
  • ERD
  • Business rules
  • UAT

Want to talk about this case?

Contact