By industry

WhatsApp API for edtech: classes, lesson alerts and tuition

For a learning platform, the WhatsApp API solves three things email doesn't: class alerts students see in time, class groups that build themselves from enrollment, and tuition reminders that reach whoever pays. Each school in your base connects its own number and the platform orchestrates the rest.

By D-API engineering team5 min read

Why online students drop off

Every edtech knows the curve: a spike in activity in the first week and a steady decline after. Students don't quit by decision, they quit by forgetting. They missed a live class because the alert went to email, fell two modules behind and felt embarrassed to come back. Tuition payments slip along with them.

The schools on your platform deal with this today with a coordinator messaging from a phone, building class groups by hand and chasing payments one by one. When the platform itself does it, the school stops seeing WhatsApp as a chore and starts seeing it as a feature of the product it pays for.

The student lifecycle and where WhatsApp fits

MomentWhat the platform doesAPI feature
Enrollment confirmedWelcome message with access link and entry to the class groupText and add participant
30 minutes before the live classAlert in the group with the room linkText sent to the group
New material publishedHandout or exercise sheet as a PDFDocument
Tuition coming dueReminder with the amount and a payment linkText
Student inactive for 10 daysIndividual message naming the lesson where they stoppedText
Course completedCertificate and a request for a reviewDocument and poll
Cancellation or end of classRemoval from the groupRemove participant

The whole table runs on a WhatsApp API and the events your platform already has. Your team's job is to decide timing, wording and what each school can customize.

Class groups, built from enrollment

The class WhatsApp group is where schools do the most manual work and make the most mistakes: students who canceled but are still in the group, new students nobody added, an open group that turned into chaos. By tying the group to the class record, the platform fixes all three:

import { DApi } from 'd-api-sdk'

const dapi = new DApi({ apiKey: process.env.DAPI_API_KEY })
const sessionId = 'edu-school-1043'

// When the class opens: announcements-only group with enrolled students
await dapi.groups.create({
  sessionId,
  name: 'Spanish B1 - Evening Class Fall 2026',
  description: 'Class alerts and materials. Questions in private chat.',
  participants: ['14155550123', '447700900123'],
  admin_only_messages: true,
})

// New enrollment in a class that is already open (groupId stored on the class record)
await dapi.groups.manageParticipants(course.whatsappGroupId, {
  sessionId,
  participants: ['14155550188'],
  action: 'add',
})

Cancellation uses the same call with action set to remove. The platform also receives events such as groups_participants.leave, useful for knowing who left on their own. More options, like invite links and join approval, are in WhatsApp groups API.

Tuition: remind the person who actually pays

In language schools and short courses, the person paying is often not the student. The platform needs the billing contact's phone separate from the student's phone, and reminders go to the former. The message carries the amount, the due date and the payment link from your gateway, so the parent can pay by card in a couple of taps. Payment is still reconciled by your gateway; WhatsApp just shortens the path to it. Reminder cadence and tone strategies are in payment reminders.

Engagement without spam

Re-engaging inactive students is the feature that wins schools over most, and also the one that goes wrong most. Some rules worth building into the product instead of leaving them up to each school:

  • An individual message, with the student's name and the exact lesson where they stopped, never a generic text.
  • A cap on touches per student per month, enforced by the platform.
  • Replying "stop" turns off reminders for that student immediately.
  • A time window: no study messages at 11 PM.
  • Spaced sends between students. Blasting the whole base in the same minute is the fastest way to get the school's number restricted.

To measure whether the course is working, a short survey at the end of each module usually beats an email form. See NPS surveys on WhatsApp.

Implementation roadmap on the platform

  1. Connection per school: a connect button in settings, QR code and visible status.
  2. Records: student phone, billing contact phone and consent to receive messages.
  3. Groups: created when the class opens and synced with enrollment and cancellation.
  4. Alerts: live class reminders and new material notices.
  5. Tuition: a payment reminder flow with payment links, tied to the payment status in your gateway.
  6. Re-engagement: an inactivity rule with the limits above.

D-API charges per connection, not per message, so class alerts and reminders don't change your bill at the end of the month. The model for companies offering WhatsApp to their own school customers is in WhatsApp API for SaaS, and the 14-day free trial available through sales includes implementation support in a WhatsApp group, in English.

Frequently asked questions

Can the platform create the class group on its own?
Yes. The API creates the group with name, description and participants, then adds or removes students as they enroll or cancel. The group belongs to the school's number connected to the platform.
Can I stop students from chatting in the announcements group?
Yes. When creating the group there is an option for only admins to send messages. The group becomes an announcements channel for the class, and questions go to private chat or to another open group.
How do I send tuition reminders over WhatsApp?
Send a text with the amount, the due date and the payment link from your gateway. The student or parent opens the link and pays by card in a few taps. Payment reconciliation stays in your gateway, not in WhatsApp.
Don't automated messages to inactive students turn into spam?
They do if they are generic and frequent. They work when they are personal, rare and tied to real progress, for example naming the lesson where the student stopped. Limit it to one or two touches per cycle and respect anyone who asked to opt out.
Does each school on the platform have its own number?
That is the recommended setup. Students recognize the school, and a problem with one school's number doesn't affect the others. On D-API each number is an isolated connection, created via API when the school turns the feature on.

Put WhatsApp in your product without becoming an infra team

14 days free through our sales team, with implementation support in a WhatsApp group.