Avance
Language school ERP with an AI assistant on WhatsApp that sells, looks after the student and calls in a person when needed.
The school's WhatsApp carries too much at once: reminding students of class, rescheduling, sending the material for their current level, collecting the monthly fee, following up on leads that never closed, and answering several people at the same time without leaving anyone waiting. The system holds that front line and knows when to call a person.
A full ERP for the school, from lead to monthly fee, with an AI assistant on the WhatsApp front line. She changes role depending on who writes: sales for anyone who is not a student yet, front office for anyone who already is. When a case needs a person, she opens a request that shows up in the panel, someone resolves it in one click, and she returns to the conversation already knowing what was decided. Answers come from the real database: next class, teacher, room and the material for the right level, the same library the teacher uses.
Went into production on 21 July 2026, with the ERP and the assistant on the same base: what she answers comes from the same schedule the teacher uses.
- Period
- June to August 2026
- Role
- Architecture, AI and product
- Tech
- ReactTypeScriptPostgreSQLWhatsApp Cloud APIn8nRedisDocker Swarm
School and teacher dashboard
On entering, the person lands on a dashboard that changes with their role. The school owner sees revenue, students and funnel, the calendar and a performance board per teacher. The teacher sees their own earnings, their own classes and their own students. There are charts of monthly evolution, revenue per language and distribution, with a date filter that reprocesses the numbers. Every indicator carries an icon that explains the number and says whether it follows the filter.
Lead funnel
A kanban of columns where each card is an interested person. Dragging the card changes the stage and records the change. The card itself has a WhatsApp button, a phone button and a star rating. You can search, filter, import a spreadsheet and open the funnel settings to create stages, sources, categories and coloured labels, as well as reorder the columns.
The person's record
Each lead has a page with two tabs. Main holds contact, rating, stage, tasks and notes, editable in the field itself. Data and History holds personal data, address, attached documents, links to other people and the timeline of what happened. When the person is a minor, the legal guardian block appears. Marking the lead as won converts it into a student and opens the first course, and a loss records the reason.
Students and courses
The list shows the flags of the languages the person studies, how many courses they have, how much they pay per month and their payment status. Opening a student leads to the full record, with the courses as cards and all their finances added up in a single block. Each course has a page of its own, with the level in the foreground and a level change in one click, the list of classes and attendance control. The history of level changes is kept.
Languages and packages
Each language has a hub with three tabs. Participants lists the students and the teachers tied to that language. Packages defines the buying options, by number of classes or by hours, on a weekly, fortnightly or monthly basis. Teaching holds the ladder of levels. The languages screen lets you create, rename, pick the flag and switch a language on or off.
Teaching material
In the Teaching tab each level is a folder that opens and shows the material inside, with a General folder at the end for whatever has no level. Anything created goes to the end of the list and reordering is done by dragging. The files sit in private storage and open through a temporary link. It is this same library the assistant uses to send the material as a document to the student's WhatsApp.
Calendar
Classes and commercial activities on a single screen, with filters by owner, by type and by status, plus search and navigation by period. A class can be a trial, a regular, a make up or an extra one. On the class row you can generate the online room link and copy it, and mark attendance with a reason when a student is absent. Teachers and administration set their weekly availability by time band.
The week's timetable
A weekly calendar with the teacher's active courses as cards in the side panel. The person drags a card onto the day and the time and the block enters as a draft. Saving the timetable creates every class of the week at once and already generates the online room link for each, creating the event in Google Calendar. The system warns when a slot clashes with another class. On the phone, with no dragging, the same timetable becomes a list per day.
Finance
Every entry of the month, with filters by type, status and category, search and export to a spreadsheet. An entry can be one off, in instalments or recurring. For instalments the person sets how many and the date of the first, then chooses whether to edit only that one or every pending one. Settling an entry has fields for interest, discount and penalty, with the amount recalculated on its own. Categories are created and removed on the screen itself.
Accounts, cards and statement
Registration of bank accounts and credit cards, each with a record of its own. A card opens its statement month by month, with navigation between months and the entries that landed on it. Every finance entry points to the account or the card it came from.
Teacher payouts
A screen where the system works out what each teacher has to receive for the classes given, month by month, with the detail per class in a panel that expands. You can select rows and register the payment in a batch, and look up the history of what has already been paid. When the student pays, the amount to pass on is generated by the system itself, with nobody doing the arithmetic by hand. The teacher follows their own money through their dashboard and their statement.
AI assistant on WhatsApp
The school connects the WhatsApp Business number in the settings and sees the connected badge with the number on screen, plus a reconnect button when needed. A switch turns the assistant on and off, and there is a test mode in which she only answers numbers on a cleared list. When a case needs a human decision, the request drops into a queue of its own, with filters by type: trial class, rescheduling, message and human service. Each row opens a resolution dialog, and the notification takes you straight to the item. Teachers and administration also send a message to the student from there, and the assistant delivers it on WhatsApp.
Bulk import
Two spreadsheets. The People one creates leads, students and courses in one go. The Finance one creates the entries and ties each to a student by phone number. The screen hands over the template ready to download, takes the filled file, validates before writing and returns the count of what was created plus the list of errors line by line, so it can be fixed and tried again.
Team, roles and audit trail
The school registers the people on the team, sets each person's role and switches each permission on or off, and the menu and the screens change accordingly. The audit trail shows everything that changed: who did it, when, and what it was before and after, with a filter by module. There is also the support bubble at the top, where anyone opens a ticket and talks inside it.
